|
@@ -484,10 +484,13 @@ static void xhci_hub_report_usb3_link_state(struct xhci_hcd *xhci,
|
|
|
u32 pls = status_reg & PORT_PLS_MASK;
|
|
|
|
|
|
/* resume state is a xHCI internal state.
|
|
|
- * Do not report it to usb core.
|
|
|
+ * Do not report it to usb core, instead, pretend to be U3,
|
|
|
+ * thus usb core knows it's not ready for transfer
|
|
|
*/
|
|
|
- if (pls == XDEV_RESUME)
|
|
|
+ if (pls == XDEV_RESUME) {
|
|
|
+ *status |= USB_SS_PORT_LS_U3;
|
|
|
return;
|
|
|
+ }
|
|
|
|
|
|
/* When the CAS bit is set then warm reset
|
|
|
* should be performed on port
|