diff options
| author | Srikanth Marepalli <srimarep@codeaurora.org> | 2019-08-19 21:24:43 +0530 |
|---|---|---|
| committer | nshrivas <nshrivas@codeaurora.org> | 2019-09-04 07:52:58 -0700 |
| commit | caa606dbcfdf8ea91e1c677a7aa87eabf1b48cf4 (patch) | |
| tree | ee076e61ba2b7a19c27d10cd3b7a66fd22003246 | |
| parent | 56657042455a5070d9c642a5c4006e84f38e921f (diff) | |
qcacld-3.0: Make WMI_ROAM_PMKID_REQUEST_EVENTID event as wakable
Add support to make event WMI_ROAM_PMKID_REQUEST_EVENTID as
wakable in FIPS case.
In FIPS Enabled case, for roaming Firmware sends PMKID request
to host as firmware is not supposed to do crypto functionality
with FIPS enabled.
Change-Id: I09b6b68f77ba75f9e5519ff18017c95d16771f52
CRs-Fixed: 2513790
| -rw-r--r-- | core/wma/inc/wma_internal.h | 8 | ||||
| -rw-r--r-- | core/wma/src/wma_features.c | 14 | ||||
| -rw-r--r-- | core/wma/src/wma_utils.c | 3 |
3 files changed, 25 insertions, 0 deletions
diff --git a/core/wma/inc/wma_internal.h b/core/wma/inc/wma_internal.h index ff0e4bb666de..2cb003eed6b9 100644 --- a/core/wma/inc/wma_internal.h +++ b/core/wma/inc/wma_internal.h @@ -239,6 +239,14 @@ static inline void wma_register_pmkid_req_event_handler(tp_wma_handle wma_handle) { } + +static inline int +wma_roam_pmkid_request_event_handler(void *handle, + uint8_t *event, + uint32_t len) +{ + return 0; +} #endif /* WLAN_FEATURE_FIPS */ /** diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c index a3a042689b6b..161609e3e178 100644 --- a/core/wma/src/wma_features.c +++ b/core/wma/src/wma_features.c @@ -3771,6 +3771,8 @@ static const u8 *wma_wow_wake_reason_str(A_INT32 wake_reason) return "DEBUG_TEST"; case WOW_REASON_CHIP_POWER_FAILURE_DETECT: return "CHIP_POWER_FAILURE_DETECT"; + case WOW_REASON_ROAM_PMKID_REQUEST: + return "ROAM_PMKID_REQUEST"; default: return "unknown"; } @@ -4089,6 +4091,9 @@ static int wow_get_wmi_eventid(int32_t reason, uint32_t tag) case WOW_REASON_ROAM_HO: event_id = WMI_ROAM_EVENTID; break; + case WOW_REASON_ROAM_PMKID_REQUEST: + event_id = WMI_ROAM_PMKID_REQUEST_EVENTID; + break; default: WMA_LOGD(FL("Unexpected WOW reason : %s(%d)"), wma_wow_wake_reason_str(reason), reason); @@ -4125,6 +4130,7 @@ static bool tlv_check_required(int32_t reason) case WOW_REASON_NAN_EVENT: case WOW_REASON_NAN_DATA: case WOW_REASON_ROAM_HO: + case WOW_REASON_ROAM_PMKID_REQUEST: return true; default: return false; @@ -5052,6 +5058,14 @@ int wma_wow_wakeup_host_event(void *handle, uint8_t *event, wma_send_msg(wma, SIR_LIM_DELETE_STA_CONTEXT_IND, (void *)del_sta_ctx, 0); break; + case WOW_REASON_ROAM_PMKID_REQUEST: + WMA_LOGD("Host woken up because of PMKID request event"); + if (param_buf->wow_packet_buffer) + wma_roam_pmkid_request_event_handler(handle, + wmi_cmd_struct_ptr, wow_buf_pkt_len); + else + WMA_LOGD("No wow_packet_buffer present"); + break; default: break; } diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c index aeca7afb4c78..6e254d1cb79f 100644 --- a/core/wma/src/wma_utils.c +++ b/core/wma/src/wma_utils.c @@ -6419,6 +6419,9 @@ void wma_set_sta_wow_bitmask(uint32_t *bitmask, uint32_t wow_bitmap_size) wma_set_wow_event_bitmap(WOW_TDLS_CONN_TRACKER_EVENT, WMI_WOW_MAX_EVENT_BM_LEN, bitmask); + wma_set_wow_event_bitmap(WOW_ROAM_PMKID_REQUEST_EVENT, + WMI_WOW_MAX_EVENT_BM_LEN, + bitmask); /* Add further STA wakeup events above this line. */ } |
