aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2022-11-04 11:19:58 -0400
committerTom Rini <trini@konsulko.com>2022-11-04 11:19:58 -0400
commit898bd53e6a930080cee7cd7b1a09120c4dfd9467 (patch)
treefd06828cca513d7ea09b522750afe4be071c2e61 /common
parent45fc699cc54739c6f80ae4da920c121bc7d8665a (diff)
parent04448899de702321c018d0c4be2f6cc1d2f06760 (diff)
downloadu-boot-898bd53e6a930080cee7cd7b1a09120c4dfd9467.zip
u-boot-898bd53e6a930080cee7cd7b1a09120c4dfd9467.tar.gz
u-boot-898bd53e6a930080cee7cd7b1a09120c4dfd9467.tar.bz2
Merge https://source.denx.de/u-boot/custodians/u-boot-usbWIP/04Nov2022
- 3 important fixes
Diffstat (limited to 'common')
-rw-r--r--common/usb.c11
-rw-r--r--common/usb_storage.c1
2 files changed, 12 insertions, 0 deletions
diff --git a/common/usb.c b/common/usb.c
index 6fcf1e8..ae9253d 100644
--- a/common/usb.c
+++ b/common/usb.c
@@ -999,6 +999,17 @@ static int usb_setup_descriptor(struct usb_device *dev, bool do_read)
err = get_descriptor_len(dev, 64, 8);
if (err)
return err;
+
+ /*
+ * Logitech Unifying Receiver 046d:c52b bcdDevice 12.10 seems
+ * sensitive about the first Get Descriptor request. If there
+ * are any other requests in the same microframe, the device
+ * reports bogus data, first of the descriptor parts is not
+ * sent to the host. Wait over one microframe duration here
+ * (1mS for USB 1.x , 125uS for USB 2.0) to avoid triggering
+ * the issue.
+ */
+ mdelay(1);
}
dev->epmaxpacketin[0] = dev->descriptor.bMaxPacketSize0;
diff --git a/common/usb_storage.c b/common/usb_storage.c
index e59c819..ac64275 100644
--- a/common/usb_storage.c
+++ b/common/usb_storage.c
@@ -239,6 +239,7 @@ static int usb_stor_probe_device(struct usb_device *udev)
ret = device_unbind(dev);
if (ret)
return ret;
+ continue;
}
ret = blk_probe_or_unbind(dev);