qcacld-3.0: Add ini parameter for chain selection optimization
Add ini support to Enable/Disable chain selection optimization for one chain dtim. Change-Id: I95999a4204f2d978abc9951688332400b9670f0e CRs-Fixed: 2189150
This commit is contained in:

committed by
snandini

parent
659acb30da
commit
191d164636
@@ -14341,6 +14341,24 @@ enum hdd_external_acs_freq_band {
|
|||||||
#define CFG_WMI_WQ_WATCHDOG_MIN (0)
|
#define CFG_WMI_WQ_WATCHDOG_MIN (0)
|
||||||
#define CFG_WMI_WQ_WATCHDOG_MAX (30) /* 30s */
|
#define CFG_WMI_WQ_WATCHDOG_MAX (30) /* 30s */
|
||||||
#define CFG_WMI_WQ_WATCHDOG_DEFAULT (20) /* 20s */
|
#define CFG_WMI_WQ_WATCHDOG_DEFAULT (20) /* 20s */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* <ini>
|
||||||
|
* gEnableDTIMSelectionDiversity - Enable/Disable chain
|
||||||
|
* selection optimization for one chain dtim
|
||||||
|
* @Min: 0
|
||||||
|
* @Max: 30
|
||||||
|
* @Default: 5
|
||||||
|
*
|
||||||
|
* Usage: External
|
||||||
|
*
|
||||||
|
* </ini>
|
||||||
|
*/
|
||||||
|
#define CFG_DTIM_SELECTION_DIVERSITY_NAME "gEnableDTIMSelectionDiversity"
|
||||||
|
#define CFG_DTIM_SELECTION_DIVERSITY_MIN (0)
|
||||||
|
#define CFG_DTIM_SELECTION_DIVERSITY_MAX (30)
|
||||||
|
#define CFG_DTIM_SELECTION_DIVERSITY_DEFAULT (5)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Type declarations
|
* Type declarations
|
||||||
*/
|
*/
|
||||||
@@ -15251,6 +15269,7 @@ struct hdd_config {
|
|||||||
uint32_t neighbor_report_offload_cache_timeout;
|
uint32_t neighbor_report_offload_cache_timeout;
|
||||||
uint32_t neighbor_report_offload_max_req_cap;
|
uint32_t neighbor_report_offload_max_req_cap;
|
||||||
uint16_t wmi_wq_watchdog_timeout;
|
uint16_t wmi_wq_watchdog_timeout;
|
||||||
|
bool enable_dtim_selection_diversity;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var))
|
#define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var))
|
||||||
|
@@ -5526,6 +5526,14 @@ struct reg_table_entry g_registry_table[] = {
|
|||||||
CFG_WMI_WQ_WATCHDOG_DEFAULT,
|
CFG_WMI_WQ_WATCHDOG_DEFAULT,
|
||||||
CFG_WMI_WQ_WATCHDOG_MIN,
|
CFG_WMI_WQ_WATCHDOG_MIN,
|
||||||
CFG_WMI_WQ_WATCHDOG_MAX),
|
CFG_WMI_WQ_WATCHDOG_MAX),
|
||||||
|
|
||||||
|
REG_VARIABLE(CFG_DTIM_SELECTION_DIVERSITY_NAME,
|
||||||
|
WLAN_PARAM_Integer,
|
||||||
|
struct hdd_config, enable_dtim_selection_diversity,
|
||||||
|
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||||
|
CFG_DTIM_SELECTION_DIVERSITY_DEFAULT,
|
||||||
|
CFG_DTIM_SELECTION_DIVERSITY_MIN,
|
||||||
|
CFG_DTIM_SELECTION_DIVERSITY_MAX),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -7416,6 +7424,9 @@ void hdd_cfg_print(struct hdd_context *hdd_ctx)
|
|||||||
hdd_debug("Name = [%s] value = [%d]",
|
hdd_debug("Name = [%s] value = [%d]",
|
||||||
CFG_ENABLE_GCMP_NAME,
|
CFG_ENABLE_GCMP_NAME,
|
||||||
hdd_ctx->config->gcmp_enabled);
|
hdd_ctx->config->gcmp_enabled);
|
||||||
|
hdd_debug("Name = [%s] value = [%d]",
|
||||||
|
CFG_DTIM_SELECTION_DIVERSITY_NAME,
|
||||||
|
hdd_ctx->config->enable_dtim_selection_diversity);
|
||||||
|
|
||||||
hdd_cfg_print_11k_offload_params(hdd_ctx);
|
hdd_cfg_print_11k_offload_params(hdd_ctx);
|
||||||
}
|
}
|
||||||
|
@@ -4256,6 +4256,17 @@ int hdd_set_fw_params(struct hdd_adapter *adapter)
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ret = sme_cli_set_command(
|
||||||
|
adapter->session_id,
|
||||||
|
WMI_PDEV_PARAM_1CH_DTIM_OPTIMIZED_CHAIN_SELECTION,
|
||||||
|
hdd_ctx->config->enable_dtim_selection_diversity,
|
||||||
|
PDEV_CMD);
|
||||||
|
if (ret) {
|
||||||
|
hdd_err("Failed to set DTIM_OPTIMIZED_CHAIN_SELECTION");
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
if (adapter->device_mode == QDF_STA_MODE) {
|
if (adapter->device_mode == QDF_STA_MODE) {
|
||||||
sme_set_smps_cfg(adapter->session_id,
|
sme_set_smps_cfg(adapter->session_id,
|
||||||
HDD_STA_SMPS_PARAM_UPPER_BRSSI_THRESH,
|
HDD_STA_SMPS_PARAM_UPPER_BRSSI_THRESH,
|
||||||
|
Reference in New Issue
Block a user