qcacld-3.0: ADD MLME CFG items of Chainmask configs
Add the following chainmask INI configs to MLME cfg: 1. CFG_VHT_ENABLE_1x1_TX_CHAINMASK, 2. CFG_VHT_ENABLE_1x1_RX_CHAINMASK, 3. CFG_TX_CHAIN_MASK_CCK, 4. CFG_TX_CHAIN_MASK_1SS, 5. CFG_11B_NUM_TX_CHAIN_NAME, 6. CFG_11AG_NUM_TX_CHAIN_NAME, 7. CFG_TX_CHAIN_MASK_2G_NAME, 8. CFG_RX_CHAIN_MASK_2G_NAME, 9. CFG_TX_CHAIN_MASK_5G_NAME, 10. CFG_RX_CHAIN_MASK_5G_NAME Introduce the basic infra APIs related to these configs from mlme Change-Id: I56b56fe9ba5282b459bc03587c2cacbf91b12af3 CRs-Fixed: 2310381
This commit is contained in:

committed by
nshrivas

parent
1e5dcd6774
commit
ce0a9d02ce
@@ -80,6 +80,40 @@ out:
|
||||
return status;
|
||||
}
|
||||
|
||||
static void mlme_init_chainmask_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_mlme_chainmask *chainmask_info)
|
||||
{
|
||||
chainmask_info->txchainmask1x1 =
|
||||
cfg_get(psoc, CFG_VHT_ENABLE_1x1_TX_CHAINMASK);
|
||||
|
||||
chainmask_info->rxchainmask1x1 =
|
||||
cfg_get(psoc, CFG_VHT_ENABLE_1x1_RX_CHAINMASK);
|
||||
|
||||
chainmask_info->tx_chain_mask_cck =
|
||||
cfg_get(psoc, CFG_TX_CHAIN_MASK_CCK);
|
||||
|
||||
chainmask_info->tx_chain_mask_1ss =
|
||||
cfg_get(psoc, CFG_TX_CHAIN_MASK_1SS);
|
||||
|
||||
chainmask_info->num_11b_tx_chains =
|
||||
cfg_get(psoc, CFG_11B_NUM_TX_CHAIN);
|
||||
|
||||
chainmask_info->num_11ag_tx_chains =
|
||||
cfg_get(psoc, CFG_11AG_NUM_TX_CHAIN);
|
||||
|
||||
chainmask_info->tx_chain_mask_2g =
|
||||
cfg_get(psoc, CFG_TX_CHAIN_MASK_2G);
|
||||
|
||||
chainmask_info->rx_chain_mask_2g =
|
||||
cfg_get(psoc, CFG_RX_CHAIN_MASK_2G);
|
||||
|
||||
chainmask_info->tx_chain_mask_5g =
|
||||
cfg_get(psoc, CFG_TX_CHAIN_MASK_5G);
|
||||
|
||||
chainmask_info->rx_chain_mask_5g =
|
||||
cfg_get(psoc, CFG_RX_CHAIN_MASK_5G);
|
||||
}
|
||||
|
||||
static void mlme_update_ht_cap_in_cfg(struct wlan_objmgr_psoc *psoc,
|
||||
struct mlme_ht_capabilities_info
|
||||
*ht_cap_info)
|
||||
@@ -145,6 +179,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
|
||||
mlme_update_ht_cap_in_cfg(psoc, &mlme_cfg->ht_caps.ht_cap_info);
|
||||
mlme_update_rates_in_cfg(psoc, &mlme_cfg->rates);
|
||||
mlme_update_sap_protection_cfg(psoc, &mlme_cfg->sap_protection_cfg);
|
||||
mlme_init_chainmask_cfg(psoc, &mlme_cfg->chainmask_cfg);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
@@ -23,16 +23,17 @@
|
||||
#include "cfg_converged.h"
|
||||
#include "qdf_types.h"
|
||||
|
||||
#include "cfg_mlme_chainmask.h"
|
||||
#include "cfg_mlme_ht_caps.h"
|
||||
#include "cfg_mlme_vht_caps.h"
|
||||
#include "cfg_mlme_rates.h"
|
||||
#include "cfg_sap_protection.h"
|
||||
|
||||
#define CFG_MLME_ALL \
|
||||
CFG_CHAINMASK_ALL \
|
||||
CFG_HT_CAPS_ALL \
|
||||
CFG_VHT_CAPS_ALL \
|
||||
CFG_RATES_ALL \
|
||||
CFG_SAP_PROTECTION_ALL
|
||||
|
||||
#endif /* __CFG_MLME_H */
|
||||
|
||||
|
333
components/mlme/dispatcher/inc/cfg_mlme_chainmask.h
Normal file
333
components/mlme/dispatcher/inc/cfg_mlme_chainmask.h
Normal file
@@ -0,0 +1,333 @@
|
||||
/*
|
||||
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
* above copyright notice and this permission notice appear in all
|
||||
* copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
||||
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* DOC: This file contains centralized definitions of converged configuration.
|
||||
*/
|
||||
|
||||
#ifndef __CFG_CHAINMASK_H
|
||||
#define __CFG_CHAINMASK_H
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gSetTxChainmask1x1 - Sets Transmit chain mask.
|
||||
* @Min: 1
|
||||
* @Max: 3
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini Sets Transmit chain mask.
|
||||
*
|
||||
* If gEnable2x2 is disabled, gSetTxChainmask1x1 and gSetRxChainmask1x1 values
|
||||
* are taken into account. If chainmask value exceeds the maximum number of
|
||||
* chains supported by target, the max number of chains is used. By default,
|
||||
* chain0 is selected for both Tx and Rx.
|
||||
* gSetTxChainmask1x1=1 or gSetRxChainmask1x1=1 to select chain0.
|
||||
* gSetTxChainmask1x1=2 or gSetRxChainmask1x1=2 to select chain1.
|
||||
* gSetTxChainmask1x1=3 or gSetRxChainmask1x1=3 to select both chains.
|
||||
*
|
||||
* Supported Feature: 11AC
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_VHT_ENABLE_1x1_TX_CHAINMASK CFG_INI_UINT( \
|
||||
"gSetTxChainmask1x1", \
|
||||
0, \
|
||||
3, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"1x1 VHT Tx Chainmask")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gSetRxChainmask1x1 - Sets Receive chain mask.
|
||||
* @Min: 1
|
||||
* @Max: 3
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to set Receive chain mask.
|
||||
*
|
||||
* If gEnable2x2 is disabled, gSetTxChainmask1x1 and gSetRxChainmask1x1 values
|
||||
* are taken into account. If chainmask value exceeds the maximum number of
|
||||
* chains supported by target, the max number of chains is used. By default,
|
||||
* chain0 is selected for both Tx and Rx.
|
||||
* gSetTxChainmask1x1=1 or gSetRxChainmask1x1=1 to select chain0.
|
||||
* gSetTxChainmask1x1=2 or gSetRxChainmask1x1=2 to select chain1.
|
||||
* gSetTxChainmask1x1=3 or gSetRxChainmask1x1=3 to select both chains.
|
||||
*
|
||||
* Supported Feature: 11AC
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_VHT_ENABLE_1x1_RX_CHAINMASK CFG_INI_UINT( \
|
||||
"gSetRxChainmask1x1", \
|
||||
0, \
|
||||
3, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"1x1 VHT Rx Chainmask")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gCckChainMaskEnable - Used to enable/disable Cck ChainMask
|
||||
* @Min: 0
|
||||
* @Max: 1
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to set default Cck ChainMask
|
||||
* 0: disable the cck tx chain mask (default)
|
||||
* 1: enable the cck tx chain mask
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: STA
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TX_CHAIN_MASK_CCK CFG_INI_BOOL( \
|
||||
"gCckChainMaskEnable", \
|
||||
0, \
|
||||
"Set default CCK Tx Chainmask")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gTxChainMask1ss - Enables/disables tx chain Mask1ss
|
||||
* @Min: 0
|
||||
* @Max: 3
|
||||
* @Default: 1
|
||||
*
|
||||
* This ini is used to set default tx chain Mask1ss
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: STA
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TX_CHAIN_MASK_1SS CFG_INI_UINT( \
|
||||
"gTxChainMask1ss", \
|
||||
0, \
|
||||
3, \
|
||||
1, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"1SS Tx Chainmask")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* g11bNumTxChains - Number of Tx Chanins in 11b mode
|
||||
* @Min: 0
|
||||
* @Max: 2
|
||||
* @Default: 0
|
||||
*
|
||||
* Number of Tx Chanins in 11b mode
|
||||
*
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: connection
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_11B_NUM_TX_CHAIN CFG_INI_UINT( \
|
||||
"g11bNumTxChains", \
|
||||
0, \
|
||||
2, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"11b Num Tx chains")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* g11agNumTxChains - Number of Tx Chanins in 11ag mode
|
||||
* @Min: 0
|
||||
* @Max: 2
|
||||
* @Default: 0
|
||||
*
|
||||
* Number of Tx Chanins in 11ag mode
|
||||
*
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: connection
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_11AG_NUM_TX_CHAIN CFG_INI_UINT( \
|
||||
"g11agNumTxChains", \
|
||||
0, \
|
||||
2, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"11ag Num Tx chains")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* tx_chain_mask_2g - tx chain mask for 2g
|
||||
* @Min: 0
|
||||
* @Max: 3
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini will set tx chain mask for 2g. To use the ini, make sure:
|
||||
* gSetTxChainmask1x1/gSetRxChainmask1x1 = 0,
|
||||
* gDualMacFeatureDisable = 1
|
||||
* gEnable2x2 = 0
|
||||
*
|
||||
* tx_chain_mask_2g=0 : don't care
|
||||
* tx_chain_mask_2g=1 : for 2g tx use chain 0
|
||||
* tx_chain_mask_2g=2 : for 2g tx use chain 1
|
||||
* tx_chain_mask_2g=3 : for 2g tx can use either chain
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: All profiles
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TX_CHAIN_MASK_2G CFG_INI_UINT( \
|
||||
"tx_chain_mask_2g", \
|
||||
0, \
|
||||
3, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"2.4G Tx Chainmask")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* rx_chain_mask_2g - rx chain mask for 2g
|
||||
* @Min: 0
|
||||
* @Max: 3
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini will set rx chain mask for 2g. To use the ini, make sure:
|
||||
* gSetTxChainmask1x1/gSetRxChainmask1x1 = 0,
|
||||
* gDualMacFeatureDisable = 1
|
||||
* gEnable2x2 = 0
|
||||
*
|
||||
* rx_chain_mask_2g=0 : don't care
|
||||
* rx_chain_mask_2g=1 : for 2g rx use chain 0
|
||||
* rx_chain_mask_2g=2 : for 2g rx use chain 1
|
||||
* rx_chain_mask_2g=3 : for 2g rx can use either chain
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: All profiles
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_RX_CHAIN_MASK_2G CFG_INI_UINT( \
|
||||
"rx_chain_mask_2g", \
|
||||
0, \
|
||||
3, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"2.4G Rx Chainmask")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* tx_chain_mask_5g - tx chain mask for 5g
|
||||
* @Min: 0
|
||||
* @Max: 3
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini will set tx chain mask for 5g. To use the ini, make sure:
|
||||
* gSetTxChainmask1x1/gSetRxChainmask1x1 = 0,
|
||||
* gDualMacFeatureDisable = 1
|
||||
* gEnable2x2 = 0
|
||||
*
|
||||
* tx_chain_mask_5g=0 : don't care
|
||||
* tx_chain_mask_5g=1 : for 5g tx use chain 0
|
||||
* tx_chain_mask_5g=2 : for 5g tx use chain 1
|
||||
* tx_chain_mask_5g=3 : for 5g tx can use either chain
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: All profiles
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_TX_CHAIN_MASK_5G CFG_INI_UINT( \
|
||||
"tx_chain_mask_5g", \
|
||||
0, \
|
||||
3, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"5Ghz Tx Chainmask")
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* rx_chain_mask_5g - rx chain mask for 5g
|
||||
* @Min: 0
|
||||
* @Max: 3
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini will set rx chain mask for 5g. To use the ini, make sure:
|
||||
* gSetTxChainmask1x1/gSetRxChainmask1x1 = 0,
|
||||
* gDualMacFeatureDisable = 1
|
||||
* gEnable2x2 = 0
|
||||
*
|
||||
* rx_chain_mask_5g=0 : don't care
|
||||
* rx_chain_mask_5g=1 : for 5g rx use chain 0
|
||||
* rx_chain_mask_5g=2 : for 5g rx use chain 1
|
||||
* rx_chain_mask_5g=3 : for 5g rx can use either chain
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: All profiles
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_RX_CHAIN_MASK_5G CFG_INI_UINT( \
|
||||
"rx_chain_mask_5g", \
|
||||
0, \
|
||||
3, \
|
||||
0, \
|
||||
CFG_VALUE_OR_DEFAULT, \
|
||||
"5Ghz Tx Chainmask")
|
||||
|
||||
#define CFG_CHAINMASK_ALL \
|
||||
CFG(CFG_VHT_ENABLE_1x1_TX_CHAINMASK) \
|
||||
CFG(CFG_VHT_ENABLE_1x1_RX_CHAINMASK) \
|
||||
CFG(CFG_TX_CHAIN_MASK_CCK) \
|
||||
CFG(CFG_TX_CHAIN_MASK_1SS) \
|
||||
CFG(CFG_11B_NUM_TX_CHAIN) \
|
||||
CFG(CFG_11AG_NUM_TX_CHAIN) \
|
||||
CFG(CFG_TX_CHAIN_MASK_2G) \
|
||||
CFG(CFG_RX_CHAIN_MASK_2G) \
|
||||
CFG(CFG_TX_CHAIN_MASK_5G) \
|
||||
CFG(CFG_RX_CHAIN_MASK_5G)
|
||||
|
||||
#endif /* __CFG_CHAINMASK_H */
|
@@ -123,6 +123,33 @@ struct wlan_mlme_sap_protection {
|
||||
bool ignore_peer_ht_mode;
|
||||
};
|
||||
|
||||
/*
|
||||
* struct wlan_mlme_chainmask - All chainmask related cfg items
|
||||
*
|
||||
* @txchainmask1x1 - to set transmit chainmask
|
||||
* @rxchainmask1x1 - to set rx chainmask
|
||||
* @tx_chain_mask_cck - Used to enable/disable Cck ChainMask
|
||||
* @tx_chain_mask_1ss - Enables/disables tx chain Mask1ss
|
||||
* @num_11b_tx_chains - Number of Tx Chains in 11b mode
|
||||
* @num_11ag_tx_chains - Number of Tx Chains in 11ag mode
|
||||
* @tx_chain_mask_2g - tx chain mask for 2g
|
||||
* @rx_chain_mask_2g - rx chain mask for 2g
|
||||
* @tx_chain_mask_5g - tx chain mask for 5g
|
||||
* @rx_chain_mask_5g - rx chain mask for 5g
|
||||
*/
|
||||
struct wlan_mlme_chainmask {
|
||||
uint8_t txchainmask1x1;
|
||||
uint8_t rxchainmask1x1;
|
||||
bool tx_chain_mask_cck;
|
||||
uint8_t tx_chain_mask_1ss;
|
||||
uint16_t num_11b_tx_chains;
|
||||
uint16_t num_11ag_tx_chains;
|
||||
uint8_t tx_chain_mask_2g;
|
||||
uint8_t rx_chain_mask_2g;
|
||||
uint8_t tx_chain_mask_5g;
|
||||
uint8_t rx_chain_mask_5g;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct wlan_mlme_cfg - MLME config items
|
||||
* @ht_cfg: HT related CFG Items
|
||||
@@ -135,6 +162,7 @@ struct wlan_mlme_cfg {
|
||||
struct wlan_mlme_vht_caps vht_caps;
|
||||
struct wlan_mlme_rates rates;
|
||||
struct wlan_mlme_sap_protection sap_protection_cfg;
|
||||
struct wlan_mlme_chainmask chainmask_cfg;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user