From 6c9d1c3e70b66d955f7db8f7481b9cb2c57d2a20 Mon Sep 17 00:00:00 2001 From: gaurank kathpalia Date: Mon, 8 Oct 2018 15:11:59 +0530 Subject: [PATCH] qcacld-3.0: Populate ini params in mlme_cfg Populate the ini params from ini file and store them in mlme_cfg structure. Change-Id: I3eb8e60e26deeb24228d9b8a24bb957478344492 CRs-Fixed: 2347505 --- components/mlme/core/src/wlan_mlme_main.c | 28 +++++++++++++ components/mlme/dispatcher/inc/cfg_mlme.h | 2 + .../dispatcher/inc/wlan_mlme_public_struct.h | 41 +++++++++++++++++++ 3 files changed, 71 insertions(+) diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index 7418cc57f76a6..9207af274c9fa 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -1259,6 +1259,33 @@ static void mlme_init_oce_cfg(struct wlan_objmgr_psoc *psoc, oce->feature_bitmap = val; } +static void mlme_init_nss_chains(struct wlan_objmgr_psoc *psoc, + struct wlan_mlme_nss_chains *nss_chains) +{ + nss_chains->num_rx_chains[BAND_2GHZ] = cfg_get(psoc, + CFG_NUM_RX_CHAINS_2G); + nss_chains->num_rx_chains[BAND_5GHZ] = cfg_get(psoc, + CFG_NUM_RX_CHAINS_5G); + nss_chains->num_tx_chains[BAND_2GHZ] = cfg_get(psoc, + CFG_NUM_TX_CHAINS_2G); + nss_chains->num_tx_chains[BAND_5GHZ] = cfg_get(psoc, + CFG_NUM_TX_CHAINS_5G); + nss_chains->tx_nss[BAND_2GHZ] = cfg_get(psoc, CFG_TX_NSS_2G); + nss_chains->tx_nss[BAND_5GHZ] = cfg_get(psoc, CFG_TX_NSS_5G); + nss_chains->rx_nss[BAND_2GHZ] = cfg_get(psoc, CFG_RX_NSS_2G); + nss_chains->rx_nss[BAND_5GHZ] = cfg_get(psoc, CFG_RX_NSS_5G); + nss_chains->num_tx_chains_11b = cfg_get(psoc, CFG_NUM_TX_CHAINS_11b); + nss_chains->num_tx_chains_11g = cfg_get(psoc, CFG_NUM_TX_CHAINS_11g); + nss_chains->num_tx_chains_11a = cfg_get(psoc, CFG_NUM_TX_CHAINS_11a); + nss_chains->disable_rx_mrc[BAND_2GHZ] = cfg_get(psoc, + CFG_DISABLE_RX_MRC_2G); + nss_chains->disable_rx_mrc[BAND_5GHZ] = cfg_get(psoc, + CFG_DISABLE_RX_MRC_5G); + nss_chains->disable_tx_mrc[BAND_2GHZ] = cfg_get(psoc, + CFG_DISABLE_TX_MRC_2G); + nss_chains->disable_tx_mrc[BAND_5GHZ] = cfg_get(psoc, + CFG_DISABLE_TX_MRC_5G); +} static void mlme_init_wep_keys(struct wlan_mlme_wep_cfg *wep_params) { /* initialize the default key values to zero */ @@ -1413,6 +1440,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc) mlme_init_chainmask_cfg(psoc, &mlme_cfg->chainmask_cfg); mlme_init_sap_cfg(psoc, &mlme_cfg->sap_cfg); mlme_init_he_cap_in_cfg(psoc, &mlme_cfg->he_caps); + mlme_init_nss_chains(psoc, &mlme_cfg->nss_chains_ini_cfg); mlme_init_obss_ht40_cfg(psoc, &mlme_cfg->obss_ht40); mlme_init_product_details_cfg(&mlme_cfg->product_details); mlme_init_sta_cfg(psoc, &mlme_cfg->sta); diff --git a/components/mlme/dispatcher/inc/cfg_mlme.h b/components/mlme/dispatcher/inc/cfg_mlme.h index e8becb91c7a64..299d7702c6303 100644 --- a/components/mlme/dispatcher/inc/cfg_mlme.h +++ b/components/mlme/dispatcher/inc/cfg_mlme.h @@ -33,6 +33,7 @@ #include "cfg_mlme_obss_ht40.h" #include "cfg_mlme_dfs.h" #include "cfg_mlme_mbo.h" +#include "cfg_mlme_nss_chains.h" #include "cfg_mlme_vht_caps.h" #include "cfg_qos.h" #include "cfg_mlme_timeout.h" @@ -61,6 +62,7 @@ CFG_LFR_ALL \ CFG_MBO_ALL \ CFG_MLME_PRODUCT_DETAILS_ALL \ + CFG_NSS_CHAINS_ALL \ CFG_OBSS_HT40_ALL \ CFG_OCE_ALL \ CFG_QOS_ALL \ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index 7a93b8c46347a..1f9e951bba409 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -1025,6 +1025,45 @@ enum dot11p_mode { CFG_11P_CONCURRENT, }; +/** + * enum nss_chains_band_info - Band info for dynamic nss, chains change feature + * @BAND_2GHZ: 2.4Ghz band + * @BAND_5GHZ: 5Ghz band + * @BAND_MAX: Max bands supported + */ +enum nss_chains_band_info { + BAND_2GHZ = 0, + BAND_5GHZ, + BAND_MAX, +}; + +#define MAX_VDEV_NSS 2 +#define MAX_VDEV_CHAINS 2 + +/** + * struct wlan_mlme_nss_chains - MLME vdev config of nss, and chains + * @num_tx_chains: tx chains of vdev config + * @num_rx_chains: rx chains of vdev config + * @tx_nss: tx nss of vdev config + * @rx_nss: rx nss of vdev config + * @num_tx_chains_11b: number of tx chains in 11b mode + * @num_tx_chains_11g: number of tx chains in 11g mode + * @num_tx_chains_11a: number of tx chains in 11a mode + * @disable_rx_mrc: disable 2 rx chains, in rx nss 1 mode + * @disable_tx_mrc: disable 2 tx chains, in tx nss 1 mode + */ +struct wlan_mlme_nss_chains { + uint32_t num_tx_chains[BAND_MAX]; + uint32_t num_rx_chains[BAND_MAX]; + uint32_t tx_nss[BAND_MAX]; + uint32_t rx_nss[BAND_MAX]; + uint32_t num_tx_chains_11b; + uint32_t num_tx_chains_11g; + uint32_t num_tx_chains_11a; + bool disable_rx_mrc[BAND_MAX]; + bool disable_tx_mrc[BAND_MAX]; +}; + /** * struct wlan_mlme_sta_cfg - MLME STA configuration items * @sta_keep_alive_period: Sends NULL frame to AP period @@ -1498,6 +1537,7 @@ struct wlan_mlme_wep_cfg { * @dfs_cfg: DFS related CFG Items * @sap_protection_cfg: SAP erp protection related CFG items * @sap_cfg: sap CFG items + * @nss_chains_ini_cfg: Per vdev nss, chains related CFG items * @sta: sta CFG Items * @scoring: BSS Scoring related CFG Items * @oce: OCE related CFG items @@ -1525,6 +1565,7 @@ struct wlan_mlme_cfg { struct wlan_mlme_dfs_cfg dfs_cfg; struct wlan_mlme_sap_protection sap_protection_cfg; struct wlan_mlme_cfg_sap sap_cfg; + struct wlan_mlme_nss_chains nss_chains_ini_cfg; struct wlan_mlme_sta_cfg sta; struct wlan_mlme_scoring_cfg scoring; struct wlan_mlme_oce oce;