diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/spl/Kconfig | 1 | ||||
-rw-r--r-- | common/usb.c | 11 | ||||
-rw-r--r-- | common/usb_storage.c | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/common/spl/Kconfig b/common/spl/Kconfig index b738c749fff..05181bdba3e 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -98,6 +98,7 @@ config SPL_PAD_TO default 0x11000 if ARCH_MX7 || (ARCH_MX6 && !MX6_OCRAM_256KB) default 0x10000 if ARCH_KEYSTONE default 0x8000 if ARCH_SUNXI && !MACH_SUN50I_H616 + default 0x0 if ARCH_MTMIPS default TPL_MAX_SIZE if TPL_MAX_SIZE > SPL_MAX_SIZE default SPL_MAX_SIZE help 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; diff --git a/common/usb_storage.c b/common/usb_storage.c index e59c819bac5..ac642757737 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); |