summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrashanth Bhatta <bhattap@qca.qualcomm.com>2015-08-15 19:03:55 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2015-08-18 03:03:11 -0700
commitaa2cba1343f07fa0ea6efa56eee0e889a442d1d5 (patch)
treecd4047422662e3eaad3f256bb0f52e63c87437a3
parent94a96e46efbf4d8dc9343ddc4a6f1d47e0ed4d9c (diff)
qcacld: voss: Tie wake_lock with runtime PM
Prevent runtime suspend when wake_locks are held so that there is no bus suspend. Change-Id: I846930213cfd28e8fbe172f4871a9cd0f99bc835 CRs-fixed: 891862
-rw-r--r--CORE/VOSS/src/vos_lock.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/CORE/VOSS/src/vos_lock.c b/CORE/VOSS/src/vos_lock.c
index 5b05f1e0629f..3d86a5546187 100644
--- a/CORE/VOSS/src/vos_lock.c
+++ b/CORE/VOSS/src/vos_lock.c
@@ -550,6 +550,9 @@ VOS_STATUS vos_wake_lock_acquire(vos_wake_lock_t *pLock,
vos_log_wlock_diag(reason, vos_wake_lock_name(pLock),
WIFI_POWER_EVENT_DEFAULT_WAKELOCK_TIMEOUT,
WIFI_POWER_EVENT_WAKELOCK_TAKEN);
+
+ if (reason != WIFI_POWER_EVENT_WAKELOCK_DRIVER_INIT)
+ vos_runtime_pm_prevent_suspend();
#if defined CONFIG_CNSS
cnss_pm_wake_lock(pLock);
#elif defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
@@ -584,6 +587,7 @@ VOS_STATUS vos_wake_lock_timeout_acquire(vos_wake_lock_t *pLock, v_U32_t msec,
WIFI_POWER_EVENT_WAKELOCK_TAKEN);
}
+ vos_runtime_pm_prevent_suspend_timeout(msec);
#if defined CONFIG_CNSS
cnss_pm_wake_lock_timeout(pLock, msec);
#elif defined(WLAN_OPEN_SOURCE) && defined(CONFIG_HAS_WAKELOCK)
@@ -615,6 +619,8 @@ VOS_STATUS vos_wake_lock_release(vos_wake_lock_t *pLock, uint32_t reason)
vos_runtime_pm_allow_suspend();
#endif
#endif
+ if (reason != WIFI_POWER_EVENT_WAKELOCK_DRIVER_INIT)
+ vos_runtime_pm_allow_suspend();
return VOS_STATUS_SUCCESS;
}