qcacld-3.0: Add ini to control for Secondary Retry Feature

Add ini "gEnableSecondaryRate" to Enable/Disable control
for Secondary Retry Feature Set.

It is a 32 bit value such that the various bits represents
different values.

Change-Id: I1348465932f32ee19cd3efb2347ca8d2f59e0904
CRs-Fixed: 2219933
This commit is contained in:
Ashish Kumar Dhanotiya 2018-04-06 21:07:57 +05:30 • committed by nshrivas
commit 959b38c51a
3 changed files with 48 additions and 0 deletions

View file

@ -14194,6 +14194,31 @@ enum hdd_external_acs_policy {
#define CFG_ENABLE_RTT_MAC_RANDOMIZATION_MAX (1)
#define CFG_ENABLE_RTT_MAC_RANDOMIZATION_DEFAULT (0)
/*
* <ini>
* gEnableSecondaryRate - Enable/Disable Secondary Retry Rate feature subset
*
* @Min: 0x0
* @Max: 0x3F
* @Default: 0x18
*
* It is a 32 bit value such that the various bits represent as below -
* Bit-0 : is Enable/Disable Control for "PPDU Secondary Retry Support"
* Bit-1 : is Enable/Disable Control for "RTS Black/White-listing Support"
* Bit-2 : is Enable/Disable Control for "Higher MCS retry restriction
* on XRETRY failures"
* Bit 3-5 : is "Xretry threshold" to use
* Bit 3~31 : reserved for future use.
*
* Usage: External
*
* </ini>
*/
#define CFG_ENABLE_SECONDARY_RATE_NAME "gEnableSecondaryRate"
#define CFG_ENABLE_SECONDARY_RATE_MIN (0)
#define CFG_ENABLE_SECONDARY_RATE_MAX (0x3F)
#define CFG_ENABLE_SECONDARY_RATE_DEFAULT (0x18)
/*
* Type declarations
*/
@ -15075,6 +15100,7 @@ struct hdd_config {
uint32_t channel_select_logic_conc;
bool enable_bt_chain_separation;
uint8_t enable_tx_sch_delay;
uint32_t enable_secondary_rate;
HDD_GREEN_AP_CFG_FIELDS
bool is_unit_test_framework_enabled;
bool enable_ftopen;

View file

@ -5416,6 +5416,14 @@ struct reg_table_entry g_registry_table[] = {
CFG_ENABLE_RTT_MAC_RANDOMIZATION_DEFAULT,
CFG_ENABLE_RTT_MAC_RANDOMIZATION_MIN,
CFG_ENABLE_RTT_MAC_RANDOMIZATION_MAX),
REG_VARIABLE(CFG_ENABLE_SECONDARY_RATE_NAME,
WLAN_PARAM_HexInteger,
struct hdd_config, enable_secondary_rate,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_ENABLE_SECONDARY_RATE_DEFAULT,
CFG_ENABLE_SECONDARY_RATE_MIN,
CFG_ENABLE_SECONDARY_RATE_MAX),
};
@ -7301,6 +7309,10 @@ void hdd_cfg_print(struct hdd_context *hdd_ctx)
hdd_debug("Name = [%s] Value = [%u]",
CFG_ROAM_FT_OPEN_ENABLE_NAME,
hdd_ctx->config->enable_ftopen);
hdd_debug("Name = [%s] value = [0x%x]",
CFG_ENABLE_SECONDARY_RATE_NAME,
hdd_ctx->config->enable_secondary_rate);
}

View file

@ -4420,6 +4420,16 @@ int hdd_set_fw_params(struct hdd_adapter *adapter)
goto error;
}
ret = sme_cli_set_command(
adapter->session_id,
WMI_PDEV_PARAM_SECONDARY_RETRY_ENABLE,
hdd_ctx->config->enable_secondary_rate,
PDEV_CMD);
if (ret) {
hdd_err("Failed to set WMI_PDEV_PARAM_SECONDARY_RETRY_ENABLE");
goto error;
}
if (adapter->device_mode == QDF_STA_MODE) {
sme_set_smps_cfg(adapter->session_id,
HDD_STA_SMPS_PARAM_UPPER_BRSSI_THRESH,