diff options
author | joyw <joyw@nvidia.com> | 2013-01-31 19:17:33 +0800 |
---|---|---|
committer | Riham Haidar <rhaidar@nvidia.com> | 2013-02-01 18:42:08 -0800 |
commit | 73596b7df75267487001e35367cb0c81e7d5d51a (patch) | |
tree | 0248b15164afece922e6e55412c7b3c5170db6da /drivers/usb | |
parent | 8c3bb236fdcd1e3106efc59b479036d29531af8e (diff) |
usb: xhci: WAR fix for xhci_bus_suspend failed -16
Add delay after programming host controller port status register.
Change-Id: Ic023653879de43f30f2cd4366d1944d0c14089fc
Signed-off-by: joyw <joyw@nvidia.com>
Reviewed-on: http://git-master/r/196188
Reviewed-by: Ajay Gupta <ajayg@nvidia.com>
Tested-by: Ajay Gupta <ajayg@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Jui Chang Kuo <jckuo@nvidia.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/host/xhci-hub.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c index bbf3c0c9cde7..824fc0f4e474 100644 --- a/drivers/usb/host/xhci-hub.c +++ b/drivers/usb/host/xhci-hub.c @@ -1062,8 +1062,16 @@ int xhci_bus_resume(struct usb_hcd *hcd) xhci, port_index + 1); if (slot_id) xhci_ring_device(xhci, slot_id); - } else + } else{ xhci_writel(xhci, temp, port_array[port_index]); + /* FIXME: Remove below 20ms delay when we have correct + * solution for error message + * "xhci_bus_suspend failed -16" + */ + spin_unlock_irqrestore(&xhci->lock, flags); + msleep(20); + spin_lock_irqsave(&xhci->lock, flags); + } if (hcd->speed != HCD_USB3) { /* disable remote wake up for USB 2.0 */ |