summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorAjay Gupta <ajayg@nvidia.com>2013-02-12 11:38:17 -0800
committerMrutyunjay Sawant <msawant@nvidia.com>2013-02-15 08:58:00 -0800
commit401aef9fb2dd3cfb1bd6c9787498caaac7b7580e (patch)
tree613383766b3c7f1cad1d863479a805122fa95f2e /drivers/usb
parentc7aba9f7ec5723ccbeca09aebbdf0118738e90b5 (diff)
usb: xhci: tegra: clear both ss and hs wake interrupt
This fixes soft lockup for CPU#0 issue seen with ELPG cycle run with SS hub connected with SS, HS, FS and LS devices. We need to clear both SS and HS wake interrupt in ELPG exit path. Bug 1233377 Change-Id: I34881269a93414991ff89c31e63c6f7f3153009a Signed-off-by: Bharath Yadav <byadav@nvidia.com> Signed-off-by: Ajay Gupta <ajayg@nvidia.com> Reviewed-on: http://git-master/r/200517 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/host/xhci-tegra.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c
index a4441034e1d6..e1259fe29d9b 100644
--- a/drivers/usb/host/xhci-tegra.c
+++ b/drivers/usb/host/xhci-tegra.c
@@ -2368,6 +2368,12 @@ static irqreturn_t tegra_xhci_padctl_irq(int irq, void *ptrdev)
writel(elpg_program0 | USB2_HSIC_PORT1_WAKEUP_EVENT,
tegra->padctl_base + ELPG_PROGRAM_0);
}
+
+ if (tegra->ss_wake_event || tegra->hs_wake_event) {
+ tegra_xhci_ss_wake_on_interrupts(tegra, false);
+ tegra_xhci_hs_wake_on_interrupts(tegra, false);
+ }
+
if (tegra->ss_wake_event) {
if (tegra->ss_pwr_gated && !tegra->host_pwr_gated) {
xhci_dbg(xhci, "[%s] schedule ss_elpg_exit_work\n",