diff --git a/core/cds/src/cds_api.c b/core/cds/src/cds_api.c index 7e4977d88c6d..482c0ec6af9c 100644 --- a/core/cds/src/cds_api.c +++ b/core/cds/src/cds_api.c @@ -556,6 +556,7 @@ QDF_STATUS cds_open(struct wlan_objmgr_psoc *psoc) ucfg_pmo_psoc_target_suspend_acknowledge; htcInfo.target_initial_wakeup_cb = ucfg_pmo_psoc_handle_initial_wake_up; htcInfo.target_psoc = (void *)psoc; + htcInfo.cfg_wmi_credit_cnt = hdd_ctx->config->cfg_wmi_credit_cnt; qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE); /* Create HTC */ diff --git a/core/hdd/inc/hdd_dp_cfg.h b/core/hdd/inc/hdd_dp_cfg.h index fa6e416a31b5..6c1480835f1a 100644 --- a/core/hdd/inc/hdd_dp_cfg.h +++ b/core/hdd/inc/hdd_dp_cfg.h @@ -915,6 +915,32 @@ #define CFG_DP_ENABLE_NUD_TRACKING_ALL #endif +/* + * + * gWmiCreditCount - Credit count for WMI exchange + * @0: Not allowed + * @1: Serialize WMI commands, 1 command at a time + * @Default: 2: As advertized by FW + * + * This ini is used to serialize the WMI commandsif required. + * + * Related: None + * + * Usage: External + * + * + */ +#define WLAN_CFG_WMI_CREDIT_DEFAULT 0 +#define WLAN_CFG_WMI_CREDIT_MIN 1 +#define WLAN_CFG_WMI_CREDIT_MAX 2 + +#define CFG_DP_HTC_WMI_CREDIT_CNT \ + CFG_INI_UINT("gWmiCreditCount", \ + WLAN_CFG_WMI_CREDIT_MIN, \ + WLAN_CFG_WMI_CREDIT_MAX, \ + WLAN_CFG_WMI_CREDIT_DEFAULT, \ + CFG_VALUE_OR_DEFAULT, "WMI HTC CREDIT COUNT") + #ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL #define CFG_HDD_DP_LEGACY_TX_FLOW \ CFG(CFG_DP_LL_TX_FLOW_LWM) \ @@ -959,6 +985,7 @@ CFG(CFG_DP_FILTER_MULTICAST_REPLAY) \ CFG(CFG_DP_RX_WAKELOCK_TIMEOUT) \ CFG(CFG_DP_NUM_DP_RX_THREADS) \ + CFG(CFG_DP_HTC_WMI_CREDIT_CNT) \ CFG_DP_ENABLE_FASTPATH_ALL \ CFG_HDD_DP_MSM_PLATFORM \ CFG_HDD_DP_LEGACY_TX_FLOW \ diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index 6882aab3fca6..4a25554fe07d 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -205,6 +205,7 @@ struct hdd_config { uint32_t provisioned_intf_pool; uint32_t derived_intf_pool; uint8_t enable_rtt_support; + uint32_t cfg_wmi_credit_cnt; }; #define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var)) diff --git a/core/hdd/src/wlan_hdd_tx_rx.c b/core/hdd/src/wlan_hdd_tx_rx.c index 0cd6130f1ae2..315fe1abbea0 100644 --- a/core/hdd/src/wlan_hdd_tx_rx.c +++ b/core/hdd/src/wlan_hdd_tx_rx.c @@ -2986,6 +2986,7 @@ void hdd_dp_cfg_update(struct wlan_objmgr_psoc *psoc, config->rx_wakelock_timeout = cfg_get(psoc, CFG_DP_RX_WAKELOCK_TIMEOUT); config->num_dp_rx_threads = cfg_get(psoc, CFG_DP_NUM_DP_RX_THREADS); + config->cfg_wmi_credit_cnt = cfg_get(psoc, CFG_DP_HTC_WMI_CREDIT_CNT); hdd_dp_dp_trace_cfg_update(config, psoc); hdd_dp_nud_tracking_cfg_update(config, psoc); }