diff options
| -rw-r--r-- | drivers/usb/host/xhci-hub.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c index e75c565feb53..7df8878cc37b 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c | |||
| @@ -484,10 +484,13 @@ static void xhci_hub_report_usb3_link_state(struct xhci_hcd *xhci, | |||
| 484 | u32 pls = status_reg & PORT_PLS_MASK; | 484 | u32 pls = status_reg & PORT_PLS_MASK; |
| 485 | 485 | ||
| 486 | /* resume state is a xHCI internal state. | 486 | /* resume state is a xHCI internal state. |
| 487 | * Do not report it to usb core. | 487 | * Do not report it to usb core, instead, pretend to be U3, |
| 488 | * thus usb core knows it's not ready for transfer | ||
| 488 | */ | 489 | */ |
| 489 | if (pls == XDEV_RESUME) | 490 | if (pls == XDEV_RESUME) { |
| 491 | *status |= USB_SS_PORT_LS_U3; | ||
| 490 | return; | 492 | return; |
| 493 | } | ||
| 491 | 494 | ||
| 492 | /* When the CAS bit is set then warm reset | 495 | /* When the CAS bit is set then warm reset |
| 493 | * should be performed on port | 496 | * should be performed on port |
