From d1f21c7b0da287fe080e599dddefc988765df7c7 Mon Sep 17 00:00:00 2001 From: Abhishek Singh Date: Mon, 21 Jan 2019 15:16:34 +0530 Subject: [PATCH] qcacld-3.0: Refactor firmware, serialization and HDD CMD timeouts Refactor firmware, serialization and command timeouts so that HDD timeout are greater than serialization is greater than firmware timeout. The timeouts are defined considering below worst case delay in firmware. WMI_VDEV_START_REQUEST_CMDID 6 sec WMI_VDEV_RESTART_REQUEST_CMDID 6 sec WMI_VDEV_STOP_CMDID 2 sec WMI_PEER_DELETE_CMDID 2 sec WMI_PEER_ASSOC_CMDID 2 sec WMI_PDEV_SET_HW_MODE_CMDID 2 sec WMI_PDEV_SET_MAC_CONFIG_CMDID 2 sec Change-Id: I270e980ed1cf2aee55a1fa4e88ff8ddc845a203b CRs-Fixed: 2384389 --- components/nan/core/inc/nan_public_structs.h | 4 +- components/nan/core/src/nan_main.c | 2 +- .../dispatcher/inc/wlan_tdls_public_structs.h | 4 +- core/hdd/inc/wlan_hdd_main.h | 12 ---- core/hdd/src/wlan_hdd_cfg80211.c | 10 +-- core/hdd/src/wlan_hdd_hostapd.c | 4 +- core/hdd/src/wlan_hdd_hostapd_wext.c | 2 +- core/hdd/src/wlan_hdd_ioctl.c | 2 +- core/hdd/src/wlan_hdd_main.c | 12 ++-- core/hdd/src/wlan_hdd_regulatory.c | 2 +- core/mac/inc/sir_api.h | 8 +++ core/sme/inc/sme_api.h | 26 ++++++-- core/sme/inc/sme_inside.h | 2 - core/sme/src/csr/csr_api_roam.c | 62 +++++++++++++++---- core/wma/inc/wma.h | 17 ++--- core/wma/src/wma_main.c | 2 +- 16 files changed, 112 insertions(+), 59 deletions(-) diff --git a/components/nan/core/inc/nan_public_structs.h b/components/nan/core/inc/nan_public_structs.h index 06e26ad0a1..16b12f248b 100644 --- a/components/nan/core/inc/nan_public_structs.h +++ b/components/nan/core/inc/nan_public_structs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -44,6 +44,8 @@ struct wlan_objmgr_vdev; #define NAN_PSEUDO_VDEV_ID CFG_TGT_NUM_VDEV +#define NAN_SER_CMD_TIMEOUT 4000 + /** * enum nan_discovery_msg_type - NAN msg type * @NAN_GENERIC_REQ: Type for all the NAN requests other than enable/disable diff --git a/components/nan/core/src/nan_main.c b/components/nan/core/src/nan_main.c index 04159f53af..5ba0eeaf6a 100644 --- a/components/nan/core/src/nan_main.c +++ b/components/nan/core/src/nan_main.c @@ -278,7 +278,7 @@ QDF_STATUS nan_scheduled_msg_handler(struct scheduler_msg *msg) cmd.umac_cmd = msg->bodyptr; cmd.source = WLAN_UMAC_COMP_NAN; cmd.is_high_priority = false; - cmd.cmd_timeout_duration = 30000 /* 30 sec for now. TBD */; + cmd.cmd_timeout_duration = NAN_SER_CMD_TIMEOUT; nan_debug("cmd_type: %d", cmd.cmd_type); cmd.is_blocking = true; diff --git a/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h b/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h index deae17e81c..502193b1fa 100644 --- a/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h +++ b/components/tdls/dispatcher/inc/wlan_tdls_public_structs.h @@ -51,8 +51,8 @@ struct wlan_objmgr_psoc; #define AC_PRIORITY_NUM 4 -/* default tdls serialize timeout is set to 10 secs */ -#define TDLS_DEFAULT_SERIALIZE_CMD_TIMEOUT 10000 +/* default tdls serialize timeout is set to 4 secs */ +#define TDLS_DEFAULT_SERIALIZE_CMD_TIMEOUT 4000 /** Maximum time(ms) to wait for tdls add sta to complete **/ #define WAIT_TIME_TDLS_ADD_STA (TDLS_DEFAULT_SERIALIZE_CMD_TIMEOUT + 1000) diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h index 8191ee9357..bc54e7570d 100644 --- a/core/hdd/inc/wlan_hdd_main.h +++ b/core/hdd/inc/wlan_hdd_main.h @@ -208,15 +208,6 @@ enum hdd_driver_flags { ACS_IN_PROGRESS, }; -/** Maximum time(ms)to wait for disconnect to complete **/ -/* This value should be larger than the timeout used by WMA to wait for - * stop vdev response from FW - */ -#ifdef QCA_WIFI_3_0_EMU -#define WLAN_WAIT_TIME_DISCONNECT 7000 -#else -#define WLAN_WAIT_TIME_DISCONNECT 7000 -#endif #define WLAN_WAIT_DISCONNECT_ALREADY_IN_PROGRESS 1000 #define WLAN_WAIT_TIME_STOP_ROAM 4000 #define WLAN_WAIT_TIME_STATS 800 @@ -231,9 +222,6 @@ enum hdd_driver_flags { /* Scan Req Timeout */ #define WLAN_WAIT_TIME_SCAN_REQ 100 -#define WLAN_WAIT_TIME_ANTENNA_MODE_REQ 3000 -#define WLAN_WAIT_TIME_SET_DUAL_MAC_CFG 1500 - #define WLAN_WAIT_TIME_APF 1000 #define WLAN_WAIT_TIME_FW_ROAM_STATS 1000 diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c index 4ed3877783..08a0c247e6 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -17354,7 +17354,7 @@ int wlan_hdd_try_disconnect(struct hdd_adapter *adapter) struct hdd_station_ctx *sta_ctx; int status, result = 0; mac_handle_t mac_handle; - uint32_t wait_time = WLAN_WAIT_TIME_DISCONNECT; + uint32_t wait_time = SME_DISCONNECT_TIMEOUT; struct hdd_context *hdd_ctx; hdd_ctx = WLAN_HDD_GET_CTX(adapter); @@ -17771,7 +17771,7 @@ int wlan_hdd_disconnect(struct hdd_adapter *adapter, u16 reason) struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); eConnectionState prev_conn_state; mac_handle_t mac_handle; - uint32_t wait_time = WLAN_WAIT_TIME_DISCONNECT; + uint32_t wait_time = SME_DISCONNECT_TIMEOUT; hdd_enter(); @@ -18496,7 +18496,7 @@ static int __wlan_hdd_cfg80211_leave_ibss(struct wiphy *wiphy, * all set to proceed further */ rc = wait_for_completion_timeout(&adapter->disconnect_comp_var, - msecs_to_jiffies(WLAN_WAIT_TIME_DISCONNECT)); + msecs_to_jiffies(SME_DISCONNECT_TIMEOUT)); if (!rc) { hdd_err("Failed to disconnect, timed out"); return -ETIMEDOUT; @@ -18793,7 +18793,7 @@ int __wlan_hdd_cfg80211_del_station(struct wiphy *wiphy, qdf_wait_for_event_completion( &hapd_state-> qdf_sta_disassoc_event, - SME_CMD_TIMEOUT_VALUE); + SME_PEER_DISCONNECT_TIMEOUT); if (!QDF_IS_STATUS_SUCCESS( qdf_status)) hdd_warn("Deauth wait time expired"); @@ -18853,7 +18853,7 @@ int __wlan_hdd_cfg80211_del_station(struct wiphy *wiphy, qdf_status = qdf_wait_for_event_completion( &hapd_state-> qdf_sta_disassoc_event, - SME_CMD_TIMEOUT_VALUE); + SME_PEER_DISCONNECT_TIMEOUT); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) hdd_warn("Deauth wait time expired"); diff --git a/core/hdd/src/wlan_hdd_hostapd.c b/core/hdd/src/wlan_hdd_hostapd.c index 67a86d3a99..610737d12a 100644 --- a/core/hdd/src/wlan_hdd_hostapd.c +++ b/core/hdd/src/wlan_hdd_hostapd.c @@ -5437,7 +5437,7 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter, hdd_debug("Waiting for Scan to complete(auto mode) and BSS to start"); qdf_status = qdf_wait_for_event_completion(&hostapd_state->qdf_event, - SME_CMD_START_STOP_BSS_TIMEOUT); + SME_CMD_START_BSS_TIMEOUT); wlansap_reset_sap_config_add_ie(pConfig, eUPDATE_IE_ALL); @@ -5623,7 +5623,7 @@ static int __wlan_hdd_cfg80211_stop_ap(struct wiphy *wiphy, qdf_status = qdf_wait_for_event_completion(&hostapd_state-> qdf_stop_bss_event, - SME_CMD_START_STOP_BSS_TIMEOUT); + SME_CMD_STOP_BSS_TIMEOUT); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { hdd_err("qdf wait for single_event failed!!"); diff --git a/core/hdd/src/wlan_hdd_hostapd_wext.c b/core/hdd/src/wlan_hdd_hostapd_wext.c index a66d1154f1..4a9d66b8b0 100644 --- a/core/hdd/src/wlan_hdd_hostapd_wext.c +++ b/core/hdd/src/wlan_hdd_hostapd_wext.c @@ -2139,7 +2139,7 @@ __iw_softap_stopbss(struct net_device *dev, status = qdf_wait_for_event_completion(&hostapd_state-> qdf_stop_bss_event, - SME_CMD_START_STOP_BSS_TIMEOUT); + SME_CMD_STOP_BSS_TIMEOUT); if (!QDF_IS_STATUS_SUCCESS(status)) { hdd_err("wait for single_event failed!!"); diff --git a/core/hdd/src/wlan_hdd_ioctl.c b/core/hdd/src/wlan_hdd_ioctl.c index 2c4fcb8e7f..30d0cb2ebf 100644 --- a/core/hdd/src/wlan_hdd_ioctl.c +++ b/core/hdd/src/wlan_hdd_ioctl.c @@ -6615,7 +6615,7 @@ int hdd_set_antenna_mode(struct hdd_adapter *adapter, struct osif_request *request = NULL; static const struct osif_request_params request_params = { .priv_size = 0, - .timeout_ms = WLAN_WAIT_TIME_ANTENNA_MODE_REQ, + .timeout_ms = SME_POLICY_MGR_CMD_TIMEOUT, }; switch (mode) { diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index bde3239541..375012c9c0 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -5463,7 +5463,7 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, rc = wait_for_completion_timeout( &adapter->disconnect_comp_var, msecs_to_jiffies - (WLAN_WAIT_TIME_DISCONNECT)); + (SME_DISCONNECT_TIMEOUT)); if (!rc) hdd_warn("disconn_comp_var wait fail"); } @@ -5583,7 +5583,7 @@ QDF_STATUS hdd_stop_adapter_ext(struct hdd_context *hdd_ctx, qdf_stop_bss_event); status = qdf_wait_for_event_completion( &hostapd_state->qdf_stop_bss_event, - SME_CMD_START_STOP_BSS_TIMEOUT); + SME_CMD_STOP_BSS_TIMEOUT); if (QDF_IS_STATUS_ERROR(status)) hdd_err("failure waiting for wlansap_stop_bss %d", status); @@ -12756,7 +12756,7 @@ void wlan_hdd_stop_sap(struct hdd_adapter *ap_adapter) sap_context)) { qdf_status = qdf_wait_for_event_completion(&hostapd_state-> qdf_stop_bss_event, - SME_CMD_START_STOP_BSS_TIMEOUT); + SME_CMD_STOP_BSS_TIMEOUT); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { mutex_unlock(&hdd_ctx->sap_lock); hdd_err("SAP Stop Failed"); @@ -12828,7 +12828,7 @@ void wlan_hdd_start_sap(struct hdd_adapter *ap_adapter, bool reinit) hdd_debug("Waiting for SAP to start"); qdf_status = qdf_wait_for_event_completion(&hostapd_state->qdf_event, - SME_CMD_START_STOP_BSS_TIMEOUT); + SME_CMD_START_BSS_TIMEOUT); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { hdd_err("SAP Start failed"); goto end; @@ -14817,7 +14817,7 @@ void hdd_restart_sap(struct hdd_adapter *ap_adapter) qdf_status = qdf_wait_for_event_completion(&hostapd_state-> qdf_stop_bss_event, - SME_CMD_START_STOP_BSS_TIMEOUT); + SME_CMD_STOP_BSS_TIMEOUT); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { hdd_err("SAP Stop Failed"); @@ -14851,7 +14851,7 @@ void hdd_restart_sap(struct hdd_adapter *ap_adapter) hdd_info("Waiting for SAP to start"); qdf_status = qdf_wait_for_event_completion(&hostapd_state->qdf_event, - SME_CMD_START_STOP_BSS_TIMEOUT); + SME_CMD_START_BSS_TIMEOUT); wlansap_reset_sap_config_add_ie(sap_config, eUPDATE_IE_ALL); if (!QDF_IS_STATUS_SUCCESS(qdf_status)) { diff --git a/core/hdd/src/wlan_hdd_regulatory.c b/core/hdd/src/wlan_hdd_regulatory.c index cb03eca622..da3f565ef0 100644 --- a/core/hdd/src/wlan_hdd_regulatory.c +++ b/core/hdd/src/wlan_hdd_regulatory.c @@ -850,7 +850,7 @@ int hdd_reg_set_band(struct net_device *dev, u8 ui_band) lrc = wait_for_completion_timeout( &adapter->disconnect_comp_var, msecs_to_jiffies( - WLAN_WAIT_TIME_DISCONNECT)); + SME_DISCONNECT_TIMEOUT)); if (lrc == 0) { hdd_err("Timeout while waiting for csr_roam_disconnect"); diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h index bd83dc544e..2f3b61aff6 100644 --- a/core/mac/inc/sir_api.h +++ b/core/mac/inc/sir_api.h @@ -89,6 +89,14 @@ typedef uint8_t tSirVersionString[SIR_VERSION_STRING_LEN]; #define MAXNUM_PERIODIC_TX_PTRNS 6 #define WIFI_SCANNING_MAC_OUI_LENGTH 3 + +/* FW response timeout values in milli seconds */ +#define SIR_PEER_ASSOC_TIMEOUT (2000) /* 1 seconds */ +#define SIR_DELETE_STA_TIMEOUT (2000) /* 2 seconds */ +#define SIR_VDEV_START_REQUEST_TIMEOUT (6000) +#define SIR_VDEV_STOP_REQUEST_TIMEOUT (2000) +#define SIR_VDEV_PLCY_MGR_TIMEOUT (2000) + /* This should not be greater than MAX_NUMBER_OF_CONC_CONNECTIONS */ #define MAX_VDEV_SUPPORTED 4 diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h index d3f7041f94..2febb4a1cb 100644 --- a/core/sme/inc/sme_api.h +++ b/core/sme/inc/sme_api.h @@ -104,13 +104,27 @@ #define SME_ACTIVE_LIST_CMD_TIMEOUT_VALUE (30*1000) #define SME_CMD_TIMEOUT_VALUE (SME_ACTIVE_LIST_CMD_TIMEOUT_VALUE + 1000) -/* SME timeout for Start/Stop BSS commands is set to 10 secs */ -#define SME_START_STOP_BSS_CMD_TIMEOUT (10 * 1000) -#define SME_CMD_START_STOP_BSS_TIMEOUT (SME_START_STOP_BSS_CMD_TIMEOUT + 1000) +#define SME_CMD_VDEV_DISCONNECT_TIMEOUT (SIR_VDEV_STOP_REQUEST_TIMEOUT + 4000) +#define SME_DISCONNECT_TIMEOUT (SME_CMD_VDEV_DISCONNECT_TIMEOUT + 1000) -/* SME timeout for vdev delete is set to 10 secs */ -#define SME_VDEV_DELETE_CMD_TIMEOUT (10 * 1000) -#define SME_CMD_VDEV_CREATE_DELETE_TIMEOUT (SME_VDEV_DELETE_CMD_TIMEOUT + 1000) +#define SME_CMD_VDEV_START_BSS_TIMEOUT (SIR_VDEV_START_REQUEST_TIMEOUT + 4000) +#define SME_CMD_START_BSS_TIMEOUT (SME_CMD_VDEV_START_BSS_TIMEOUT + 1000) + +/* SME timeout for Start/Stop BSS commands is set to 6 secs */ +#define SME_START_STOP_BSS_CMD_TIMEOUT (SIR_VDEV_STOP_REQUEST_TIMEOUT + 4000) +#define SME_CMD_STOP_BSS_TIMEOUT (SME_START_STOP_BSS_CMD_TIMEOUT + 4000) + +#define SME_CMD_PEER_DISCONNECT_TIMEOUT (SIR_DELETE_STA_TIMEOUT + 2000) +#define SME_PEER_DISCONNECT_TIMEOUT (SME_START_STOP_BSS_CMD_TIMEOUT + 1000) + +#define SME_CMD_ROAM_CMD_TIMEOUT (SIR_VDEV_START_REQUEST_TIMEOUT + 4000) +#define SME_CMD_ADD_DEL_TS_TIMEOUT (4 * 1000) + +#define SME_CMD_POLICY_MGR_CMD_TIMEOUT (SIR_VDEV_PLCY_MGR_TIMEOUT + 2000) +#define SME_POLICY_MGR_CMD_TIMEOUT (SME_CMD_POLICY_MGR_CMD_TIMEOUT + 1000) + +#define SME_VDEV_DELETE_CMD_TIMEOUT (6 * 1000) +#define SME_CMD_VDEV_CREATE_DELETE_TIMEOUT (SME_VDEV_DELETE_CMD_TIMEOUT + 4000) /*-------------------------------------------------------------------------- Type declarations diff --git a/core/sme/inc/sme_inside.h b/core/sme/inc/sme_inside.h index e812e9c164..9f262da1f9 100644 --- a/core/sme/inc/sme_inside.h +++ b/core/sme/inc/sme_inside.h @@ -51,8 +51,6 @@ ePhyChanBondState csr_convert_cb_ini_value_to_phy_cb_state(uint32_t cbIniValue); * to make sure we have space for these cmds + some additional cmds. */ #define SME_TOTAL_COMMAND (HAL_NUM_STA * 3) -/* default sme timeout is set to 30 secs */ -#define SME_DEFAULT_CMD_TIMEOUT 30000 typedef struct sGenericQosCmd { struct sme_qos_wmmtspecinfo tspecInfo; diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 70326f642a..985146317a 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -19350,6 +19350,56 @@ static uint32_t csr_get_monotonous_number(struct mac_context *mac_ctx) return cmd_id; } +static void csr_fill_cmd_timeout(struct wlan_serialization_command *cmd) +{ + switch (cmd->cmd_type) { + case WLAN_SER_CMD_VDEV_DISCONNECT: + case WLAN_SER_CMD_FORCE_IBSS_LEAVE: + case WLAN_SER_CMD_WM_STATUS_CHANGE: + cmd->cmd_timeout_duration = SME_CMD_VDEV_DISCONNECT_TIMEOUT; + break; + case WLAN_SER_CMD_VDEV_START_BSS: + cmd->cmd_timeout_duration = SME_CMD_VDEV_START_BSS_TIMEOUT; + break; + case WLAN_SER_CMD_VDEV_STOP_BSS: + cmd->cmd_timeout_duration = SME_START_STOP_BSS_CMD_TIMEOUT; + break; + case WLAN_SER_CMD_FORCE_DISASSOC_STA: + case WLAN_SER_CMD_FORCE_DEAUTH_STA: + cmd->cmd_timeout_duration = SME_CMD_PEER_DISCONNECT_TIMEOUT; + break; + case WLAN_SER_CMD_DEL_STA_SESSION: + cmd->cmd_timeout_duration = SME_VDEV_DELETE_CMD_TIMEOUT; + break; + case WLAN_SER_CMD_HDD_ISSUE_REASSOC_SAME_AP: + case WLAN_SER_CMD_SME_ISSUE_REASSOC_SAME_AP: + case WLAN_SER_CMD_SME_ISSUE_DISASSOC_FOR_HANDOFF: + case WLAN_SER_CMD_SME_ISSUE_ASSOC_TO_SIMILAR_AP: + case WLAN_SER_CMD_SME_ISSUE_FT_REASSOC: + case WLAN_SER_CMD_PERFORM_PRE_AUTH: + cmd->cmd_timeout_duration = SME_CMD_ROAM_CMD_TIMEOUT; + break; + case WLAN_SER_CMD_ADDTS: + case WLAN_SER_CMD_DELTS: + cmd->cmd_timeout_duration = SME_CMD_ADD_DEL_TS_TIMEOUT; + break; + case WLAN_SER_CMD_SET_HW_MODE: + case WLAN_SER_CMD_NSS_UPDATE: + case WLAN_SER_CMD_SET_DUAL_MAC_CONFIG: + case WLAN_SER_CMD_SET_ANTENNA_MODE: + cmd->cmd_timeout_duration = SME_CMD_POLICY_MGR_CMD_TIMEOUT; + break; + case WLAN_SER_CMD_VDEV_CONNECT: + /* fallthrough to use def MAX value */ + default: + cmd->cmd_timeout_duration = SME_ACTIVE_LIST_CMD_TIMEOUT_VALUE; + break; + } + + sme_debug("cmd_type %d, timeout %d", cmd->cmd_type, + cmd->cmd_timeout_duration); +} + QDF_STATUS csr_set_serialization_params_to_cmd(struct mac_context *mac_ctx, tSmeCmd *sme_cmd, struct wlan_serialization_command *cmd, uint8_t high_priority) @@ -19388,17 +19438,7 @@ QDF_STATUS csr_set_serialization_params_to_cmd(struct mac_context *mac_ctx, } cmd->umac_cmd = sme_cmd; - /* - * For START BSS and STOP BSS commands for SAP, the command timeout - * is set to 10 seconds. For all other commands its 30 seconds - */ - if ((cmd->vdev->vdev_mlme.vdev_opmode == QDF_SAP_MODE) && - (cmd->cmd_type == WLAN_SER_CMD_VDEV_STOP_BSS)) - cmd->cmd_timeout_duration = SME_START_STOP_BSS_CMD_TIMEOUT; - else if (cmd->cmd_type == WLAN_SER_CMD_DEL_STA_SESSION) - cmd->cmd_timeout_duration = SME_VDEV_DELETE_CMD_TIMEOUT; - else - cmd->cmd_timeout_duration = SME_DEFAULT_CMD_TIMEOUT; + csr_fill_cmd_timeout(cmd); cmd->cmd_cb = sme_ser_cmd_callback; cmd->is_high_priority = high_priority; diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h index 055bf9b597..7db2d1b875 100644 --- a/core/wma/inc/wma.h +++ b/core/wma/inc/wma.h @@ -190,10 +190,10 @@ #define WMA_TARGET_REQ_TYPE_VDEV_DEL 0x3 #define WMA_PEER_ASSOC_CNF_START 0x01 -#define WMA_PEER_ASSOC_TIMEOUT (6000) /* 6 seconds */ +#define WMA_PEER_ASSOC_TIMEOUT SIR_PEER_ASSOC_TIMEOUT #define WMA_DELETE_STA_RSP_START 0x02 -#define WMA_DELETE_STA_TIMEOUT (6000) /* 6 seconds */ +#define WMA_DELETE_STA_TIMEOUT SIR_DELETE_STA_TIMEOUT #define WMA_DEL_P2P_SELF_STA_RSP_START 0x03 #define WMA_SET_LINK_PEER_RSP 0x04 @@ -203,11 +203,14 @@ #define WMA_PDEV_MAC_CFG_RESP 0x07 /* FW response timeout values in milli seconds */ -#define WMA_VDEV_START_REQUEST_TIMEOUT (6000) -#define WMA_VDEV_STOP_REQUEST_TIMEOUT (6000) -#define WMA_VDEV_HW_MODE_REQUEST_TIMEOUT (6000) -#define WMA_VDEV_PLCY_MGR_CMD_TIMEOUT (6000) -#define WMA_VDEV_DUAL_MAC_CFG_TIMEOUT (5000) +#define WMA_VDEV_START_REQUEST_TIMEOUT SIR_VDEV_START_REQUEST_TIMEOUT +#define WMA_VDEV_STOP_REQUEST_TIMEOUT SIR_VDEV_STOP_REQUEST_TIMEOUT +#define WMA_VDEV_PLCY_MGR_TIMEOUT SIR_VDEV_PLCY_MGR_TIMEOUT +#define WMA_VDEV_HW_MODE_REQUEST_TIMEOUT WMA_VDEV_PLCY_MGR_TIMEOUT +#define WMA_VDEV_DUAL_MAC_CFG_TIMEOUT WMA_VDEV_PLCY_MGR_TIMEOUT +#define WMA_VDEV_PLCY_MGR_WAKE_LOCK_TIMEOUT \ + (WMA_VDEV_PLCY_MGR_TIMEOUT + 500) + #define WMA_VDEV_SET_KEY_WAKELOCK_TIMEOUT WAKELOCK_DURATION_RECOMMENDED diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index ea33f5b84a..e487ef9bcf 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -9250,7 +9250,7 @@ QDF_STATUS wma_send_pdev_set_dual_mac_config(tp_wma_handle wma_handle, * 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); + WMA_VDEV_PLCY_MGR_WAKE_LOCK_TIMEOUT); status = wmi_unified_pdev_set_dual_mac_config_cmd( wma_handle->wmi_handle, (struct policy_mgr_dual_mac_config *)msg);