diff options
| author | Nitesh Shah <niteshs@qti.qualcomm.com> | 2016-07-04 16:07:54 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-07-26 14:41:14 +0530 |
| commit | 5f8abb08fb36994ab85b223fffb39f5b7762c8df (patch) | |
| tree | 6cc07c542dc20c402f6e69f7a02244ad9bda9414 | |
| parent | f0ba3d96a0545b6bc4feb50b5a13bd7ee9373d80 (diff) | |
qcacld-2.0: Diag event for WOW reason code
Add diag event for WOW reason code.
The event EVENT_WLAN_POWERSAVE_WOW will be used to
inform the WOW reason code.
Change-Id: I9273c9e737b97207ce0acee131ab6f3c19cd3e0d
CRs-Fixed: 1037383
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 4 | ||||
| -rw-r--r-- | CORE/VOSS/inc/vos_utils.h | 6 | ||||
| -rw-r--r-- | CORE/VOSS/src/vos_diag.c | 23 |
3 files changed, 32 insertions, 1 deletions
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 78d2caa9ded9..49b2e682e586 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -21495,11 +21495,13 @@ static int wma_wow_wakeup_host_event(void *handle, u_int8_t *event, if ((wake_info->wake_reason != WOW_REASON_UNSPECIFIED) || (wake_info->wake_reason == WOW_REASON_UNSPECIFIED && - !wmi_get_runtime_pm_inprogress(wma->wmi_handle))) + !wmi_get_runtime_pm_inprogress(wma->wmi_handle))) { WMA_LOGA("WOW wakeup host event received (reason: %s(%d)) for vdev %d", wma_wow_wake_reason_str(wake_info->wake_reason, wma), wake_info->wake_reason, wake_info->vdev_id); + vos_wow_wakeup_host_event(wake_info->wake_reason); + } vos_event_set(&wma->wma_resume_event); diff --git a/CORE/VOSS/inc/vos_utils.h b/CORE/VOSS/inc/vos_utils.h index 53e9731a8b7c..e4af65b50e6d 100644 --- a/CORE/VOSS/inc/vos_utils.h +++ b/CORE/VOSS/inc/vos_utils.h @@ -188,6 +188,7 @@ eHalStatus vos_send_flush_logs_cmd_to_fw(tpAniSirGlobal pMac); #ifdef FEATURE_WLAN_DIAG_SUPPORT void vos_tdls_tx_rx_mgmt_event(uint8_t event_id, uint8_t tx_rx, uint8_t type, uint8_t sub_type, uint8_t *peer_mac); +void vos_wow_wakeup_host_event(uint8_t wow_wakeup_cause); #else static inline void vos_tdls_tx_rx_mgmt_event(uint8_t event_id, uint8_t tx_rx, @@ -196,6 +197,11 @@ void vos_tdls_tx_rx_mgmt_event(uint8_t event_id, uint8_t tx_rx, { return; } +static inline +void vos_wow_wakeup_host_event(uint8_t wow_wakeup_cause) +{ + return; +} #endif /* FEATURE_WLAN_DIAG_SUPPORT */ unsigned long vos_rounddown_pow_of_two(unsigned long n); diff --git a/CORE/VOSS/src/vos_diag.c b/CORE/VOSS/src/vos_diag.c index ee9f71f15812..e5c26d7f0972 100644 --- a/CORE/VOSS/src/vos_diag.c +++ b/CORE/VOSS/src/vos_diag.c @@ -42,6 +42,7 @@ #include "vos_sched.h" #include "wlan_ptt_sock_svc.h" #include "wlan_nlink_srv.h" +#include "wlan_ps_wow_diag.h" #define PTT_MSG_DIAG_CMDS_TYPE 0x5050 @@ -307,6 +308,28 @@ void vos_event_report_payload(v_U16_t event_Id, v_U16_t length, v_VOID_t *pPaylo } +#ifdef FEATURE_WLAN_DIAG_SUPPORT +/** + * vos_wow_wakeup_host_event()- send wow wakeup event + * @wow_wakeup_cause: WOW wakeup reason code + * + * This function sends wow wakeup reason code diag event + * + * Return: void. + */ +void vos_wow_wakeup_host_event(uint8_t wow_wakeup_cause) +{ + WLAN_VOS_DIAG_EVENT_DEF(wowRequest, + vos_event_wlan_powersave_wow_payload_type); + vos_mem_zero(&wowRequest, sizeof(wowRequest)); + + wowRequest.event_subtype = WLAN_WOW_WAKEUP; + wowRequest.wow_wakeup_cause = wow_wakeup_cause; + WLAN_VOS_DIAG_EVENT_REPORT(&wowRequest, + EVENT_WLAN_POWERSAVE_WOW); +} +#endif + /** * vos_log_low_resource_failure() - This function is used to send low * resource failure event |
