summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivas Girigowda <sgirigow@qca.qualcomm.com>2015-04-10 15:41:31 -0700
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2015-04-13 18:27:25 +0530
commitacd1b538b6aaabd9aa7d13c1ca28f60202890645 (patch)
tree0f220836df192f63cb301dd81cb54735588c07cf
parentcf25b05e8efa729580bf0681a268ae7231510cb4 (diff)
qcacld-2.0: extscan: Add support for WOW_EXTSCAN_EVENT
Add host support to configure WOW_EXTSCAN_EVENT before going to APPS power collapse if extscan is in progress. Firmware shall wake up the host with WOW_EXTSCAN_EVENT event and WOW_REASON_EXTSCAN reason before forwarding any EXTSCAN_* events. Change-Id: Ieecfd436a30a12917113c02bf4f8a6381cdd2a16 CRs-Fixed: 821049
-rw-r--r--CORE/SERVICES/WMA/wma.c31
1 files changed, 28 insertions, 3 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index a6733f19d34c..1606d12eaea7 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -17542,6 +17542,11 @@ static const u8 *wma_wow_wake_reason_str(A_INT32 wake_reason)
#endif
case WOW_REASON_CLIENT_KICKOUT_EVENT:
return "WOW_REASON_CLIENT_KICKOUT_EVENT";
+
+#ifdef FEATURE_WLAN_EXTSCAN
+ case WOW_REASON_EXTSCAN:
+ return "WOW_REASON_EXTSCAN";
+#endif
}
return "unknown";
}
@@ -17880,6 +17885,13 @@ static int wma_wow_wakeup_host_event(void *handle, u_int8_t *event,
}
break;
}
+#ifdef FEATURE_WLAN_EXTSCAN
+ case WOW_REASON_EXTSCAN:
+ {
+ WMA_LOGD("Host woken up because of extscan reason");
+ }
+ break;
+#endif
default:
break;
}
@@ -18731,7 +18743,8 @@ end:
* wakeup trigger events.
*/
static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma,
- v_BOOL_t pno_in_progress)
+ v_BOOL_t pno_in_progress,
+ bool extscan_in_progress)
{
struct wma_txrx_node *iface;
VOS_STATUS ret = VOS_STATUS_SUCCESS;
@@ -18982,6 +18995,17 @@ static VOS_STATUS wma_feed_wow_config_to_fw(tp_wma_handle wma,
}
#endif
+#ifdef FEATURE_WLAN_EXTSCAN
+ ret = wma_add_wow_wakeup_event(wma, WOW_EXTSCAN_EVENT,
+ extscan_in_progress);
+
+ if (ret != VOS_STATUS_SUCCESS) {
+ WMA_LOGE("Failed to Configure WOW_EXTSCAN_EVENT to FW");
+ goto end;
+ } else
+ WMA_LOGD("Successfully Configured WOW_EXTSCAN_EVENT to FW");
+#endif
+
/* WOW is enabled in pcie suspend callback */
wma->wow.wow_enable = TRUE;
wma->wow.wow_enable_cmd_sent = FALSE;
@@ -19256,7 +19280,8 @@ enable_wow:
}
#endif
- ret = wma_feed_wow_config_to_fw(wma, pno_in_progress);
+ ret = wma_feed_wow_config_to_fw(wma, pno_in_progress,
+ extscan_in_progress);
if (ret != VOS_STATUS_SUCCESS) {
vos_mem_free(info);
wma_send_status_to_suspend_ind(wma, FALSE);
@@ -19344,7 +19369,7 @@ static VOS_STATUS wma_auto_suspend_req(tp_wma_handle wma,
WMA_LOGD("WOW Suspend");
- ret = wma_feed_wow_config_to_fw(wma, pno_in_progress);
+ ret = wma_feed_wow_config_to_fw(wma, pno_in_progress, false);
if (ret != VOS_STATUS_SUCCESS) {
wma_send_status_to_suspend_ind(wma, false);
return ret;