diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index 73643f655351..33b8a516853b 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -25,6 +25,7 @@ #include #include +#include #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 diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c index 421173d0fca7..a2524af156f3 100644 --- a/core/wma/src/wma_main.c +++ b/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); } /**