summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorAjay Gupta <ajayg@nvidia.com>2013-04-11 14:49:02 -0700
committerMrutyunjay Sawant <msawant@nvidia.com>2013-04-15 00:49:27 -0700
commitf6c10e266f624c5859a8334eb4e516c66e3a5830 (patch)
tree04e78ececc913ceb0179c24e6a7db78d5169d810 /drivers/usb
parent51b7792dd3ff3851f51d509d78fd11b996f95473 (diff)
usb: xhci: tegra: Add resume recovery delay of 10ms
This is needed as per usb2.0 spec section 9.2.6.2 Bug 1261769 Bug 1267127 Change-Id: Ib6c485ec93f478b88b48979a0182b3e702e7e49b Signed-off-by: Ajay Gupta <ajayg@nvidia.com> Reviewed-on: http://git-master/r/218672 Reviewed-by: Henry Lin <henryl@nvidia.com> Reviewed-by: Jui Chang Kuo <jckuo@nvidia.com> Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/xhci-hub.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index 2bb098dff111..9f762d529675 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -634,6 +634,14 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
clear_bit(wIndex, &bus_state->resuming_ports);
xhci_set_link_state(xhci, port_array, wIndex,
XDEV_U0);
+
+ /* add reset/resume recovery time of 10ms
+ * per usb2.0 spec section 9.2.6.2
+ */
+ spin_unlock_irqrestore(&xhci->lock, flags);
+ msleep(10);
+ spin_lock_irqsave(&xhci->lock, flags);
+
xhci_dbg(xhci, "set port %d resume\n",
wIndex + 1);
slot_id = xhci_find_slot_id_by_port(hcd, xhci,