summaryrefslogtreecommitdiff
path: root/common/usb.c
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2016-04-27 03:08:12 +0200
committerMarek Vasut <marex@denx.de>2016-05-06 20:06:56 +0200
commitf647bf0ba36a5236d4bc7f93d39bfacfb1cfe6c7 (patch)
tree46fad17b63b065cf8783459a355d9aeded71d9c7 /common/usb.c
parent2f1b4302e352800b8b651a300281a7fae67cdf80 (diff)
downloadu-boot-f647bf0ba36a5236d4bc7f93d39bfacfb1cfe6c7.tar.gz
u-boot-f647bf0ba36a5236d4bc7f93d39bfacfb1cfe6c7.tar.bz2
u-boot-f647bf0ba36a5236d4bc7f93d39bfacfb1cfe6c7.zip
usb: Wait after sending Set Configuration request
Some devices, like the SanDisk Cruzer Pop need some time to process the Set Configuration request, so wait a little until they are ready. 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>
Diffstat (limited to 'common/usb.c')
-rw-r--r--common/usb.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/common/usb.c b/common/usb.c
index 63429d4d5a..205041b6a6 100644
--- a/common/usb.c
+++ b/common/usb.c
@@ -1107,6 +1107,14 @@ int usb_select_config(struct usb_device *dev)
"len %d, status %lX\n", dev->act_len, dev->status);
return err;
}
+
+ /*
+ * Wait until the Set Configuration request gets processed by the
+ * device. This is required by at least SanDisk Cruzer Pop USB 2.0
+ * and Kingston DT Ultimate 32GB USB 3.0 on DWC2 OTG controller.
+ */
+ mdelay(10);
+
debug("new device strings: Mfr=%d, Product=%d, SerialNumber=%d\n",
dev->descriptor.iManufacturer, dev->descriptor.iProduct,
dev->descriptor.iSerialNumber);