usb: xhci: fix timeout for transition from RExit to U0
This definition is used by msecs_to_jiffies in milliseconds. According to the comments, max rexit timeout should be 20ms. Align with the comments to properly calculate the delay. Verified on Sunrise Point-LP and Cannon Lake. Cc: stable@vger.kernel.org Signed-off-by: Aaron Ma <aaron.ma@canonical.com> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
958c0bd860
commit
a5baeaeabc
|
@ -921,7 +921,7 @@ static u32 xhci_get_port_status(struct usb_hcd *hcd,
|
||||||
time_left = wait_for_completion_timeout(
|
time_left = wait_for_completion_timeout(
|
||||||
&bus_state->rexit_done[wIndex],
|
&bus_state->rexit_done[wIndex],
|
||||||
msecs_to_jiffies(
|
msecs_to_jiffies(
|
||||||
XHCI_MAX_REXIT_TIMEOUT));
|
XHCI_MAX_REXIT_TIMEOUT_MS));
|
||||||
spin_lock_irqsave(&xhci->lock, flags);
|
spin_lock_irqsave(&xhci->lock, flags);
|
||||||
|
|
||||||
if (time_left) {
|
if (time_left) {
|
||||||
|
@ -935,7 +935,7 @@ static u32 xhci_get_port_status(struct usb_hcd *hcd,
|
||||||
} else {
|
} else {
|
||||||
int port_status = readl(port->addr);
|
int port_status = readl(port->addr);
|
||||||
xhci_warn(xhci, "Port resume took longer than %i msec, port status = 0x%x\n",
|
xhci_warn(xhci, "Port resume took longer than %i msec, port status = 0x%x\n",
|
||||||
XHCI_MAX_REXIT_TIMEOUT,
|
XHCI_MAX_REXIT_TIMEOUT_MS,
|
||||||
port_status);
|
port_status);
|
||||||
status |= USB_PORT_STAT_SUSPEND;
|
status |= USB_PORT_STAT_SUSPEND;
|
||||||
clear_bit(wIndex, &bus_state->rexit_ports);
|
clear_bit(wIndex, &bus_state->rexit_ports);
|
||||||
|
|
|
@ -1680,7 +1680,7 @@ struct xhci_bus_state {
|
||||||
* It can take up to 20 ms to transition from RExit to U0 on the
|
* It can take up to 20 ms to transition from RExit to U0 on the
|
||||||
* Intel Lynx Point LP xHCI host.
|
* Intel Lynx Point LP xHCI host.
|
||||||
*/
|
*/
|
||||||
#define XHCI_MAX_REXIT_TIMEOUT (20 * 1000)
|
#define XHCI_MAX_REXIT_TIMEOUT_MS 20
|
||||||
|
|
||||||
static inline unsigned int hcd_index(struct usb_hcd *hcd)
|
static inline unsigned int hcd_index(struct usb_hcd *hcd)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue