diff options
author | Tom Rini <trini@konsulko.com> | 2022-11-04 11:19:58 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-11-04 11:19:58 -0400 |
commit | 898bd53e6a930080cee7cd7b1a09120c4dfd9467 (patch) | |
tree | fd06828cca513d7ea09b522750afe4be071c2e61 /common/usb.c | |
parent | 45fc699cc54739c6f80ae4da920c121bc7d8665a (diff) | |
parent | 04448899de702321c018d0c4be2f6cc1d2f06760 (diff) |
Merge https://source.denx.de/u-boot/custodians/u-boot-usb
- 3 important fixes
Diffstat (limited to 'common/usb.c')
-rw-r--r-- | common/usb.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/common/usb.c b/common/usb.c index 6fcf1e8428e..ae9253dfc0e 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; |