diff options
author | Seshendra Gadagottu <sgadagottu@nvidia.com> | 2012-02-09 22:16:30 +0530 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-03-05 16:42:31 -0800 |
commit | c3871ad8cefae294a7cb83507d5fa9f3e6041a57 (patch) | |
tree | f50329d1595e58eabbbd1638e36aadaf135371df /arch/arm/mach-tegra/baseband-xmm-power.c | |
parent | 03372d9c9372a68957cb321a9b68029176d74833 (diff) |
arm: tegra: xmm power state handling
Avoid unwanted xmm power state changes.
Added missing spin_unlock_irqrestore.
Bug 935834
Bug 938553
Signed-off-by: Seshendra Gadagottu<sgadagottu@nvidia.com>
Reviewed-on: http://git-master/r/82796
(cherry picked from commit 8af674aadfc1196851d5a2ecd1ecdd2cfe2d4148)
Change-Id: Ic5b354376c0239773762d1b0f6e8848491e74e08
Reviewed-on: http://git-master/r/87503
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Tested-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/baseband-xmm-power.c')
-rw-r--r-- | arch/arm/mach-tegra/baseband-xmm-power.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mach-tegra/baseband-xmm-power.c b/arch/arm/mach-tegra/baseband-xmm-power.c index 17801fe9c778..1bdaf8046390 100644 --- a/arch/arm/mach-tegra/baseband-xmm-power.c +++ b/arch/arm/mach-tegra/baseband-xmm-power.c @@ -450,7 +450,15 @@ irqreturn_t baseband_xmm_power_ipc_ap_wake_irq(int irq, void *dev_id) &autopm_resume_work); } } - baseband_xmm_set_power_status(BBXMM_PS_L0); + if ((baseband_xmm_powerstate == + BBXMM_PS_L2TOL0) || + (baseband_xmm_powerstate == + BBXMM_PS_L3TOL0)) + baseband_xmm_set_power_status( + BBXMM_PS_L0); + else + pr_info("%s:no state" + "change required\n", __func__); } /* save gpio state */ ipc_ap_wake_state = IPC_AP_WAKE_H; @@ -980,6 +988,7 @@ static int baseband_xmm_power_suspend_noirq(struct device *dev) if (wakeup_pending) { pr_info("%s:**Abort Suspend: reason CP WAKEUP**\n", __func__); wakeup_pending = false; + spin_unlock_irqrestore(&xmm_lock, flags); return -EBUSY; } spin_unlock_irqrestore(&xmm_lock, flags); |