mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 16:46:15 -04:00
qcacld-3.0: Add configuration support for VHT20 MCS9
Add user configuration to enable/disable the MCS9 in VHT20 operation. Change-Id: I1bf1156dbeb51a7850ef5a5b66295ecc0d007542 CRs-Fixed: 2217038
This commit is contained in:
parent
9788fcd47d
commit
0e255175b6
8 changed files with 81 additions and 0 deletions
|
|
@ -5089,6 +5089,27 @@ enum hdd_link_speed_rpt_type {
|
|||
#define CFG_VHT_ENABLE_TX_MCS2x2_8_9_MAX (2)
|
||||
#define CFG_VHT_ENABLE_TX_MCS2x2_8_9_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* enable_vht20_mcs9 - Enables VHT MCS9 in 20M BW operation
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 1
|
||||
*
|
||||
* Related: NA
|
||||
*
|
||||
* Supported Feature: 11AC
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
|
||||
#define CFG_ENABLE_VHT20_MCS9 "enable_vht20_mcs9"
|
||||
#define CFG_ENABLE_VHT20_MCS9_MIN (0)
|
||||
#define CFG_ENABLE_VHT20_MCS9_MAX (1)
|
||||
#define CFG_ENABLE_VHT20_MCS9_DEFAULT (1)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gEnable2x2 - Enables/disables VHT Tx/Rx MCS values for 2x2
|
||||
|
|
@ -14678,6 +14699,7 @@ struct hdd_config {
|
|||
bool enableTxBF;
|
||||
bool enable_subfee_vendor_vhtie;
|
||||
bool enable_txbf_sap_mode;
|
||||
bool enable_vht20_mcs9;
|
||||
uint8_t txBFCsnValue;
|
||||
bool enable_su_tx_bformer;
|
||||
uint8_t vhtRxMCS2x2;
|
||||
|
|
|
|||
|
|
@ -2128,6 +2128,13 @@ struct reg_table_entry g_registry_table[] = {
|
|||
CFG_VHT_ENABLE_TX_MCS2x2_8_9_MIN,
|
||||
CFG_VHT_ENABLE_TX_MCS2x2_8_9_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_ENABLE_VHT20_MCS9, WLAN_PARAM_Integer,
|
||||
struct hdd_config, enable_vht20_mcs9,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
|
||||
CFG_ENABLE_VHT20_MCS9_DEFAULT,
|
||||
CFG_ENABLE_VHT20_MCS9_MIN,
|
||||
CFG_ENABLE_VHT20_MCS9_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_VHT_ENABLE_2x2_CAP_FEATURE, WLAN_PARAM_Integer,
|
||||
struct hdd_config, enable2x2,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
|
|
@ -9067,6 +9074,7 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
|
|||
smeConfig->csrConfig.enable_rx_ldpc = pConfig->enable_rx_ldpc;
|
||||
smeConfig->csrConfig.disable_high_ht_mcs_2x2 =
|
||||
pConfig->disable_high_ht_mcs_2x2;
|
||||
smeConfig->csrConfig.enable_vht20_mcs9 = pConfig->enable_vht20_mcs9;
|
||||
#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
|
||||
smeConfig->csrConfig.cc_switch_mode = pConfig->WlanMccToSccSwitchMode;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -54,6 +54,14 @@
|
|||
#define IS_5G_CH(__chNum) ((__chNum >= 36) && (__chNum <= 165))
|
||||
#define IS_2X2_CHAIN(__chain) ((__chain & 0x3) == 0x3)
|
||||
#define DISABLE_NSS2_MCS 0xC
|
||||
#define VHT_1x1_MCS9_MAP 0x2
|
||||
#define VHT_2x2_MCS9_MAP 0xA
|
||||
#define VHT_1x1_MCS8_VAL 0xFFFD
|
||||
#define VHT_2x2_MCS8_VAL 0xFFF5
|
||||
#define VHT_1x1_MCS_MASK 0x3
|
||||
#define VHT_2x2_MCS_MASK 0xF
|
||||
#define DISABLE_VHT_MCS_9(mcs, nss) \
|
||||
(mcs = (nss > 1) ? VHT_2x2_MCS8_VAL : VHT_1x1_MCS8_VAL)
|
||||
|
||||
#define NSS_1x1_MODE 1
|
||||
#define NSS_2x2_MODE 2
|
||||
|
|
|
|||
|
|
@ -1397,6 +1397,25 @@ tSirRetStatus lim_populate_vht_mcs_set(tpAniSirGlobal mac_ctx,
|
|||
VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
||||
rates->vhtRxHighestDataRate =
|
||||
VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
||||
if (!session_entry->ch_width &&
|
||||
!mac_ctx->roam.configParam.enable_vht20_mcs9 &&
|
||||
((rates->vhtRxMCSMap & VHT_1x1_MCS_MASK) ==
|
||||
VHT_1x1_MCS9_MAP)) {
|
||||
DISABLE_VHT_MCS_9(rates->vhtRxMCSMap,
|
||||
NSS_1x1_MODE);
|
||||
DISABLE_VHT_MCS_9(rates->vhtTxMCSMap,
|
||||
NSS_1x1_MODE);
|
||||
}
|
||||
} else {
|
||||
if (!session_entry->ch_width &&
|
||||
!mac_ctx->roam.configParam.enable_vht20_mcs9 &&
|
||||
((rates->vhtRxMCSMap & VHT_2x2_MCS_MASK) ==
|
||||
VHT_2x2_MCS9_MAP)) {
|
||||
DISABLE_VHT_MCS_9(rates->vhtRxMCSMap,
|
||||
NSS_2x2_MODE);
|
||||
DISABLE_VHT_MCS_9(rates->vhtTxMCSMap,
|
||||
NSS_2x2_MODE);
|
||||
}
|
||||
}
|
||||
|
||||
if ((peer_vht_caps == NULL) || (!peer_vht_caps->present))
|
||||
|
|
|
|||
|
|
@ -1071,6 +1071,25 @@ populate_dot11f_vht_caps(tpAniSirGlobal pMac,
|
|||
VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
||||
pDot11f->rxHighSupDataRate =
|
||||
VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
|
||||
if (!psessionEntry->ch_width &&
|
||||
!pMac->roam.configParam.enable_vht20_mcs9 &&
|
||||
((pDot11f->txMCSMap & VHT_1x1_MCS_MASK) ==
|
||||
VHT_1x1_MCS9_MAP)) {
|
||||
DISABLE_VHT_MCS_9(pDot11f->txMCSMap,
|
||||
NSS_1x1_MODE);
|
||||
DISABLE_VHT_MCS_9(pDot11f->rxMCSMap,
|
||||
NSS_1x1_MODE);
|
||||
}
|
||||
} else {
|
||||
if (!psessionEntry->ch_width &&
|
||||
!pMac->roam.configParam.enable_vht20_mcs9 &&
|
||||
((pDot11f->txMCSMap & VHT_2x2_MCS_MASK) ==
|
||||
VHT_2x2_MCS9_MAP)) {
|
||||
DISABLE_VHT_MCS_9(pDot11f->txMCSMap,
|
||||
NSS_2x2_MODE);
|
||||
DISABLE_VHT_MCS_9(pDot11f->rxMCSMap,
|
||||
NSS_2x2_MODE);
|
||||
}
|
||||
}
|
||||
}
|
||||
lim_log_vht_cap(pMac, pDot11f);
|
||||
|
|
|
|||
|
|
@ -1222,6 +1222,7 @@ typedef struct tagCsrConfigParam {
|
|||
uint8_t enable_tx_ldpc;
|
||||
uint8_t enable_rx_ldpc;
|
||||
uint8_t disable_high_ht_mcs_2x2;
|
||||
bool enable_vht20_mcs9;
|
||||
uint8_t max_amsdu_num;
|
||||
uint8_t nSelect5GHzMargin;
|
||||
uint8_t isCoalesingInIBSSAllowed;
|
||||
|
|
|
|||
|
|
@ -528,6 +528,7 @@ struct csr_config {
|
|||
uint32_t nVhtChannelWidth;
|
||||
bool enable_subfee_vendor_vhtie;
|
||||
uint8_t enable_txbf_sap_mode;
|
||||
bool enable_vht20_mcs9;
|
||||
uint8_t enable2x2;
|
||||
bool enableVhtFor24GHz;
|
||||
uint8_t enableVhtpAid;
|
||||
|
|
|
|||
|
|
@ -2928,6 +2928,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
|
|||
pParam->enable_subfee_vendor_vhtie;
|
||||
pMac->roam.configParam.enable_txbf_sap_mode =
|
||||
pParam->enable_txbf_sap_mode;
|
||||
pMac->roam.configParam.enable_vht20_mcs9 =
|
||||
pParam->enable_vht20_mcs9;
|
||||
pMac->roam.configParam.enable2x2 = pParam->enable2x2;
|
||||
pMac->roam.configParam.enableVhtFor24GHz =
|
||||
pParam->enableVhtFor24GHz;
|
||||
|
|
@ -3250,6 +3252,7 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
|
|||
cfg_params->enable_subfee_vendor_vhtie;
|
||||
pParam->enable_txbf_sap_mode =
|
||||
cfg_params->enable_txbf_sap_mode;
|
||||
pParam->enable_vht20_mcs9 = cfg_params->enable_vht20_mcs9;
|
||||
pParam->enableVhtFor24GHz = cfg_params->enableVhtFor24GHz;
|
||||
pParam->ignore_peer_erp_info = cfg_params->ignore_peer_erp_info;
|
||||
pParam->enable2x2 = cfg_params->enable2x2;
|
||||
|
|
|
|||
Loading…
Reference in a new issue