From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 5/7] usb: Assure Get Descriptor request is in separate microframe
Date: Wed, 04 May 2016 12:25:12 +0200 [thread overview]
Message-ID: <5729CE08.20501@denx.de> (raw)
In-Reply-To: <5729ACE1.50504@denx.de>
On 05/04/2016 10:03 AM, Stefan Roese wrote:
> On 03.05.2016 22:51, Marek Vasut wrote:
>> The Kingston DT Ultimate USB 3.0 stick is sensitive to this first
>> Get Descriptor request and if the request is not in a separate
>> microframe, the stick refuses to operate. Add slight delay, which
>> is enough for one microframe to pass on any USB spec revision.
>>
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> Cc: Chin Liang See <clsee@altera.com>
>> Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
>> Cc: Hans de Goede <hdegoede@redhat.com>
>> Cc: Stefan Roese <sr@denx.de>
>> Cc: Stephen Warren <swarren@nvidia.com>
>> ---
>> common/usb.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/common/usb.c b/common/usb.c
>> index 205041b..8d9efe5 100644
>> --- a/common/usb.c
>> +++ b/common/usb.c
>> @@ -1077,6 +1077,14 @@ int usb_select_config(struct usb_device *dev)
>> le16_to_cpus(&dev->descriptor.idProduct);
>> le16_to_cpus(&dev->descriptor.bcdDevice);
>>
>> + /*
>> + * Kingston DT Ultimate 32GB USB 3.0 seems to be extremely sensitive
>> + * about this first Get Descriptor request. If there are any other
>> + * requests in the first microframe, the stick crashes. Wait about
>> + * one microframe duration here (1mS for USB 1.x , 125uS for USB
>> 2.0).
>> + */
>> + mdelay(1);
>> +
>> /* only support for one config for now */
>> err = usb_get_configuration_len(dev, 0);
>> if (err >= 0) {
>>
>
> Again my question, if this problem also occurs on other platforms
> with this USB key. A 1ms delay is not really a big deal, but its
> my general feeling that we should manifest such changes by testing
> on different platforms.
I tested it by connecting the bus analyzer between the stick and socfpga
and between the stick and x86 host. I wouldn't be able to
come up with this solution. btw. any ehci ends up inserting these
control requests into separate microframes, but we need the mdelay
to also cater for ohci/uhci, which has longer frames (1ms).
--
Best regards,
Marek Vasut
next prev parent reply other threads:[~2016-05-04 10:25 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-03 20:51 [U-Boot] [PATCH 1/7] usb: Don't init pointer to zero, but NULL Marek Vasut
2016-05-03 20:51 ` [U-Boot] [PATCH 2/7] usb: dwc2: Resend setup packet in all fail cases Marek Vasut
2016-05-04 9:36 ` Chin Liang See
2016-05-03 20:51 ` [U-Boot] [PATCH 3/7] usb: dwc2: Throttle the setup packet resending Marek Vasut
2016-05-04 9:37 ` Chin Liang See
2016-05-04 17:08 ` Stephen Warren
2016-05-04 21:21 ` Marek Vasut
2016-05-06 18:04 ` Marek Vasut
2016-05-03 20:51 ` [U-Boot] [PATCH 4/7] usb: Wait after sending Set Configuration request Marek Vasut
2016-05-04 7:41 ` Stefan Roese
2016-05-04 9:45 ` Chin Liang See
2016-05-04 10:00 ` Stefan Roese
2016-05-04 10:24 ` Chin Liang See
2016-05-05 4:14 ` Sriram Dash
2016-05-04 10:21 ` Marek Vasut
2016-05-03 20:51 ` [U-Boot] [PATCH 5/7] usb: Assure Get Descriptor request is in separate microframe Marek Vasut
2016-05-04 8:03 ` Stefan Roese
2016-05-04 10:25 ` Marek Vasut [this message]
2016-05-04 17:10 ` Stephen Warren
2016-05-03 20:51 ` [U-Boot] [PATCH 6/7] usb: hub: Don't continue on get_port_status failure Marek Vasut
2016-05-04 8:05 ` Stefan Roese
2016-05-04 9:38 ` Chin Liang See
2016-05-03 20:51 ` [U-Boot] [PATCH 7/7] usb: hub: Increase the query delay Marek Vasut
2016-05-04 8:07 ` Stefan Roese
2016-05-04 11:39 ` Marek Vasut
2016-05-04 16:27 ` Stefan Roese
2016-05-04 17:11 ` Stephen Warren
2016-05-04 21:32 ` [U-Boot] [PATCH] " Marek Vasut
2016-05-04 21:34 ` Stephen Warren
2016-05-04 21:38 ` Marek Vasut
2016-05-04 7:36 ` [U-Boot] [PATCH 1/7] usb: Don't init pointer to zero, but NULL Stefan Roese
2016-05-04 9:35 ` Chin Liang See
2016-05-06 16:36 ` Marek Vasut
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5729CE08.20501@denx.de \
--to=marex@denx.de \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.