diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h index 872e841dd322..604544f0f90e 100644 --- a/core/wma/inc/wma.h +++ b/core/wma/inc/wma.h @@ -208,6 +208,8 @@ #define WMA_ROAM_HO_WAKE_LOCK_DURATION (500) /* in msec */ #define WMA_ROAM_PREAUTH_WAKE_LOCK_DURATION (2 * 1000) +#define WMA_REASON_PROBE_REQ_WPS_IE_RECV_DURATION (3 * 1000) + #ifdef FEATURE_WLAN_AUTO_SHUTDOWN #define WMA_AUTO_SHUTDOWN_WAKE_LOCK_DURATION WAKELOCK_DURATION_RECOMMENDED #endif @@ -968,6 +970,7 @@ typedef struct { qdf_wake_lock_t wow_auto_shutdown_wl; qdf_wake_lock_t roam_ho_wl; qdf_wake_lock_t roam_preauth_wl; + qdf_wake_lock_t probe_req_wps_wl; int wow_nack; qdf_atomic_t is_wow_bus_suspended; #ifdef WLAN_FEATURE_LPSS diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c index ccb2323d5328..6675b3d1a214 100644 --- a/core/wma/src/wma_features.c +++ b/core/wma/src/wma_features.c @@ -2292,6 +2292,11 @@ static void wma_acquire_wow_wakelock(t_wma_handle *wma, int wake_reason) case WOW_REASON_ROAM_PREAUTH_START: wl = &wma->roam_preauth_wl; ms = WMA_ROAM_PREAUTH_WAKE_LOCK_DURATION; + break; + case WOW_REASON_PROBE_REQ_WPS_IE_RECV: + wl = &wma->probe_req_wps_wl; + ms = WMA_REASON_PROBE_REQ_WPS_IE_RECV_DURATION; + break; default: return; } diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index d5f4967fecba..c8740e041ed6 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -2962,6 +2962,8 @@ QDF_STATUS wma_open(struct wlan_objmgr_psoc *psoc, "wlan_roam_ho_wl"); qdf_wake_lock_create(&wma_handle->roam_preauth_wl, "wlan_roam_preauth_wl"); + qdf_wake_lock_create(&wma_handle->probe_req_wps_wl, + "wlan_probe_req_wps_wl"); } qdf_status = wlan_objmgr_psoc_try_get_ref(psoc, WLAN_LEGACY_WMA_ID); @@ -3470,6 +3472,7 @@ err_get_psoc_ref: 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); + qdf_wake_lock_destroy(&wma_handle->probe_req_wps_wl); } err_free_wma_handle: cds_free_context(QDF_MODULE_ID_WMA, wma_handle); @@ -4471,6 +4474,7 @@ QDF_STATUS wma_close(void) 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); + qdf_wake_lock_destroy(&wma_handle->probe_req_wps_wl); } /* unregister Firmware debug log */