summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/baseband-xmm-power.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-tegra/baseband-xmm-power.c')
-rw-r--r--arch/arm/mach-tegra/baseband-xmm-power.c11
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);