diff --git a/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_rx_ops.c b/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_rx_ops.c index af0d456844..70b7be29fd 100644 --- a/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_rx_ops.c +++ b/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_rx_ops.c @@ -31,6 +31,7 @@ #include #include #include +#include static inline void target_if_vdev_mgr_handle_recovery(struct wlan_objmgr_psoc *psoc, @@ -428,7 +429,7 @@ static int target_if_vdev_mgr_delete_response_handler(ol_scn_t scn, } status = rx_ops->vdev_mgr_delete_response(psoc, &vdev_del_resp); - + target_if_wake_lock_timeout_release(psoc, DELETE_WAKELOCK); err: return qdf_status_to_os_return(status); } diff --git a/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c b/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c index 5c42b5db48..2e307286eb 100644 --- a/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c +++ b/target_if/mlme/vdev_mgr/src/target_if_vdev_mgr_tx_ops.c @@ -608,6 +608,14 @@ static QDF_STATUS target_if_vdev_mgr_stop_send( vdev_rsp->expire_time = STOP_RESPONSE_TIMER; target_if_vdev_mgr_rsp_timer_start(psoc, vdev_rsp, STOP_RESPONSE_BIT); + /* + * START wakelock is acquired before sending the start command and + * released after sending up command to fw. This is to prevent the + * system to go into suspend state during the connection. + * In auth/assoc failure scenario UP command is not sent + * so release the START wakelock here. + */ + target_if_wake_lock_timeout_release(psoc, START_WAKELOCK); target_if_wake_lock_timeout_acquire(psoc, STOP_WAKELOCK); status = wmi_unified_vdev_stop_send(wmi_handle, param->vdev_id); @@ -649,7 +657,7 @@ static QDF_STATUS target_if_vdev_mgr_down_send( } status = wmi_unified_vdev_down_send(wmi_handle, param->vdev_id); - target_if_wake_lock_timeout_release(psoc, START_WAKELOCK); + target_if_wake_lock_timeout_release(psoc, STOP_WAKELOCK); return status; }