|
@@ -1608,7 +1608,10 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
|
|
|
cdev->desc.bcdUSB = cpu_to_le16(0x0210);
|
|
|
}
|
|
|
} else {
|
|
|
- cdev->desc.bcdUSB = cpu_to_le16(0x0200);
|
|
|
+ if (gadget->lpm_capable)
|
|
|
+ cdev->desc.bcdUSB = cpu_to_le16(0x0201);
|
|
|
+ else
|
|
|
+ cdev->desc.bcdUSB = cpu_to_le16(0x0200);
|
|
|
}
|
|
|
|
|
|
value = min(w_length, (u16) sizeof cdev->desc);
|
|
@@ -1639,7 +1642,8 @@ composite_setup(struct usb_gadget *gadget, const struct usb_ctrlrequest *ctrl)
|
|
|
value = min(w_length, (u16) value);
|
|
|
break;
|
|
|
case USB_DT_BOS:
|
|
|
- if (gadget_is_superspeed(gadget)) {
|
|
|
+ if (gadget_is_superspeed(gadget) ||
|
|
|
+ gadget->lpm_capable) {
|
|
|
value = bos_desc(cdev);
|
|
|
value = min(w_length, (u16) value);
|
|
|
}
|