]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Increase XHCI suspend timeout to 16ms
authorMichael Spang <spang@chromium.org>
Fri, 14 Sep 2012 17:05:49 +0000 (13:05 -0400)
committerMaxim Uvarov <maxim.uvarov@oracle.com>
Mon, 8 Oct 2012 14:43:58 +0000 (07:43 -0700)
commit a6e097dfdfd189b6929af6efa1d289af61858386 upstream.

The Intel XHCI specification says that after clearing the run/stop bit
the controller may take up to 16ms to halt. We've seen a device take
14ms, which with the current timeout of 10ms causes the kernel to
abort the suspend. Increasing the timeout to the recommended value
fixes the problem.

This patch should be backported to kernels as old as 2.6.37, that
contain the commit 5535b1d5f8885695c6ded783c692e3c0d0eda8ca "USB: xHCI:
PCI power management implementation".

Signed-off-by: Michael Spang <spang@chromium.org>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci.c

index 16ec4d3890b353f7d90f4bfc1d7c7e4bd6a16345..0834a879cd978a8bb9a306bd7c8c5425b5616725 100644 (file)
@@ -716,7 +716,7 @@ int xhci_suspend(struct xhci_hcd *xhci)
        command &= ~CMD_RUN;
        xhci_writel(xhci, command, &xhci->op_regs->command);
        if (handshake(xhci, &xhci->op_regs->status,
-                     STS_HALT, STS_HALT, 100*100)) {
+                     STS_HALT, STS_HALT, XHCI_MAX_HALT_USEC)) {
                xhci_warn(xhci, "WARN: xHC CMD_RUN timeout\n");
                spin_unlock_irq(&xhci->lock);
                return -ETIMEDOUT;