X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=drivers%2Fusb%2Fcore%2Fhcd.c;h=cbcd0920fb5121ba44bd7c87de9a3b3fdd9f51d6;hb=d683477020be2036d6c2d7d2cd3ffac4f2acbd6c;hp=be5b2074f9066a8c9ca3e79289117f67d52b1063;hpb=996034b117b467709dec7811ef134063934fa626;p=uclinux-h8%2Flinux.git diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index be5b2074f906..cbcd0920fb51 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c @@ -1022,9 +1022,12 @@ static int register_root_hub(struct usb_hcd *hcd) dev_name(&usb_dev->dev), retval); return (retval < 0) ? retval : -EMSGSIZE; } - if (usb_dev->speed == USB_SPEED_SUPER) { + + if (le16_to_cpu(usb_dev->descriptor.bcdUSB) >= 0x0201) { retval = usb_get_bos_descriptor(usb_dev); - if (retval < 0) { + if (!retval) { + usb_dev->lpm_capable = usb_device_supports_lpm(usb_dev); + } else if (usb_dev->speed == USB_SPEED_SUPER) { mutex_unlock(&usb_bus_list_lock); dev_dbg(parent_dev, "can't read %s bos descriptor %d\n", dev_name(&usb_dev->dev), retval);