mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 08:36:12 -04:00
qcacld-3.0: Add ini to disable abg rate for tx data
qcacld-2.0 to qcacld-3.0 propagation Add ini config option to disable abg rate for tx data. Change-Id: Ideb1fd6471c6fbdade99b4c7c533cb1bf3bf206c CRs-Fixed: 1111787
This commit is contained in:
parent
417824fc25
commit
a9ef87198d
6 changed files with 72 additions and 16 deletions
|
|
@ -4985,6 +4985,27 @@ typedef enum {
|
|||
#define CFG_MAX_HT_MCS_FOR_TX_DATA_MAX (WNI_CFG_MAX_HT_MCS_TX_DATA_STAMAX)
|
||||
#define CFG_MAX_HT_MCS_FOR_TX_DATA_DEFAULT (WNI_CFG_MAX_HT_MCS_TX_DATA_STADEF)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gDisableABGRateForTxData - disable abg rate for tx data
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to disable abg rate for tx data.
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_DISABLE_ABG_RATE_FOR_TX_DATA "gDisableABGRateForTxData"
|
||||
#define CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MIN \
|
||||
(WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STAMIN)
|
||||
#define CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MAX \
|
||||
(WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STAMAX)
|
||||
#define CFG_DISABLE_ABG_RATE_FOR_TX_DATA_DEFAULT \
|
||||
(WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STADEF)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTDLSTxPacketThreshold - Tx/Rx Packet threshold for initiating TDLS.
|
||||
|
|
@ -9143,6 +9164,7 @@ struct hdd_config {
|
|||
bool gEnableOverLapCh;
|
||||
bool fRegChangeDefCountry;
|
||||
uint16_t max_ht_mcs_txdata;
|
||||
bool disable_abg_rate_txdata;
|
||||
#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
|
||||
uint32_t TxFlowLowWaterMark;
|
||||
uint32_t TxFlowHighWaterMarkOffset;
|
||||
|
|
|
|||
|
|
@ -2132,6 +2132,13 @@ REG_TABLE_ENTRY g_registry_table[] = {
|
|||
CFG_MAX_HT_MCS_FOR_TX_DATA_MIN,
|
||||
CFG_MAX_HT_MCS_FOR_TX_DATA_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_DISABLE_ABG_RATE_FOR_TX_DATA, WLAN_PARAM_Integer,
|
||||
struct hdd_config, disable_abg_rate_txdata,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_DISABLE_ABG_RATE_FOR_TX_DATA_DEFAULT,
|
||||
CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MIN,
|
||||
CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, enableFirstScan2GOnly,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
|
|
@ -6691,6 +6698,14 @@ bool hdd_update_config_cfg(hdd_context_t *hdd_ctx)
|
|||
status = false;
|
||||
hdd_err("Couldn't pass on WNI_CFG_MAX_HT_MCS_TX_DATA to CCM");
|
||||
}
|
||||
|
||||
if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
|
||||
config->disable_abg_rate_txdata) ==
|
||||
QDF_STATUS_E_FAILURE) {
|
||||
status = false;
|
||||
hdd_err("Couldn't pass on WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA to CCM");
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
#ifdef FEATURE_WLAN_SCAN_PNO
|
||||
|
|
|
|||
|
|
@ -252,6 +252,7 @@ enum {
|
|||
WNI_CFG_OBSS_HT40_SCAN_ACTIVITY_THRESHOLD,
|
||||
WNI_CFG_TGT_GTX_USR_CFG,
|
||||
WNI_CFG_MAX_HT_MCS_TX_DATA,
|
||||
WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
|
||||
/* Any new items to be added should be above this strictly */
|
||||
CFG_PARAM_MAX_NUM
|
||||
};
|
||||
|
|
@ -1265,6 +1266,10 @@ enum {
|
|||
#define WNI_CFG_MAX_HT_MCS_TX_DATA_STAMAX 0x17f
|
||||
#define WNI_CFG_MAX_HT_MCS_TX_DATA_STADEF 0x0
|
||||
|
||||
#define WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STAMIN 0
|
||||
#define WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STAMAX 1
|
||||
#define WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STADEF 0
|
||||
|
||||
#define CFG_STA_MAGIC_DWORD 0xbeefbeef
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -324,4 +324,5 @@ unsigned char *g_cfg_param_name[] = {
|
|||
(unsigned char *)"OBSS_HT40_SCAN_ACTIVITY_THRESHOLD",
|
||||
(unsigned char *)"TGT_GTX_USR_CFG",
|
||||
(unsigned char *)"MAX_HT_MCS_TX_DATA",
|
||||
(unsigned char *)"DISABLE_ABG_RATE_TX_DATA",
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1183,7 +1183,12 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
|
|||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
|
||||
WNI_CFG_MAX_HT_MCS_TX_DATA_STAMIN,
|
||||
WNI_CFG_MAX_HT_MCS_TX_DATA_STAMAX,
|
||||
WNI_CFG_MAX_HT_MCS_TX_DATA_STADEF}
|
||||
WNI_CFG_MAX_HT_MCS_TX_DATA_STADEF},
|
||||
{WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
|
||||
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
|
||||
WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STAMIN,
|
||||
WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STAMAX,
|
||||
WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STADEF}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -887,6 +887,7 @@ QDF_STATUS wma_send_peer_assoc(tp_wma_handle wma,
|
|||
uint32_t num_peer_11a_rates = 0;
|
||||
uint32_t phymode;
|
||||
uint32_t peer_nss = 1;
|
||||
uint32_t disable_abg_rate;
|
||||
struct wma_txrx_node *intr = NULL;
|
||||
QDF_STATUS status;
|
||||
|
||||
|
|
@ -917,21 +918,28 @@ QDF_STATUS wma_send_peer_assoc(tp_wma_handle wma,
|
|||
params->ch_width,
|
||||
params->vhtCapable);
|
||||
|
||||
/* Legacy Rateset */
|
||||
rate_pos = (uint8_t *) peer_legacy_rates.rates;
|
||||
for (i = 0; i < SIR_NUM_11B_RATES; i++) {
|
||||
if (!params->supportedRates.llbRates[i])
|
||||
continue;
|
||||
rate_pos[peer_legacy_rates.num_rates++] =
|
||||
params->supportedRates.llbRates[i];
|
||||
num_peer_11b_rates++;
|
||||
}
|
||||
for (i = 0; i < SIR_NUM_11A_RATES; i++) {
|
||||
if (!params->supportedRates.llaRates[i])
|
||||
continue;
|
||||
rate_pos[peer_legacy_rates.num_rates++] =
|
||||
params->supportedRates.llaRates[i];
|
||||
num_peer_11a_rates++;
|
||||
if (wlan_cfg_get_int(wma->mac_context,
|
||||
WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
|
||||
&disable_abg_rate) != eSIR_SUCCESS)
|
||||
disable_abg_rate = WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA_STADEF;
|
||||
|
||||
if (!disable_abg_rate) {
|
||||
/* Legacy Rateset */
|
||||
rate_pos = (uint8_t *) peer_legacy_rates.rates;
|
||||
for (i = 0; i < SIR_NUM_11B_RATES; i++) {
|
||||
if (!params->supportedRates.llbRates[i])
|
||||
continue;
|
||||
rate_pos[peer_legacy_rates.num_rates++] =
|
||||
params->supportedRates.llbRates[i];
|
||||
num_peer_11b_rates++;
|
||||
}
|
||||
for (i = 0; i < SIR_NUM_11A_RATES; i++) {
|
||||
if (!params->supportedRates.llaRates[i])
|
||||
continue;
|
||||
rate_pos[peer_legacy_rates.num_rates++] =
|
||||
params->supportedRates.llaRates[i];
|
||||
num_peer_11a_rates++;
|
||||
}
|
||||
}
|
||||
|
||||
if ((phymode == MODE_11A && num_peer_11a_rates == 0) ||
|
||||
|
|
|
|||
Loading…
Reference in a new issue