diff options
author | Venkat Moganty <vmoganty@nvidia.com> | 2010-07-16 20:43:53 +0530 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-07-16 16:31:02 -0700 |
commit | 57c764c72125e0ac38b97c3313e7e2fb2210143d (patch) | |
tree | 50ff9eef57ae223432032fc55169dfa5cd353015 /drivers/usb | |
parent | 556204af97df0718ea46af97f2fb841fcefdc988 (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/usb')
-rw-r--r-- | drivers/usb/host/ehci-tegra.c | 2 |
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; |