| From beb728ab19f7a2b8d5eb0ea1d024eb71a5dbe80a Mon Sep 17 00:00:00 2001 |
| From: Sarah Sharp <sarah.a.sharp@linux.intel.com> |
| Date: Mon, 23 Jul 2012 16:06:08 -0700 |
| Subject: [PATCH] xhci: Increase reset timeout for Renesas 720201 host. |
| |
| commit 22ceac191211cf6688b1bf6ecd93c8b6bf80ed9b upstream. |
| |
| The NEC/Renesas 720201 xHCI host controller does not complete its reset |
| within 250 milliseconds. In fact, it takes about 9 seconds to reset the |
| host controller, and 1 second for the host to be ready for doorbell |
| rings. Extend the reset and CNR polling timeout to 10 seconds each. |
| |
| This patch should be backported to kernels as old as 2.6.31, that |
| contain the commit 66d4eadd8d067269ea8fead1a50fe87c2979a80d "USB: xhci: |
| BIOS handoff and HW initialization." |
| |
| Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> |
| Reported-by: Edwin Klein Mentink <e.kleinmentink@zonnet.nl> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| --- |
| drivers/usb/host/xhci.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c |
| index 0a5901f607c6..d8ec9ec57d15 100644 |
| --- a/drivers/usb/host/xhci.c |
| +++ b/drivers/usb/host/xhci.c |
| @@ -158,7 +158,7 @@ int xhci_reset(struct xhci_hcd *xhci) |
| xhci_to_hcd(xhci)->state = HC_STATE_HALT; |
| |
| ret = handshake(xhci, &xhci->op_regs->command, |
| - CMD_RESET, 0, 250 * 1000); |
| + CMD_RESET, 0, 10 * 1000 * 1000); |
| if (ret) |
| return ret; |
| |
| @@ -167,7 +167,8 @@ int xhci_reset(struct xhci_hcd *xhci) |
| * xHCI cannot write to any doorbells or operational registers other |
| * than status until the "Controller Not Ready" flag is cleared. |
| */ |
| - return handshake(xhci, &xhci->op_regs->status, STS_CNR, 0, 250 * 1000); |
| + return handshake(xhci, &xhci->op_regs->status, |
| + STS_CNR, 0, 10 * 1000 * 1000); |
| } |
| |
| |
| -- |
| 1.8.5.2 |
| |