Browse Source

qcacld-3.0: Fill nss chain params from legacy structure

Fill the cmn nss chains structure from the mlme
nss chain params structure and send to fw

Change-Id: I573b0df20be31af536107f0585e7fa825dc2b6b3
CRs-Fixed: 2349823
gaurank kathpalia 6 years ago
parent
commit
2fc3b89d0b
2 changed files with 34 additions and 14 deletions
  1. 1 12
      components/mlme/dispatcher/inc/wlan_mlme_public_struct.h
  2. 33 2
      core/wma/src/wma_main.c

+ 1 - 12
components/mlme/dispatcher/inc/wlan_mlme_public_struct.h

@@ -25,6 +25,7 @@
 
 #include <wlan_cmn.h>
 #include <reg_services_public_struct.h>
+#include <wmi_unified_param.h>
 
 #define CFG_PMKID_MODES_OKC                        (0x1)
 #define CFG_PMKID_MODES_PMKSA_CACHING              (0x2)
@@ -1025,18 +1026,6 @@ enum dot11p_mode {
 	CFG_11P_CONCURRENT,
 };
 
-/**
- * enum nss_chains_band_info - Band info for dynamic nss, chains change feature
- * @NSS_CHAINS_BAND_2GHZ: 2.4Ghz band
- * @NSS_CHAINS_BAND_5GHZ: 5Ghz band
- * @NSS_CHAINS_BAND_MAX: Max bands supported
- */
-enum nss_chains_band_info {
-	NSS_CHAINS_BAND_2GHZ = 0,
-	NSS_CHAINS_BAND_5GHZ,
-	NSS_CHAINS_BAND_MAX,
-};
-
 #define MAX_VDEV_NSS                2
 #define MAX_VDEV_CHAINS             2
 

+ 33 - 2
core/wma/src/wma_main.c

@@ -1706,15 +1706,46 @@ wma_vdev_nss_chain_params_send(uint8_t vdev_id,
 			       struct wlan_mlme_nss_chains *user_cfg)
 {
 	tp_wma_handle wma_handle = cds_get_context(QDF_MODULE_ID_WMA);
-
+	struct vdev_nss_chains vdev_user_cfg;
 	if (!wma_handle) {
 		WMA_LOGE("%s: wma_handle is NULL", __func__);
 		return QDF_STATUS_E_FAILURE;
 	}
 
+	vdev_user_cfg.disable_rx_mrc[NSS_CHAINS_BAND_2GHZ] =
+				user_cfg->disable_rx_mrc[NSS_CHAINS_BAND_2GHZ];
+	vdev_user_cfg.disable_tx_mrc[NSS_CHAINS_BAND_2GHZ] =
+				user_cfg->disable_tx_mrc[NSS_CHAINS_BAND_2GHZ];
+	vdev_user_cfg.disable_rx_mrc[NSS_CHAINS_BAND_5GHZ] =
+				user_cfg->disable_rx_mrc[NSS_CHAINS_BAND_5GHZ];
+	vdev_user_cfg.disable_tx_mrc[NSS_CHAINS_BAND_5GHZ] =
+				user_cfg->disable_tx_mrc[NSS_CHAINS_BAND_5GHZ];
+
+	vdev_user_cfg.num_rx_chains[NSS_CHAINS_BAND_2GHZ]
+				= user_cfg->num_rx_chains[NSS_CHAINS_BAND_2GHZ];
+	vdev_user_cfg.num_tx_chains[NSS_CHAINS_BAND_2GHZ]
+				= user_cfg->num_tx_chains[NSS_CHAINS_BAND_2GHZ];
+	vdev_user_cfg.num_rx_chains[NSS_CHAINS_BAND_5GHZ] =
+				user_cfg->num_rx_chains[NSS_CHAINS_BAND_5GHZ];
+	vdev_user_cfg.num_tx_chains[NSS_CHAINS_BAND_5GHZ] =
+				user_cfg->num_tx_chains[NSS_CHAINS_BAND_5GHZ];
+
+	vdev_user_cfg.rx_nss[NSS_CHAINS_BAND_2GHZ] =
+				user_cfg->rx_nss[NSS_CHAINS_BAND_2GHZ];
+	vdev_user_cfg.tx_nss[NSS_CHAINS_BAND_2GHZ] =
+				user_cfg->tx_nss[NSS_CHAINS_BAND_2GHZ];
+	vdev_user_cfg.rx_nss[NSS_CHAINS_BAND_5GHZ] =
+				user_cfg->rx_nss[NSS_CHAINS_BAND_5GHZ];
+	vdev_user_cfg.tx_nss[NSS_CHAINS_BAND_5GHZ] =
+				user_cfg->tx_nss[NSS_CHAINS_BAND_5GHZ];
+
+	vdev_user_cfg.num_tx_chains_11a = user_cfg->num_tx_chains_11a;
+	vdev_user_cfg.num_tx_chains_11b = user_cfg->num_tx_chains_11b;
+	vdev_user_cfg.num_tx_chains_11g = user_cfg->num_tx_chains_11g;
+
 	return wmi_unified_vdev_nss_chain_params_send(wma_handle->wmi_handle,
 						      vdev_id,
-						      user_cfg);
+						      &vdev_user_cfg);
 }
 
 /**