|
@@ -782,12 +782,15 @@ static u32 xhci_get_port_status(struct usb_hcd *hcd,
|
|
status |= USB_PORT_STAT_SUSPEND;
|
|
status |= USB_PORT_STAT_SUSPEND;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if ((raw_port_status & PORT_PLS_MASK) == XDEV_U0
|
|
|
|
- && (raw_port_status & PORT_POWER)
|
|
|
|
- && (bus_state->suspended_ports & (1 << wIndex))) {
|
|
|
|
- bus_state->suspended_ports &= ~(1 << wIndex);
|
|
|
|
- if (hcd->speed < HCD_USB3)
|
|
|
|
- bus_state->port_c_suspend |= 1 << wIndex;
|
|
|
|
|
|
+ if ((raw_port_status & PORT_PLS_MASK) == XDEV_U0 &&
|
|
|
|
+ (raw_port_status & PORT_POWER)) {
|
|
|
|
+ if (bus_state->suspended_ports & (1 << wIndex)) {
|
|
|
|
+ bus_state->suspended_ports &= ~(1 << wIndex);
|
|
|
|
+ if (hcd->speed < HCD_USB3)
|
|
|
|
+ bus_state->port_c_suspend |= 1 << wIndex;
|
|
|
|
+ }
|
|
|
|
+ bus_state->resume_done[wIndex] = 0;
|
|
|
|
+ clear_bit(wIndex, &bus_state->resuming_ports);
|
|
}
|
|
}
|
|
if (raw_port_status & PORT_CONNECT) {
|
|
if (raw_port_status & PORT_CONNECT) {
|
|
status |= USB_PORT_STAT_CONNECTION;
|
|
status |= USB_PORT_STAT_CONNECTION;
|