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
This commit is contained in:
Srikanth Marepalli
2019-12-20 16:11:02 +05:30
gecommit door nshrivas
bovenliggende 4eaa5d66ba
commit 72213318bd
3 gewijzigde bestanden met toevoegingen van 31 en 2 verwijderingen

Bestand weergeven

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -432,6 +432,9 @@ void pmo_set_sta_wow_bitmask(uint32_t *bitmask, uint32_t wow_bitmap_size)
pmo_set_wow_event_bitmap(WOW_ROAM_PREAUTH_START_EVENT,
wow_bitmap_size,
bitmask);
pmo_set_wow_event_bitmap(WOW_ROAM_PMKID_REQUEST_EVENT,
wow_bitmap_size,
bitmask);
}
void pmo_set_sap_wow_bitmask(uint32_t *bitmask, uint32_t wow_bitmap_size)

Bestand weergeven

@@ -212,6 +212,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 */
/**
@@ -283,6 +291,14 @@ wma_roam_stats_event_handler(WMA_HANDLE handle, uint8_t *event,
{
return 0;
}
static inline int
wma_roam_pmkid_request_event_handler(void *handle,
uint8_t *event,
uint32_t len)
{
return 0;
}
#endif
/**

Bestand weergeven

@@ -1515,6 +1515,8 @@ static const uint8_t *wma_wow_wake_reason_str(A_INT32 wake_reason)
#endif /* WLAN_FEATURE_MOTION_DETECTION */
case WOW_REASON_PAGE_FAULT:
return "PAGE_FAULT";
case WOW_REASON_ROAM_PMKID_REQUEST:
return "ROAM_PMKID_REQUEST";
default:
return "unknown";
}
@@ -1737,6 +1739,9 @@ static int wow_get_wmi_eventid(int32_t reason, uint32_t tag)
case WOW_ROAM_PREAUTH_START_EVENT:
event_id = WMI_ROAM_PREAUTH_STATUS_CMDID;
break;
case WOW_REASON_ROAM_PMKID_REQUEST:
event_id = WMI_ROAM_PMKID_REQUEST_EVENTID;
break;
default:
WMA_LOGD(FL("No Event Id for WOW reason %s(%d)"),
wma_wow_wake_reason_str(reason), reason);
@@ -1775,6 +1780,7 @@ static bool is_piggybacked_event(int32_t reason)
case WOW_REASON_NAN_DATA:
case WOW_REASON_TDLS_CONN_TRACKER_EVENT:
case WOW_REASON_ROAM_HO:
case WOW_REASON_ROAM_PMKID_REQUEST:
return true;
default:
return false;
@@ -2632,7 +2638,11 @@ static int wma_wake_event_piggybacked(
wma_send_msg(wma, SIR_LIM_DELETE_STA_CONTEXT_IND, del_sta_ctx,
0);
break;
case WOW_REASON_ROAM_PMKID_REQUEST:
WMA_LOGD("Host woken up because of PMKID request event");
errno = wma_roam_pmkid_request_event_handler(wma, pb_event,
pb_event_len);
break;
default:
WMA_LOGE("Wake reason %s(%u) is not a piggybacked event",
wma_wow_wake_reason_str(wake_reason), wake_reason);