mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 01:01:56 -04:00
Merge "qcacld-3.0: WPA3 roam make preauth start command as wakable" into wlan-cld3.driver.lnx.2.0
This commit is contained in:
commit
add7b92269
5 changed files with 28 additions and 0 deletions
|
|
@ -425,6 +425,13 @@ void pmo_set_sta_wow_bitmask(uint32_t *bitmask, uint32_t wow_bitmap_size)
|
|||
pmo_set_wow_event_bitmap(WOW_NLO_SCAN_COMPLETE_EVENT,
|
||||
wow_bitmap_size,
|
||||
bitmask);
|
||||
/*
|
||||
* WPA3 roaming offloads SAE authentication to wpa_supplicant
|
||||
* Firmware will send WMI_ROAM_PREAUTH_STATUS_CMDID
|
||||
*/
|
||||
pmo_set_wow_event_bitmap(WOW_ROAM_PREAUTH_START_EVENT,
|
||||
wow_bitmap_size,
|
||||
bitmask);
|
||||
}
|
||||
|
||||
void pmo_set_sap_wow_bitmask(uint32_t *bitmask, uint32_t wow_bitmap_size)
|
||||
|
|
|
|||
|
|
@ -225,6 +225,8 @@
|
|||
#define WMA_DEAUTH_RECV_WAKE_LOCK_DURATION WAKELOCK_DURATION_RECOMMENDED
|
||||
#define WMA_DISASSOC_RECV_WAKE_LOCK_DURATION WAKELOCK_DURATION_RECOMMENDED
|
||||
#define WMA_ROAM_HO_WAKE_LOCK_DURATION (500) /* in msec */
|
||||
#define WMA_ROAM_PREAUTH_WAKE_LOCK_DURATION (2 * 1000)
|
||||
|
||||
#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
|
||||
#define WMA_AUTO_SHUTDOWN_WAKE_LOCK_DURATION WAKELOCK_DURATION_RECOMMENDED
|
||||
#endif
|
||||
|
|
@ -1060,6 +1062,7 @@ typedef struct {
|
|||
qdf_wake_lock_t wow_ap_assoc_lost_wl;
|
||||
qdf_wake_lock_t wow_auto_shutdown_wl;
|
||||
qdf_wake_lock_t roam_ho_wl;
|
||||
qdf_wake_lock_t roam_preauth_wl;
|
||||
int wow_nack;
|
||||
qdf_atomic_t is_wow_bus_suspended;
|
||||
bool suitable_ap_hb_failure;
|
||||
|
|
|
|||
|
|
@ -1395,6 +1395,8 @@ static const uint8_t *wma_wow_wake_reason_str(A_INT32 wake_reason)
|
|||
return "IOAC_TIMER_EVENT";
|
||||
case WOW_REASON_ROAM_HO:
|
||||
return "ROAM_HO";
|
||||
case WOW_REASON_ROAM_PREAUTH_START:
|
||||
return "ROAM_PREAUTH_START_EVENT";
|
||||
case WOW_REASON_DFS_PHYERR_RADADR_EVENT:
|
||||
return "DFS_PHYERR_RADADR_EVENT";
|
||||
case WOW_REASON_BEACON_RECV:
|
||||
|
|
@ -1668,6 +1670,9 @@ static int wow_get_wmi_eventid(int32_t reason, uint32_t tag)
|
|||
case WOW_REASON_11D_SCAN:
|
||||
event_id = WMI_11D_NEW_COUNTRY_EVENTID;
|
||||
break;
|
||||
case WOW_ROAM_PREAUTH_START_EVENT:
|
||||
event_id = WMI_ROAM_PREAUTH_STATUS_CMDID;
|
||||
break;
|
||||
default:
|
||||
WMA_LOGD(FL("No Event Id for WOW reason %s(%d)"),
|
||||
wma_wow_wake_reason_str(reason), reason);
|
||||
|
|
@ -2244,6 +2249,9 @@ static void wma_acquire_wow_wakelock(t_wma_handle *wma, int wake_reason)
|
|||
wl = &wma->roam_ho_wl;
|
||||
ms = WMA_ROAM_HO_WAKE_LOCK_DURATION;
|
||||
break;
|
||||
case WOW_REASON_ROAM_PREAUTH_START:
|
||||
wl = &wma->roam_preauth_wl;
|
||||
ms = WMA_ROAM_PREAUTH_WAKE_LOCK_DURATION;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3176,6 +3176,8 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc,
|
|||
"wlan_auto_shutdown_wl");
|
||||
qdf_wake_lock_create(&wma_handle->roam_ho_wl,
|
||||
"wlan_roam_ho_wl");
|
||||
qdf_wake_lock_create(&wma_handle->roam_preauth_wl,
|
||||
"wlan_roam_preauth_wl");
|
||||
}
|
||||
|
||||
qdf_status = wlan_objmgr_psoc_try_get_ref(psoc, WLAN_LEGACY_WMA_ID);
|
||||
|
|
@ -3679,6 +3681,7 @@ err_get_psoc_ref:
|
|||
qdf_wake_lock_destroy(&wma_handle->wow_ap_assoc_lost_wl);
|
||||
qdf_wake_lock_destroy(&wma_handle->wow_auto_shutdown_wl);
|
||||
qdf_wake_lock_destroy(&wma_handle->roam_ho_wl);
|
||||
qdf_wake_lock_destroy(&wma_handle->roam_preauth_wl);
|
||||
}
|
||||
err_free_wma_handle:
|
||||
cds_free_context(QDF_MODULE_ID_WMA, wma_handle);
|
||||
|
|
@ -4703,6 +4706,7 @@ QDF_STATUS wma_close(void)
|
|||
qdf_wake_lock_destroy(&wma_handle->wow_ap_assoc_lost_wl);
|
||||
qdf_wake_lock_destroy(&wma_handle->wow_auto_shutdown_wl);
|
||||
qdf_wake_lock_destroy(&wma_handle->roam_ho_wl);
|
||||
qdf_wake_lock_destroy(&wma_handle->roam_preauth_wl);
|
||||
}
|
||||
|
||||
/* unregister Firmware debug log */
|
||||
|
|
|
|||
|
|
@ -3242,6 +3242,12 @@ int wma_roam_auth_offload_event_handler(WMA_HANDLE handle, uint8_t *event,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
cds_host_diag_log_work(&wma->roam_preauth_wl,
|
||||
WMA_ROAM_PREAUTH_WAKE_LOCK_DURATION,
|
||||
WIFI_POWER_EVENT_WAKELOCK_WOW);
|
||||
qdf_wake_lock_timeout_acquire(&wma->roam_ho_wl,
|
||||
WMA_ROAM_HO_WAKE_LOCK_DURATION);
|
||||
|
||||
WMI_MAC_ADDR_TO_CHAR_ARRAY(&rso_auth_start_ev->candidate_ap_bssid,
|
||||
ap_bssid.bytes);
|
||||
if (qdf_is_macaddr_zero(&ap_bssid) ||
|
||||
|
|
|
|||
Loading…
Reference in a new issue