From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Wed, 4 May 2016 10:03:45 +0200 Subject: [U-Boot] [PATCH 5/7] usb: Assure Get Descriptor request is in separate microframe In-Reply-To: <1462308680-9366-5-git-send-email-marex@denx.de> References: <1462308680-9366-1-git-send-email-marex@denx.de> <1462308680-9366-5-git-send-email-marex@denx.de> Message-ID: <5729ACE1.50504@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > Cc: Chin Liang See > Cc: Dinh Nguyen > Cc: Hans de Goede > Cc: Stefan Roese > Cc: Stephen Warren > --- > 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. Thanks, Stefan