diff options
author | Venu Byravarasu <vbyravarasu@nvidia.com> | 2012-06-29 11:58:51 +0530 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-07-16 17:14:30 -0700 |
commit | c5246863929e52eca234722e229e3607e41e055c (patch) | |
tree | a7efd3951dcf34be7e97976a0d822d28c8445532 /arch/arm/mach-tegra/tegra3_usb_phy.c | |
parent | 316eb7f2e9e04ed1e3759b7dd3a8633384e92e33 (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.c | 11 |
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); |