diff options
| author | Raja Mani <rmani@qti.qualcomm.com> | 2013-12-31 13:36:45 +0530 |
|---|---|---|
| committer | Prakash Dhavali <pdhavali@codeaurora.org> | 2014-01-17 21:45:51 -0800 |
| commit | 167378cd8facdcdd4b20d7425a6c4909b130b427 (patch) | |
| tree | 22ed8791fc05f2e7b6225691c8f5c98247ce4291 | |
| parent | c284d63f79a669c843a41b97d0e68b41e888124c (diff) | |
qcacld: Configure pno wake up event during suspend
Recent firmware considers WOW_NLO_DETECTED_EVENT and wakes up
the host when desired AP found only if WOW_NLO_DETECTED_EVENT
is explicitly enabled by the host.
.
Change-Id: I5ba18b4140cdcaa429e30ef4af094473dc855083
CRs-Fixed: 594855
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index b6cea385413a..a7297696c6c3 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -9782,7 +9782,8 @@ static bool wma_is_wow_prtn_cached(tp_wma_handle wma, u_int8_t vdev_id) * Pushes wow patterns from local cache to FW and configures * wakeup trigger events. */ -static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma) +static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma, + v_BOOL_t pno_in_progress) { struct wma_txrx_node *iface; VOS_STATUS ret = VOS_STATUS_SUCCESS; @@ -9923,6 +9924,15 @@ static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma) ap_vdev_available ? "enabled" : "disabled"); } + /* Configure pno based wakeup */ + ret = wma_add_wow_wakeup_event(wma, WOW_NLO_DETECTED_EVENT, + pno_in_progress); + if (ret != VOS_STATUS_SUCCESS) { + WMA_LOGE("Failed to configure pno based wakeup"); + } else { + WMA_LOGD("PNO based wakeup is %s in fw", + pno_in_progress ? "enabled" : "disabled"); + } /* WOW is enabled in pcie suspend callback */ wma->wow.wow_enable = TRUE; @@ -10144,7 +10154,7 @@ enable_wow: * At this point, suspend indication is received on * last vdev. It's the time to enable wow in fw. */ - ret = wma_feed_wow_config_to_fw(wma); + ret = wma_feed_wow_config_to_fw(wma, pno_in_progress); if (ret != VOS_STATUS_SUCCESS) { vos_mem_free(info); return ret; |
