summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/tegra3_usb_phy.c
diff options
context:
space:
mode:
authorVenu Byravarasu <vbyravarasu@nvidia.com>2012-06-29 11:58:51 +0530
committerSimone Willett <swillett@nvidia.com>2012-07-16 17:14:30 -0700
commitc5246863929e52eca234722e229e3607e41e055c (patch)
treea7efd3951dcf34be7e97976a0d822d28c8445532 /arch/arm/mach-tegra/tegra3_usb_phy.c
parent316eb7f2e9e04ed1e3759b7dd3a8633384e92e33 (diff)
arm: tegra: usb_phy: utmip remote wakeup issue
Do not clear sleep walk pointer for utmip port after remote wakeup is detected. This should be cleared after control is given to USB master from PMC. Bug 999208 Change-Id: I9f498521989c6421f0043dc1b4364591d4907423 Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com> (cherry picked from commit e4dbecfe031cbacd4f22bbbcdf971ab11ad81ee8) Reviewed-on: http://git-master/r/112938 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/tegra3_usb_phy.c')
-rw-r--r--arch/arm/mach-tegra/tegra3_usb_phy.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/tegra3_usb_phy.c b/arch/arm/mach-tegra/tegra3_usb_phy.c
index 6a8dc3d252e6..874bb1325a22 100644
--- a/arch/arm/mach-tegra/tegra3_usb_phy.c
+++ b/arch/arm/mach-tegra/tegra3_usb_phy.c
@@ -721,10 +721,6 @@ static void utmip_phy_disable_pmc_bus_ctrl(struct tegra_usb_phy *phy)
val |= UTMIP_WAKE_VAL(inst, WAKE_VAL_NONE);
writel(val, pmc_base + PMC_SLEEP_CFG);
- val = readl(pmc_base + PMC_TRIGGERS);
- val |= UTMIP_CLR_WAKE_ALARM(inst) | UTMIP_CLR_WALK_PTR(inst);
- writel(val, pmc_base + PMC_TRIGGERS);
-
val = readl(base + UTMIP_PMC_WAKEUP0);
val &= ~EVENT_INT_ENB;
writel(val, base + UTMIP_PMC_WAKEUP0);
@@ -744,6 +740,10 @@ static void utmip_phy_disable_pmc_bus_ctrl(struct tegra_usb_phy *phy)
val |= (USBOP_VAL_PD(inst) | USBON_VAL_PD(inst));
writel(val, pmc_base + PMC_USB_AO);
+ val = readl(pmc_base + PMC_TRIGGERS);
+ val |= UTMIP_CLR_WALK_PTR(inst);
+ writel(val, pmc_base + PMC_TRIGGERS);
+
phy->remote_wakeup = false;
PHY_DBG("%s DISABLE_PMC inst = %d\n", __func__, inst);
}
@@ -766,8 +766,7 @@ bool utmi_phy_remotewake_detected(struct tegra_usb_phy *phy)
writel(val, pmc_base + PMC_SLEEP_CFG);
val = readl(pmc_base + PMC_TRIGGERS);
- val |= UTMIP_CLR_WAKE_ALARM(inst) |
- UTMIP_CLR_WALK_PTR(inst);
+ val |= UTMIP_CLR_WAKE_ALARM(inst);
writel(val, pmc_base + PMC_TRIGGERS);
val = readl(base + UTMIP_PMC_WAKEUP0);