Port over U-Boot commit f647bf0ba36a5236d4bc7f93d39bfacfb1cfe6c7:

|   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 <[email protected]>
|   Cc: Chin Liang See <[email protected]>
|   Cc: Dinh Nguyen <[email protected]>
|   Cc: Hans de Goede <[email protected]>
|   Cc: Stefan Roese <[email protected]>
|   Cc: Stephen Warren <[email protected]>

Assisted-by: Codex:gpt-5.5
Signed-off-by: Ahmad Fatoum <[email protected]>
---
 drivers/usb/core/usb.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index c6b3187de17d..145b85a28fab 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -539,6 +539,14 @@ int usb_new_device(struct usb_device *dev)
                       dev->act_len, dev->status);
                goto err_out;
        }
+
+       /*
+        * 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);
+
        dev_dbg(&dev->dev, "new device: Mfr=%d, Product=%d, SerialNumber=%d\n",
                   dev->descriptor->iManufacturer, dev->descriptor->iProduct,
                   dev->descriptor->iSerialNumber);
-- 
2.47.3


Reply via email to