diff options
| -rw-r--r-- | core/wma/inc/wma.h | 1 | ||||
| -rw-r--r-- | core/wma/src/wma_main.c | 9 |
2 files changed, 9 insertions, 1 deletions
diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h index 712a4a895c77..756b04f5ab6d 100644 --- a/core/wma/inc/wma.h +++ b/core/wma/inc/wma.h @@ -273,6 +273,7 @@ enum ds_mode { #define WMA_VDEV_START_REQUEST_TIMEOUT (6000) /* 6 seconds */ #define WMA_VDEV_STOP_REQUEST_TIMEOUT (6000) /* 6 seconds */ #define WMA_VDEV_HW_MODE_REQUEST_TIMEOUT (5000) /* 5 seconds */ +#define WMA_VDEV_PLCY_MGR_CMD_TIMEOUT (3000) /* 3 seconds */ #define WMA_TGT_INVALID_SNR (0) diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index 676d4f32287c..3fa9d82ac7da 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -3284,7 +3284,7 @@ static int wma_pdev_set_dual_mode_config_resp_evt_handler(void *handle, */ return QDF_STATUS_E_NULL_VALUE; } - + wma_release_wmi_resp_wakelock(wma); dual_mac_cfg_resp = qdf_mem_malloc(sizeof(*dual_mac_cfg_resp)); if (!dual_mac_cfg_resp) { WMA_LOGE("%s: Memory allocation failed", __func__); @@ -8242,12 +8242,19 @@ QDF_STATUS wma_send_pdev_set_dual_mac_config(tp_wma_handle wma_handle, return QDF_STATUS_E_NULL_VALUE; } + /* + * aquire the wake lock here and release it in response handler function + * In error condition, release the wake lock right away + */ + wma_acquire_wmi_resp_wakelock(wma_handle, + WMA_VDEV_PLCY_MGR_CMD_TIMEOUT); status = wmi_unified_pdev_set_dual_mac_config_cmd( wma_handle->wmi_handle, (struct wmi_dual_mac_config *)msg); if (QDF_IS_STATUS_ERROR(status)) { WMA_LOGE("%s: Failed to send WMI_PDEV_SET_DUAL_MAC_CONFIG_CMDID: %d", __func__, status); + wma_release_wmi_resp_wakelock(wma_handle); return status; } wma_handle->dual_mac_cfg.req_scan_config = msg->scan_config; |
