summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorVenkat Moganty <vmoganty@nvidia.com>2010-07-16 20:43:53 +0530
committerGary King <gking@nvidia.com>2010-07-16 16:31:02 -0700
commit57c764c72125e0ac38b97c3313e7e2fb2210143d (patch)
tree50ff9eef57ae223432032fc55169dfa5cd353015 /drivers
parent556204af97df0718ea46af97f2fb841fcefdc988 (diff)
[tegra-hcd]: Fix for LP0 hang in host for CONFIG_USB_SUSPEND
When CONFIG_USB_SUSPEND is enabled auto suspend feature is getting executed by the HUB driver during the suspend/resume, which calls the ehci_hub_control from the hub thread to read the port status. When there is no device connected controller is suspended and can not be accessed the registers which is causing hang during suspend/resume. Fixed this by accessing the controller only if host is resumed. Change-Id: I066ff1e5ef11f3cb15a4dc809cd11ee0345dc31a Reviewed-on: http://git-master/r/4014 Reviewed-by: Iqbal Bhinderwala <iqbalb@nvidia.com> Tested-by: Iqbal Bhinderwala <iqbalb@nvidia.com> Reviewed-by: Gary King <gking@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/host/ehci-tegra.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index 21d18bebb562..f052a88ec88e 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -112,7 +112,7 @@ static int tegra_ehci_hub_control (
pdata = hcd->self.controller->platform_data;
/* if hardware is not accessable then don't read the registers */
- if (!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)) {
+ if (!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags) || !ehci->host_resumed) {
if (buf)
memset (buf, 0, wLength);
return retval;