qcacld-3.0: Keep wake lock while mac config is getting changed

Host should keep the wake lock from the time it sends
WMI_PDEV_SET_MAC_CONFIG_CMDID to FW till it receives the
WMI_PDEV_SET_MAC_CONFIG_RESP_EVENTID. This will avoid any fatal
crash condition.

Change-Id: Id16a1957b38acee6cf45c123ea9dbab25aae9b39
CRs-Fixed: 2070779
This commit is contained in:
Krunal Soni 2017-07-03 12:59:40 -07:00 • committed by snandini
commit a5ccb8007f
2 changed files with 9 additions and 1 deletions

View file

@ -291,6 +291,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)

View file

@ -3252,7 +3252,7 @@ static int wma_pdev_set_dual_mode_config_resp_evt_handler(void *handle,
*/
return QDF_STATUS_E_NULL_VALUE;
}
wma_release_wakelock(&wma->wmi_cmd_rsp_wake_lock);
dual_mac_cfg_resp = qdf_mem_malloc(sizeof(*dual_mac_cfg_resp));
if (!dual_mac_cfg_resp) {
WMA_LOGE("%s: Memory allocation failed", __func__);
@ -7902,12 +7902,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_wakelock(&wma_handle->wmi_cmd_rsp_wake_lock,
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_wakelock(&wma_handle->wmi_cmd_rsp_wake_lock);
return status;
}
policy_mgr_update_dbs_req_config(wma_handle->psoc,