diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c
index b2a0421bc2..35862ec71d 100644
--- a/components/mlme/core/src/wlan_mlme_main.c
+++ b/components/mlme/core/src/wlan_mlme_main.c
@@ -559,13 +559,43 @@ static void mlme_init_rates_in_cfg(struct wlan_objmgr_psoc *psoc,
{
rates->cfp_period = cfg_default(CFG_CFP_PERIOD);
rates->cfp_max_duration = cfg_default(CFG_CFP_MAX_DURATION);
- rates->max_htmcs_txdata = cfg_get(psoc, CFG_INI_MAX_HT_MCS_FOR_TX_DATA);
+ rates->max_htmcs_txdata = cfg_get(psoc, CFG_MAX_HT_MCS_FOR_TX_DATA);
rates->disable_abg_rate_txdata = cfg_get(psoc,
- CFG_INI_DISABLE_ABG_RATE_FOR_TX_DATA);
+ CFG_DISABLE_ABG_RATE_FOR_TX_DATA);
rates->sap_max_mcs_txdata = cfg_get(psoc,
- CFG_INI_SAP_MAX_MCS_FOR_TX_DATA);
+ CFG_SAP_MAX_MCS_FOR_TX_DATA);
rates->disable_high_ht_mcs_2x2 = cfg_get(psoc,
- CFG_INI_DISABLE_HIGH_HT_RX_MCS_2x2);
+ CFG_DISABLE_HIGH_HT_RX_MCS_2x2);
+
+ rates->supported_11b.max_len = CFG_SUPPORTED_RATES_11B_LEN;
+ qdf_uint8_array_parse(cfg_default(CFG_SUPPORTED_RATES_11B),
+ rates->supported_11b.data,
+ sizeof(rates->supported_11b.data),
+ &rates->supported_11b.len);
+ rates->supported_11a.max_len = CFG_SUPPORTED_RATES_11A_LEN;
+ qdf_uint8_array_parse(cfg_default(CFG_SUPPORTED_RATES_11A),
+ rates->supported_11a.data,
+ sizeof(rates->supported_11a.data),
+ &rates->supported_11a.len);
+ rates->opr_rate_set.max_len = CFG_OPERATIONAL_RATE_SET_LEN;
+ rates->opr_rate_set.len = 0;
+ rates->ext_opr_rate_set.max_len = CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN;
+ rates->ext_opr_rate_set.len = 0;
+ rates->supported_mcs_set.max_len = CFG_SUPPORTED_MCS_SET_LEN;
+ qdf_uint8_array_parse(cfg_default(CFG_SUPPORTED_MCS_SET),
+ rates->supported_mcs_set.data,
+ sizeof(rates->supported_mcs_set.data),
+ &rates->supported_mcs_set.len);
+ rates->basic_mcs_set.max_len = CFG_BASIC_MCS_SET_LEN;
+ qdf_uint8_array_parse(cfg_default(CFG_BASIC_MCS_SET),
+ rates->basic_mcs_set.data,
+ sizeof(rates->basic_mcs_set.data),
+ &rates->basic_mcs_set.len);
+ rates->current_mcs_set.max_len = CFG_CURRENT_MCS_SET_LEN;
+ qdf_uint8_array_parse(cfg_default(CFG_CURRENT_MCS_SET),
+ rates->current_mcs_set.data,
+ sizeof(rates->current_mcs_set.data),
+ &rates->current_mcs_set.len);
}
static void mlme_init_dfs_cfg(struct wlan_objmgr_psoc *psoc,
diff --git a/components/mlme/dispatcher/inc/cfg_mlme_rates.h b/components/mlme/dispatcher/inc/cfg_mlme_rates.h
index b3d1b6dd91..73f7ee1461 100644
--- a/components/mlme/dispatcher/inc/cfg_mlme_rates.h
+++ b/components/mlme/dispatcher/inc/cfg_mlme_rates.h
@@ -23,6 +23,14 @@
#ifndef __CFG_MLME_RATES_H
#define __CFG_MLME_RATES_H
+#define CFG_SUPPORTED_RATES_11B_LEN 4
+#define CFG_SUPPORTED_RATES_11A_LEN 8
+#define CFG_OPERATIONAL_RATE_SET_LEN 12
+#define CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN 8
+#define CFG_SUPPORTED_MCS_SET_LEN 16
+#define CFG_BASIC_MCS_SET_LEN 16
+#define CFG_CURRENT_MCS_SET_LEN 16
+
/*
*
* gMaxHTMCSForTxData - max HT mcs for TX
@@ -40,7 +48,7 @@
*
*
*/
-#define CFG_INI_MAX_HT_MCS_FOR_TX_DATA CFG_INI_UINT( \
+#define CFG_MAX_HT_MCS_FOR_TX_DATA CFG_INI_UINT( \
"gMaxHTMCSForTxData", \
0, \
0x17f, \
@@ -61,7 +69,7 @@
*
*
*/
-#define CFG_INI_DISABLE_ABG_RATE_FOR_TX_DATA CFG_INI_BOOL( \
+#define CFG_DISABLE_ABG_RATE_FOR_TX_DATA CFG_INI_BOOL( \
"gDisableABGRateForTxData", \
0, \
"Disable ABG RATE for TX Data")
@@ -78,7 +86,7 @@
*
*
*/
-#define CFG_INI_SAP_MAX_MCS_FOR_TX_DATA CFG_INI_UINT( \
+#define CFG_SAP_MAX_MCS_FOR_TX_DATA CFG_INI_UINT( \
"gSapMaxMCSForTxData", \
0, \
383, \
@@ -111,7 +119,7 @@
*
* Usage: External
*/
-#define CFG_INI_DISABLE_HIGH_HT_RX_MCS_2x2 CFG_INI_UINT( \
+#define CFG_DISABLE_HIGH_HT_RX_MCS_2x2 CFG_INI_UINT( \
"disable_high_ht_mcs_2x2", \
0, \
8, \
@@ -134,13 +142,95 @@
30000, \
CFG_VALUE_OR_DEFAULT, \
"CFP Max Duration")
+/*
+ *
+ * supported_rates_11b - supported rates for 11b
+ * @Min: 0 minimum length of supported rates
+ * @Max: default data length of supported rates in string format
+ * @Default: 2, 4, 11, 22
+ */
+#define CFG_SUPPORTED_RATES_11B_DATA "2, 4, 11, 22"
+#define CFG_SUPPORTED_RATES_11B CFG_STRING( \
+ "supported_rates_11b", \
+ 0, \
+ sizeof(CFG_SUPPORTED_RATES_11B_DATA) - 1, \
+ CFG_SUPPORTED_RATES_11B_DATA, \
+ "Supported rates for 11B")
+
+/*
+ *
+ * supported_rates_11a - supported rates for 11a
+ * @Min: 0 minimum length of supported rates
+ * @Max: default data length of supported rates in string format
+ * @Default: 12, 18, 24, 36, 48, 72, 96, 108
+ */
+#define CFG_SUPPORTED_RATES_11A_DATA "12, 18, 24, 36, 48, 72, 96, 108"
+#define CFG_SUPPORTED_RATES_11A CFG_STRING( \
+ "supported_rates_11a", \
+ 0, \
+ sizeof(CFG_SUPPORTED_RATES_11A_DATA) - 1, \
+ CFG_SUPPORTED_RATES_11A_DATA, \
+ "Supported rates for 11A")
+
+/*
+ *
+ * supported_mcs_set - supported MCS set data
+ * @Min: 0 minimum length of supported MCS set
+ * @Max: default data length of supported mcs set in string format
+ * @Default: 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+ * 0x0, 0x0, 0x0
+ */
+#define CFG_SUPPORTED_MCS_SET_DATA "0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0"
+#define CFG_SUPPORTED_MCS_SET CFG_STRING( \
+ "supported_mcs_set", \
+ 0, \
+ sizeof(CFG_SUPPORTED_MCS_SET_DATA) - 1, \
+ CFG_SUPPORTED_MCS_SET_DATA, \
+ "supported MCS set")
+
+/*
+ *
+ * basic_mcs_set - basic MCS set data
+ * @Min: 0 minimum length of basic MCS set
+ * @Max: default data length of basic mcs set in string format
+ * @Default: 0x00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+ * 0x0, 0x0, 0x0
+ */
+#define CFG_BASIC_MCS_SET_DATA "0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0"
+#define CFG_BASIC_MCS_SET CFG_STRING( \
+ "basic_mcs_set", \
+ 0, \
+ sizeof(CFG_BASIC_MCS_SET_DATA) - 1, \
+ CFG_BASIC_MCS_SET_DATA, \
+ "basic MCS set")
+
+/*
+ *
+ * current_mcs_set - current MCS set data
+ * @Min: 0 minimum length of current MCS set
+ * @Max: default data length of current mcs set in string format
+ * @Default: 0x00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+ * 0x0, 0x0, 0x0
+ */
+#define CFG_CURRENT_MCS_SET_DATA "0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0"
+#define CFG_CURRENT_MCS_SET CFG_STRING( \
+ "current_mcs_set", \
+ 0, \
+ sizeof(CFG_CURRENT_MCS_SET_DATA) - 1, \
+ CFG_CURRENT_MCS_SET_DATA, \
+ "current MCS set")
#define CFG_RATES_ALL \
- CFG(CFG_INI_MAX_HT_MCS_FOR_TX_DATA) \
- CFG(CFG_INI_DISABLE_ABG_RATE_FOR_TX_DATA) \
- CFG(CFG_INI_SAP_MAX_MCS_FOR_TX_DATA) \
- CFG(CFG_INI_DISABLE_HIGH_HT_RX_MCS_2x2) \
+ CFG(CFG_MAX_HT_MCS_FOR_TX_DATA) \
+ CFG(CFG_DISABLE_ABG_RATE_FOR_TX_DATA) \
+ CFG(CFG_SAP_MAX_MCS_FOR_TX_DATA) \
+ CFG(CFG_DISABLE_HIGH_HT_RX_MCS_2x2) \
CFG(CFG_CFP_PERIOD) \
- CFG(CFG_CFP_MAX_DURATION)
+ CFG(CFG_CFP_MAX_DURATION) \
+ CFG(CFG_SUPPORTED_RATES_11B) \
+ CFG(CFG_SUPPORTED_RATES_11A) \
+ CFG(CFG_SUPPORTED_MCS_SET) \
+ CFG(CFG_BASIC_MCS_SET) \
+ CFG(CFG_CURRENT_MCS_SET)
#endif /* __CFG_MLME_RATES_H */
diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h
index ad3dacd7c4..a1a17c6bd1 100644
--- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h
+++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h
@@ -531,6 +531,13 @@ struct wlan_mlme_he_caps {
* @disable_abg_rate_txdata: disable abg rate info for tx data
* @sap_max_mcs_txdata: sap max mcs info
* @disable_high_ht_mcs_2x2: disable high mcs for 2x2 info
+ * @supported_11b: supported 11B rates
+ * @supported_11a: supported 11A rates
+ * @opr_rate_set: operational rates set
+ * @ext_opr_rate_set: extended operational rates set
+ * @supported_mcs_set: supported MCS set
+ * @basic_mcs_set: basic MCS set
+ * @current_mcs_set: current MCS set
*/
struct wlan_mlme_rates {
uint8_t cfp_period;
@@ -539,6 +546,13 @@ struct wlan_mlme_rates {
bool disable_abg_rate_txdata;
uint16_t sap_max_mcs_txdata;
uint8_t disable_high_ht_mcs_2x2;
+ struct mlme_cfg_str supported_11b;
+ struct mlme_cfg_str supported_11a;
+ struct mlme_cfg_str opr_rate_set;
+ struct mlme_cfg_str ext_opr_rate_set;
+ struct mlme_cfg_str supported_mcs_set;
+ struct mlme_cfg_str basic_mcs_set;
+ struct mlme_cfg_str current_mcs_set;
};
diff --git a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
index 137301b3fb..237f8e815b 100644
--- a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
+++ b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
@@ -1590,4 +1590,58 @@ ucfg_mlme_update_nss_vht_cap(struct wlan_objmgr_psoc *psoc)
return mlme_update_nss_vht_cap(psoc);
}
+/**
+ * ucfg_mlme_get_opr_rate_set() - Get operational rate set
+ * @psoc: pointer to psoc object
+ * @buf: buffer to get rates set
+ * @len: length of the buffer
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_mlme_get_opr_rate_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf,
+ qdf_size_t *len);
+
+/**
+ * ucfg_mlme_get_ext_opr_rate_set() - Get operational rate set
+ * @psoc: pointer to psoc object
+ * @buf: buffer to get rates set
+ * @len: length of the buffer
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_mlme_get_ext_opr_rate_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf,
+ qdf_size_t *len);
+
+/**
+ * ucfg_mlme_get_supported_mcs_set() - Get Supported MCS set
+ * @psoc: pointer to psoc object
+ * @buf: caller buffer to copy mcs set info
+ * @len: length of the buffer
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_mlme_get_supported_mcs_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf,
+ qdf_size_t *len);
+
+/**
+ * ucfg_mlme_set_supported_mcs_set() - Get Supported MCS set
+ * @psoc: pointer to psoc object
+ * @buf: caller buffer having mcs set info
+ * @len: length of the buffer
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_mlme_set_supported_mcs_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf,
+ qdf_size_t len);
+
+/**
+ * ucfg_mlme_get_current_mcs_set() - Get current MCS set
+ * @psoc: pointer to psoc object
+ * @buf: caller buffer to copy mcs set info
+ * @len: length of the buffer
+ * Return: QDF Status
+ */
+QDF_STATUS
+ucfg_mlme_get_current_mcs_set(struct wlan_objmgr_psoc *psoc, uint8_t *buf,
+ qdf_size_t *len);
#endif /* _WLAN_MLME_UCFG_API_H_ */
diff --git a/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c b/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c
index 4114d7ade0..b257cb2f3d 100644
--- a/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c
+++ b/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c
@@ -316,3 +316,86 @@ ucfg_mlme_get_first_scan_bucket_threshold(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS;
}
+
+QDF_STATUS
+ucfg_mlme_get_opr_rate_set(struct wlan_objmgr_psoc *psoc,
+ uint8_t *buf, qdf_size_t *len)
+{
+ struct wlan_mlme_psoc_obj *mlme_obj;
+
+ mlme_obj = mlme_get_psoc_obj(psoc);
+ if (!mlme_obj) {
+ mlme_err("mlme obj null");
+ return QDF_STATUS_E_INVAL;
+ }
+
+ return wlan_mlme_get_cfg_str(buf, &mlme_obj->cfg.rates.opr_rate_set,
+ len);
+}
+
+QDF_STATUS
+ucfg_mlme_get_ext_opr_rate_set(struct wlan_objmgr_psoc *psoc,
+ uint8_t *buf, qdf_size_t *len)
+{
+ struct wlan_mlme_psoc_obj *mlme_obj;
+
+ mlme_obj = mlme_get_psoc_obj(psoc);
+ if (!mlme_obj) {
+ mlme_err("mlme obj null");
+ return QDF_STATUS_E_INVAL;
+ }
+
+ return wlan_mlme_get_cfg_str(buf, &mlme_obj->cfg.rates.ext_opr_rate_set,
+ len);
+}
+
+QDF_STATUS
+ucfg_mlme_get_supported_mcs_set(struct wlan_objmgr_psoc *psoc,
+ uint8_t *buf, qdf_size_t *len)
+{
+ struct wlan_mlme_psoc_obj *mlme_obj;
+
+ mlme_obj = mlme_get_psoc_obj(psoc);
+ if (!mlme_obj) {
+ mlme_err("mlme obj null");
+ return QDF_STATUS_E_INVAL;
+ }
+
+ return wlan_mlme_get_cfg_str(buf,
+ &mlme_obj->cfg.rates.supported_mcs_set,
+ len);
+}
+
+QDF_STATUS
+ucfg_mlme_set_supported_mcs_set(struct wlan_objmgr_psoc *psoc,
+ uint8_t *buf, qdf_size_t len)
+{
+ struct wlan_mlme_psoc_obj *mlme_obj;
+
+ mlme_obj = mlme_get_psoc_obj(psoc);
+ if (!mlme_obj) {
+ mlme_err("mlme obj null");
+ return QDF_STATUS_E_INVAL;
+ }
+
+ return wlan_mlme_set_cfg_str(buf,
+ &mlme_obj->cfg.rates.supported_mcs_set,
+ len);
+}
+
+QDF_STATUS
+ucfg_mlme_get_current_mcs_set(struct wlan_objmgr_psoc *psoc,
+ uint8_t *buf, qdf_size_t *len)
+{
+ struct wlan_mlme_psoc_obj *mlme_obj;
+
+ mlme_obj = mlme_get_psoc_obj(psoc);
+ if (!mlme_obj) {
+ mlme_err("mlme obj null");
+ return QDF_STATUS_E_INVAL;
+ }
+
+ return wlan_mlme_get_cfg_str(buf,
+ &mlme_obj->cfg.rates.current_mcs_set,
+ len);
+}
diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c
index f14231adcf..aac7b73a55 100644
--- a/core/hdd/src/wlan_hdd_cfg.c
+++ b/core/hdd/src/wlan_hdd_cfg.c
@@ -4947,10 +4947,10 @@ QDF_STATUS hdd_update_nss(struct hdd_adapter *adapter, uint8_t nss)
uint32_t rx_supp_data_rate, tx_supp_data_rate;
bool status = true;
QDF_STATUS qdf_status;
+ qdf_size_t val_len;
struct mlme_ht_capabilities_info ht_cap_info;
uint8_t mcs_set[SIZE_OF_SUPPORTED_MCS_SET] = {0};
uint8_t mcs_set_temp[SIZE_OF_SUPPORTED_MCS_SET];
- uint32_t val;
uint8_t enable2x2;
mac_handle_t mac_handle;
bool bval = 0;
@@ -5038,21 +5038,26 @@ QDF_STATUS hdd_update_nss(struct hdd_adapter *adapter, uint8_t nss)
}
#define WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES 0xff
- val = SIZE_OF_SUPPORTED_MCS_SET;
- sme_cfg_get_str(mac_handle, WNI_CFG_SUPPORTED_MCS_SET,
- mcs_set_temp, &val);
-
- mcs_set[0] = mcs_set_temp[0];
- if (enable2x2)
- for (val = 0; val < nss; val++)
- mcs_set[val] = WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES;
-
- if (sme_cfg_set_str(mac_handle, WNI_CFG_SUPPORTED_MCS_SET,
- mcs_set,
- SIZE_OF_SUPPORTED_MCS_SET) ==
- QDF_STATUS_E_FAILURE) {
+ val_len = SIZE_OF_SUPPORTED_MCS_SET;
+ qdf_status = ucfg_mlme_get_supported_mcs_set(hdd_ctx->psoc,
+ mcs_set_temp,
+ &val_len);
+ if (QDF_IS_STATUS_SUCCESS(qdf_status)) {
+ mcs_set[0] = mcs_set_temp[0];
+ if (enable2x2)
+ for (val_len = 0; val_len < nss; val_len++)
+ mcs_set[val_len] =
+ WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES;
+ if (ucfg_mlme_set_supported_mcs_set(
+ hdd_ctx->psoc, mcs_set,
+ (qdf_size_t)SIZE_OF_SUPPORTED_MCS_SET) ==
+ QDF_STATUS_E_FAILURE) {
+ status = false;
+ hdd_err("Could not pass on MCS SET to CFG");
+ }
+ } else {
status = false;
- hdd_err("Could not pass on MCS SET to CFG");
+ hdd_err("Could not get MCS SET from CFG");
}
sme_update_he_cap_nss(mac_handle, adapter->session_id, nss);
#undef WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index 33dd2581a2..6bf7358a5a 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -1411,6 +1411,7 @@ static void hdd_update_tgt_ht_cap(struct hdd_context *hdd_ctx,
struct wma_tgt_ht_cap *cfg)
{
QDF_STATUS status;
+ qdf_size_t value_len;
uint32_t value;
struct mlme_ht_capabilities_info ht_cap_info;
uint8_t mcs_set[SIZE_OF_SUPPORTED_MCS_SET];
@@ -1495,9 +1496,10 @@ static void hdd_update_tgt_ht_cap(struct hdd_context *hdd_ctx,
if (status != QDF_STATUS_SUCCESS)
hdd_err("could not set HT capability to CCM");
#define WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES 0xff
- value = SIZE_OF_SUPPORTED_MCS_SET;
- if (sme_cfg_get_str(mac_handle, WNI_CFG_SUPPORTED_MCS_SET, mcs_set,
- &value) == QDF_STATUS_SUCCESS) {
+ value_len = SIZE_OF_SUPPORTED_MCS_SET;
+ if (ucfg_mlme_get_supported_mcs_set(
+ hdd_ctx->psoc, mcs_set,
+ &value_len) == QDF_STATUS_SUCCESS) {
hdd_debug("Read MCS rate set");
if (cfg->num_rf_chains > SIZE_OF_SUPPORTED_MCS_SET)
cfg->num_rf_chains = SIZE_OF_SUPPORTED_MCS_SET;
@@ -1507,12 +1509,11 @@ static void hdd_update_tgt_ht_cap(struct hdd_context *hdd_ctx,
mcs_set[value] =
WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES;
- status =
- sme_cfg_set_str(mac_handle,
- WNI_CFG_SUPPORTED_MCS_SET,
- mcs_set,
- SIZE_OF_SUPPORTED_MCS_SET);
- if (status == QDF_STATUS_E_FAILURE)
+ status = ucfg_mlme_set_supported_mcs_set(
+ hdd_ctx->psoc,
+ mcs_set,
+ (qdf_size_t)SIZE_OF_SUPPORTED_MCS_SET);
+ if (QDF_IS_STATUS_ERROR(status))
hdd_err("could not set MCS SET to CCM");
}
}
diff --git a/core/hdd/src/wlan_hdd_stats.c b/core/hdd/src/wlan_hdd_stats.c
index cd03f8a146..d19ab9a261 100644
--- a/core/hdd/src/wlan_hdd_stats.c
+++ b/core/hdd/src/wlan_hdd_stats.c
@@ -3959,12 +3959,12 @@ static int hdd_report_max_rate(mac_handle_t mac_handle,
uint16_t max_rate = 0;
uint32_t vht_mcs_map;
uint16_t current_rate = 0;
- uint8_t or_leng = CSR_DOT11_SUPPORTED_RATES_MAX;
+ qdf_size_t or_leng = CSR_DOT11_SUPPORTED_RATES_MAX;
uint8_t operational_rates[CSR_DOT11_SUPPORTED_RATES_MAX];
uint8_t extended_rates[CSR_DOT11_EXTENDED_SUPPORTED_RATES_MAX];
- uint32_t er_leng = CSR_DOT11_EXTENDED_SUPPORTED_RATES_MAX;
+ qdf_size_t er_leng = CSR_DOT11_EXTENDED_SUPPORTED_RATES_MAX;
uint8_t mcs_rates[SIZE_OF_BASIC_MCS_SET];
- uint32_t mcs_leng = SIZE_OF_BASIC_MCS_SET;
+ qdf_size_t mcs_leng = SIZE_OF_BASIC_MCS_SET;
struct index_vht_data_rate_type *supported_vht_mcs_rate;
struct index_data_rate_type *supported_mcs_rate;
enum data_rate_11ac_max_mcs vht_max_mcs;
@@ -4011,10 +4011,8 @@ static int hdd_report_max_rate(mac_handle_t mac_handle,
max_rate = 0;
/* Get Basic Rate Set */
- if (0 != sme_cfg_get_str(mac_handle,
- WNI_CFG_OPERATIONAL_RATE_SET,
- operational_rates,
- (uint32_t *)&or_leng)) {
+ if (0 != ucfg_mlme_get_opr_rate_set(hdd_ctx->psoc,
+ operational_rates, &or_leng)) {
hdd_err("cfg get returned failure");
/*To keep GUI happy */
return 0;
@@ -4037,9 +4035,9 @@ static int hdd_report_max_rate(mac_handle_t mac_handle,
}
/* Get Extended Rate Set */
- if (0 != sme_cfg_get_str(mac_handle,
- WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET,
- extended_rates, &er_leng)) {
+ if (0 != ucfg_mlme_get_ext_opr_rate_set(hdd_ctx->psoc,
+ extended_rates,
+ &er_leng)) {
hdd_err("cfg get returned failure");
/*To keep GUI happy */
return 0;
@@ -4062,9 +4060,9 @@ static int hdd_report_max_rate(mac_handle_t mac_handle,
* actual speed
*/
if ((3 != rssidx) && !(tx_rate_flags & TX_RATE_LEGACY)) {
- if (0 != sme_cfg_get_str(mac_handle,
- WNI_CFG_CURRENT_MCS_SET, mcs_rates,
- &mcs_leng)) {
+ if (0 != ucfg_mlme_get_current_mcs_set(hdd_ctx->psoc,
+ mcs_rates,
+ &mcs_leng)) {
hdd_err("cfg get returned failure");
/*To keep GUI happy */
return 0;
diff --git a/core/mac/inc/wni_cfg.h b/core/mac/inc/wni_cfg.h
index 8e9f90387b..5542cbc5e3 100644
--- a/core/mac/inc/wni_cfg.h
+++ b/core/mac/inc/wni_cfg.h
@@ -32,11 +32,7 @@ enum {
WNI_CFG_DTIM_PERIOD,
WNI_CFG_ACTIVE_MAXIMUM_CHANNEL_TIME,
WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME,
- WNI_CFG_SUPPORTED_RATES_11B,
- WNI_CFG_SUPPORTED_RATES_11A,
WNI_CFG_DOT11_MODE,
- WNI_CFG_OPERATIONAL_RATE_SET,
- WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET,
WNI_CFG_LISTEN_INTERVAL,
WNI_CFG_VALID_CHANNEL_LIST,
WNI_CFG_APSD_ENABLED,
@@ -56,15 +52,12 @@ enum {
WNI_CFG_SCAN_CONTROL_LIST,
WNI_CFG_HT_CAP_INFO,
WNI_CFG_HT_AMPDU_PARAMS,
- WNI_CFG_SUPPORTED_MCS_SET,
WNI_CFG_EXT_HT_CAP_INFO,
WNI_CFG_TX_BF_CAP,
WNI_CFG_AS_CAP,
WNI_CFG_HT_INFO_FIELD1,
WNI_CFG_HT_INFO_FIELD2,
WNI_CFG_HT_INFO_FIELD3,
- WNI_CFG_BASIC_MCS_SET,
- WNI_CFG_CURRENT_MCS_SET,
WNI_CFG_MPDU_DENSITY,
WNI_CFG_MAX_RX_AMPDU_FACTOR,
WNI_CFG_SCAN_IN_POWERSAVE,
@@ -210,19 +203,12 @@ enum {
#define WNI_CFG_STA_ID_LEN 6
#define WNI_CFG_SSID_LEN 32
-#define WNI_CFG_SUPPORTED_RATES_11B_LEN 4
-#define WNI_CFG_SUPPORTED_RATES_11A_LEN 8
-#define WNI_CFG_OPERATIONAL_RATE_SET_LEN 12
-#define WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN 8
#define WNI_CFG_PROPRIETARY_OPERATIONAL_RATE_SET_LEN 4
#define WNI_CFG_VALID_CHANNEL_LIST_LEN 100
#define WNI_CFG_MAX_TX_POWER_2_4_LEN 128
#define WNI_CFG_MAX_TX_POWER_5_LEN 128
#define WNI_CFG_COUNTRY_CODE_LEN 3
#define WNI_CFG_SCAN_CONTROL_LIST_LEN 128
-#define WNI_CFG_SUPPORTED_MCS_SET_LEN 16
-#define WNI_CFG_BASIC_MCS_SET_LEN 16
-#define WNI_CFG_CURRENT_MCS_SET_LEN 16
#define WNI_CFG_PROBE_RSP_ADDNIE_DATA1_LEN 255
#define WNI_CFG_ASSOC_RSP_ADDNIE_DATA_LEN 255
#define WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA_LEN 255
diff --git a/core/mac/src/cfg/cfg_param_name.c b/core/mac/src/cfg/cfg_param_name.c
index ef51928c18..7372a0bcd8 100644
--- a/core/mac/src/cfg/cfg_param_name.c
+++ b/core/mac/src/cfg/cfg_param_name.c
@@ -47,11 +47,7 @@ const char *cfg_get_string(uint16_t cfg_id)
CASE_RETURN_STRING(WNI_CFG_DTIM_PERIOD);
CASE_RETURN_STRING(WNI_CFG_ACTIVE_MAXIMUM_CHANNEL_TIME);
CASE_RETURN_STRING(WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME);
- CASE_RETURN_STRING(WNI_CFG_SUPPORTED_RATES_11B);
- CASE_RETURN_STRING(WNI_CFG_SUPPORTED_RATES_11A);
CASE_RETURN_STRING(WNI_CFG_DOT11_MODE);
- CASE_RETURN_STRING(WNI_CFG_OPERATIONAL_RATE_SET);
- CASE_RETURN_STRING(WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET);
CASE_RETURN_STRING(WNI_CFG_LISTEN_INTERVAL);
CASE_RETURN_STRING(WNI_CFG_VALID_CHANNEL_LIST);
CASE_RETURN_STRING(WNI_CFG_APSD_ENABLED);
@@ -71,15 +67,12 @@ const char *cfg_get_string(uint16_t cfg_id)
CASE_RETURN_STRING(WNI_CFG_SCAN_CONTROL_LIST);
CASE_RETURN_STRING(WNI_CFG_HT_CAP_INFO);
CASE_RETURN_STRING(WNI_CFG_HT_AMPDU_PARAMS);
- CASE_RETURN_STRING(WNI_CFG_SUPPORTED_MCS_SET);
CASE_RETURN_STRING(WNI_CFG_EXT_HT_CAP_INFO);
CASE_RETURN_STRING(WNI_CFG_TX_BF_CAP);
CASE_RETURN_STRING(WNI_CFG_AS_CAP);
CASE_RETURN_STRING(WNI_CFG_HT_INFO_FIELD1);
CASE_RETURN_STRING(WNI_CFG_HT_INFO_FIELD2);
CASE_RETURN_STRING(WNI_CFG_HT_INFO_FIELD3);
- CASE_RETURN_STRING(WNI_CFG_BASIC_MCS_SET);
- CASE_RETURN_STRING(WNI_CFG_CURRENT_MCS_SET);
CASE_RETURN_STRING(WNI_CFG_MPDU_DENSITY);
CASE_RETURN_STRING(WNI_CFG_MAX_RX_AMPDU_FACTOR);
CASE_RETURN_STRING(WNI_CFG_WOWLAN_UCAST_PATTERN_FILTER_ENABLE);
diff --git a/core/mac/src/cfg/cfg_proc_msg.c b/core/mac/src/cfg/cfg_proc_msg.c
index f903ce6116..9c637e1a0d 100644
--- a/core/mac/src/cfg/cfg_proc_msg.c
+++ b/core/mac/src/cfg/cfg_proc_msg.c
@@ -63,23 +63,12 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STAMIN,
WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STAMAX,
WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME_STADEF},
- {WNI_CFG_SUPPORTED_RATES_11B,
- CFG_CTL_VALID | CFG_CTL_RE,
- 0, 3, 1},
- {WNI_CFG_SUPPORTED_RATES_11A, CFG_CTL_VALID | CFG_CTL_RE,
- 0, 255, 15},
{WNI_CFG_DOT11_MODE,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART |
CFG_CTL_NTF_LIM,
WNI_CFG_DOT11_MODE_STAMIN,
WNI_CFG_DOT11_MODE_STAMAX,
WNI_CFG_DOT11_MODE_STADEF},
- {WNI_CFG_OPERATIONAL_RATE_SET,
- CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
- 0, 1, 1},
- {WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET,
- CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART,
- 0, 65535, 65534},
{WNI_CFG_LISTEN_INTERVAL,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
CFG_CTL_RESTART,
@@ -178,10 +167,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
WNI_CFG_HT_AMPDU_PARAMS_STAMIN,
WNI_CFG_HT_AMPDU_PARAMS_STAMAX,
WNI_CFG_HT_AMPDU_PARAMS_STADEF},
- {WNI_CFG_SUPPORTED_MCS_SET,
- CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_SAVE |
- CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
- 0, 0, 0},
{WNI_CFG_EXT_HT_CAP_INFO,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_SAVE |
CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
@@ -218,14 +203,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
WNI_CFG_HT_INFO_FIELD3_STAMIN,
WNI_CFG_HT_INFO_FIELD3_STAMAX,
WNI_CFG_HT_INFO_FIELD3_STADEF},
- {WNI_CFG_BASIC_MCS_SET,
- CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_SAVE |
- CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
- 0, 0, 0},
- {WNI_CFG_CURRENT_MCS_SET,
- CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_SAVE |
- CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
- 0, 0, 0},
{WNI_CFG_MPDU_DENSITY,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT |
CFG_CTL_RESTART | CFG_CTL_NTF_LIM,
@@ -859,22 +836,6 @@ cfgstatic_string cfg_static_string[CFG_MAX_STATIC_STRING] = {
WNI_CFG_SSID_LEN,
10,
{1, 2, 3, 4, 5, 6, 7, 8, 9, 0} },
- {WNI_CFG_SUPPORTED_RATES_11B,
- WNI_CFG_SUPPORTED_RATES_11B_LEN,
- 4,
- {2, 4, 11, 22} },
- {WNI_CFG_SUPPORTED_RATES_11A,
- WNI_CFG_SUPPORTED_RATES_11A_LEN,
- 8,
- {12, 18, 24, 36, 48, 72, 96, 108} },
- {WNI_CFG_OPERATIONAL_RATE_SET,
- WNI_CFG_OPERATIONAL_RATE_SET_LEN,
- 0,
- {0} },
- {WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET,
- WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN,
- 0,
- {0} },
{WNI_CFG_VALID_CHANNEL_LIST,
WNI_CFG_VALID_CHANNEL_LIST_LEN,
55,
@@ -906,21 +867,6 @@ cfgstatic_string cfg_static_string[CFG_MAX_STATIC_STRING] = {
0x8c, 0x0, 0x90, 0x0, 0x95, 0x1, 0x97, 0x1, 0x99, 0x1, 0x9b, 0x1, 0x9d,
0x1, 0x9f, 0x1, 0xa1, 0x1, 0xa5, 0x1, 0xf0, 0x1, 0xf2, 0x1, 0xf4, 0x1,
0xf6, 0x1, 0xf8, 0x1, 0xfa, 0x1, 0xfc, 0x1} },
- {WNI_CFG_SUPPORTED_MCS_SET,
- WNI_CFG_SUPPORTED_MCS_SET_LEN,
- 16,
- {0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0} },
- {WNI_CFG_BASIC_MCS_SET,
- WNI_CFG_BASIC_MCS_SET_LEN,
- 16,
- {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0} },
- {WNI_CFG_CURRENT_MCS_SET,
- WNI_CFG_CURRENT_MCS_SET_LEN,
- 16,
- {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0} },
{WNI_CFG_WPS_UUID,
WNI_CFG_WPS_UUID_LEN,
6,
diff --git a/core/mac/src/pe/lim/lim_assoc_utils.c b/core/mac/src/pe/lim/lim_assoc_utils.c
index 6e36e121a5..a3aac4391b 100644
--- a/core/mac/src/pe/lim/lim_assoc_utils.c
+++ b/core/mac/src/pe/lim/lim_assoc_utils.c
@@ -54,6 +54,7 @@
#include "wma_types.h"
#include "lim_types.h"
#include "wlan_utility.h"
+#include "wlan_mlme_api.h"
#ifdef FEATURE_WLAN_TDLS
#define IS_TDLS_PEER(type) ((type) == STA_ENTRY_TDLS_PEER)
@@ -259,15 +260,15 @@ lim_check_rx_basic_rates(tpAniSirGlobal pMac, tSirMacRateSet rxRateSet,
uint8_t lim_check_mcs_set(tpAniSirGlobal pMac, uint8_t *supportedMCSSet)
{
uint8_t basicMCSSet[SIZE_OF_BASIC_MCS_SET] = { 0 };
- uint32_t cfgLen = 0;
+ qdf_size_t cfg_len = 0;
uint8_t i;
uint8_t validBytes;
uint8_t lastByteMCSMask = 0x1f;
- cfgLen = WNI_CFG_BASIC_MCS_SET_LEN;
- if (wlan_cfg_get_str(pMac, WNI_CFG_BASIC_MCS_SET,
- (uint8_t *) basicMCSSet,
- (uint32_t *) &cfgLen) != QDF_STATUS_SUCCESS) {
+ cfg_len = pMac->mlme_cfg->rates.basic_mcs_set.len;
+ if (wlan_mlme_get_cfg_str((uint8_t *)basicMCSSet,
+ &pMac->mlme_cfg->rates.basic_mcs_set,
+ &cfg_len) != QDF_STATUS_SUCCESS) {
/* / Could not get Basic MCS rateset from CFG. Log error. */
pe_err("could not retrieve Basic MCS rateset");
return false;
@@ -1488,6 +1489,7 @@ lim_populate_own_rate_set(tpAniSirGlobal mac_ctx,
uint32_t self_sta_dot11mode = 0;
uint8_t a_rate_index = 0;
uint8_t b_rate_index = 0;
+ qdf_size_t val_len;
is_arate = 0;
@@ -1504,20 +1506,22 @@ lim_populate_own_rate_set(tpAniSirGlobal mac_ctx,
(self_sta_dot11mode == WNI_CFG_DOT11_MODE_11N) ||
(self_sta_dot11mode == WNI_CFG_DOT11_MODE_11G) ||
(self_sta_dot11mode == WNI_CFG_DOT11_MODE_11B)) {
- val = WNI_CFG_SUPPORTED_RATES_11B_LEN;
- wlan_cfg_get_str(mac_ctx, WNI_CFG_SUPPORTED_RATES_11B,
- (uint8_t *) &temp_rate_set.rate, &val);
- temp_rate_set.numRates = (uint8_t) val;
+ val_len = mac_ctx->mlme_cfg->rates.supported_11b.len;
+ wlan_mlme_get_cfg_str((uint8_t *)&temp_rate_set.rate,
+ &mac_ctx->mlme_cfg->rates.supported_11b,
+ &val_len);
+ temp_rate_set.numRates = (uint8_t)val_len;
} else {
temp_rate_set.numRates = 0;
}
/* Include 11a rates when the device configured in non-11b mode */
if (!IS_DOT11_MODE_11B(self_sta_dot11mode)) {
- val = WNI_CFG_SUPPORTED_RATES_11A_LEN;
- wlan_cfg_get_str(mac_ctx, WNI_CFG_SUPPORTED_RATES_11A,
- (uint8_t *) &temp_rate_set2.rate, &val);
- temp_rate_set2.numRates = (uint8_t) val;
+ val_len = mac_ctx->mlme_cfg->rates.supported_11a.len;
+ wlan_mlme_get_cfg_str((uint8_t *)&temp_rate_set2.rate,
+ &mac_ctx->mlme_cfg->rates.supported_11a,
+ &val_len);
+ temp_rate_set2.numRates = (uint8_t)val_len;
} else {
temp_rate_set2.numRates = 0;
}
@@ -1566,10 +1570,11 @@ lim_populate_own_rate_set(tpAniSirGlobal mac_ctx,
}
if (IS_DOT11_MODE_HT(self_sta_dot11mode)) {
- val = SIZE_OF_SUPPORTED_MCS_SET;
- if (wlan_cfg_get_str(mac_ctx, WNI_CFG_SUPPORTED_MCS_SET,
- rates->supportedMCSSet,
- &val) != QDF_STATUS_SUCCESS) {
+ val_len = SIZE_OF_SUPPORTED_MCS_SET;
+ if (wlan_mlme_get_cfg_str(
+ rates->supportedMCSSet,
+ &mac_ctx->mlme_cfg->rates.supported_mcs_set,
+ &val_len) != QDF_STATUS_SUCCESS) {
pe_err("could not retrieve supportedMCSSet");
return QDF_STATUS_E_FAILURE;
}
@@ -1629,6 +1634,7 @@ lim_populate_peer_rate_set(tpAniSirGlobal pMac,
tSirMacRateSet tempRateSet;
tSirMacRateSet tempRateSet2;
uint32_t i, j, val, min, isArate = 0;
+ qdf_size_t val_len;
/* copy operational rate set from psessionEntry */
if (psessionEntry->rateSet.numRates <= SIR_MAC_RATESET_EID_MAX) {
@@ -1721,10 +1727,11 @@ lim_populate_peer_rate_set(tpAniSirGlobal pMac,
}
if (IS_DOT11_MODE_HT(psessionEntry->dot11mode)) {
- val = SIZE_OF_SUPPORTED_MCS_SET;
- if (wlan_cfg_get_str(pMac, WNI_CFG_SUPPORTED_MCS_SET,
- pRates->supportedMCSSet,
- &val) != QDF_STATUS_SUCCESS) {
+ val_len = SIZE_OF_SUPPORTED_MCS_SET;
+ if (wlan_mlme_get_cfg_str(
+ pRates->supportedMCSSet,
+ &pMac->mlme_cfg->rates.supported_mcs_set,
+ &val_len) != QDF_STATUS_SUCCESS) {
pe_err("could not retrieve supportedMCSSet");
return QDF_STATUS_E_FAILURE;
}
@@ -1819,6 +1826,7 @@ QDF_STATUS lim_populate_matching_rate_set(tpAniSirGlobal mac_ctx,
tpSirSupportedRates rates;
uint8_t a_rate_index = 0;
uint8_t b_rate_index = 0;
+ qdf_size_t val_len;
is_arate = 0;
@@ -1969,9 +1977,11 @@ QDF_STATUS lim_populate_matching_rate_set(tpAniSirGlobal mac_ctx,
(sta_ds->mlmStaContext.htCapability))
#endif
{
- val = SIZE_OF_SUPPORTED_MCS_SET;
- if (wlan_cfg_get_str(mac_ctx, WNI_CFG_SUPPORTED_MCS_SET,
- mcs_set, &val) != QDF_STATUS_SUCCESS) {
+ val_len = SIZE_OF_SUPPORTED_MCS_SET;
+ if (wlan_mlme_get_cfg_str(
+ mcs_set,
+ &mac_ctx->mlme_cfg->rates.supported_mcs_set,
+ &val_len) != QDF_STATUS_SUCCESS) {
pe_err("could not retrieve supportedMCSet");
return QDF_STATUS_E_FAILURE;
}
@@ -1979,7 +1989,7 @@ QDF_STATUS lim_populate_matching_rate_set(tpAniSirGlobal mac_ctx,
if (session_entry->nss == NSS_1x1_MODE)
mcs_set[1] = 0;
- for (i = 0; i < val; i++)
+ for (i = 0; i < val_len; i++)
sta_ds->supportedRates.supportedMCSSet[i] =
mcs_set[i] & supported_mcs_set[i];
diff --git a/core/mac/src/pe/lim/lim_ibss_peer_mgmt.c b/core/mac/src/pe/lim/lim_ibss_peer_mgmt.c
index 934cb104ba..4ed95fa771 100644
--- a/core/mac/src/pe/lim/lim_ibss_peer_mgmt.c
+++ b/core/mac/src/pe/lim/lim_ibss_peer_mgmt.c
@@ -30,6 +30,7 @@
#include "lim_session.h"
#include "lim_ibss_peer_mgmt.h"
#include "lim_types.h"
+#include "wlan_mlme_api.h"
/**
* ibss_peer_find
@@ -482,7 +483,7 @@ static void ibss_bss_add(tpAniSirGlobal pMac, tpPESession psessionEntry)
tpSirMacMgmtHdr pHdr = (tpSirMacMgmtHdr) pMac->lim.ibssInfo.pHdr;
tpSchBeaconStruct pBeacon =
(tpSchBeaconStruct) pMac->lim.ibssInfo.pBeacon;
- uint8_t numExtRates = 0;
+ qdf_size_t num_ext_rates = 0;
if ((pHdr == NULL) || (pBeacon == NULL)) {
pe_err("Unable to add BSS (no cached BSS info)");
@@ -525,10 +526,11 @@ static void ibss_bss_add(tpAniSirGlobal pMac, tpPESession psessionEntry)
*/
if (pBeacon->extendedRatesPresent)
- numExtRates = pBeacon->extendedRates.numRates;
- if (cfg_set_str(pMac, WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET,
- (uint8_t *) &pBeacon->extendedRates.rate,
- numExtRates) != QDF_STATUS_SUCCESS) {
+ num_ext_rates = pBeacon->extendedRates.numRates;
+ if (wlan_mlme_set_cfg_str(
+ (uint8_t *)&pBeacon->extendedRates.rate,
+ &pMac->mlme_cfg->rates.ext_opr_rate_set,
+ num_ext_rates) != QDF_STATUS_SUCCESS) {
pe_err("could not update ExtendedOperRateset at CFG");
return;
}
diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c
index 832fce52b0..50c1a37df7 100644
--- a/core/mac/src/pe/lim/lim_process_tdls.c
+++ b/core/mac/src/pe/lim/lim_process_tdls.c
@@ -72,6 +72,7 @@
#include "wlan_reg_services_api.h"
#include "wlan_tdls_tgt_api.h"
#include "wlan_mlme_public_struct.h"
+#include "wlan_mlme_api.h"
/* define NO_PAD_TDLS_MIN_8023_SIZE to NOT padding: See CR#447630
There was IOT issue with cisco 1252 open mode, where it pads
@@ -697,7 +698,7 @@ static void populate_dot11f_tdls_ht_vht_cap(tpAniSirGlobal pMac,
tpPESession psessionEntry)
{
uint8_t nss;
- uint32_t val;
+ qdf_size_t val_len;
struct mlme_vht_capabilities_info vht_cap_info;
vht_cap_info = pMac->mlme_cfg->vht_caps.vht_cap_info;
@@ -711,9 +712,10 @@ static void populate_dot11f_tdls_ht_vht_cap(tpAniSirGlobal pMac,
if (IS_DOT11_MODE_HT(selfDot11Mode)) {
/* Include HT Capability IE */
populate_dot11f_ht_caps(pMac, NULL, htCap);
- val = SIZE_OF_SUPPORTED_MCS_SET;
- wlan_cfg_get_str(pMac, WNI_CFG_SUPPORTED_MCS_SET,
- &htCap->supportedMCSSet[0], &val);
+ val_len = SIZE_OF_SUPPORTED_MCS_SET;
+ wlan_mlme_get_cfg_str(&htCap->supportedMCSSet[0],
+ &pMac->mlme_cfg->rates.supported_mcs_set,
+ &val_len);
if (NSS_1x1_MODE == nss)
htCap->supportedMCSSet[1] = 0;
/*
@@ -2256,6 +2258,7 @@ lim_tdls_populate_matching_rate_set(tpAniSirGlobal mac_ctx, tpDphHashNode stads,
uint8_t a_rateindex = 0;
uint8_t b_rateindex = 0;
uint8_t nss;
+ qdf_size_t val_len;
is_a_rate = 0;
temp_rate_set2.numRates = 0;
@@ -2263,24 +2266,28 @@ lim_tdls_populate_matching_rate_set(tpAniSirGlobal mac_ctx, tpDphHashNode stads,
lim_get_phy_mode(mac_ctx, &phymode, NULL);
/* get own rate set */
- val = WNI_CFG_OPERATIONAL_RATE_SET_LEN;
- if (wlan_cfg_get_str(mac_ctx, WNI_CFG_OPERATIONAL_RATE_SET,
- (uint8_t *) &temp_rate_set.rate,
- &val) != QDF_STATUS_SUCCESS) {
+ val_len = mac_ctx->mlme_cfg->rates.opr_rate_set.len;
+ if (wlan_mlme_get_cfg_str((uint8_t *)&temp_rate_set.rate,
+ &mac_ctx->mlme_cfg->rates.opr_rate_set,
+ &val_len) != QDF_STATUS_SUCCESS) {
/* Could not get rateset from CFG. Log error. */
pe_err("could not retrieve rateset");
- val = 0;
+ val_len = 0;
}
- temp_rate_set.numRates = val;
+ temp_rate_set.numRates = val_len;
if (phymode == WNI_CFG_PHY_MODE_11G) {
/* get own extended rate set */
- val = WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN;
- if (wlan_cfg_get_str(mac_ctx,
- WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET,
- (uint8_t *) &temp_rate_set2.rate,
- &val) != QDF_STATUS_SUCCESS)
- temp_rate_set2.numRates = val;
+ val_len = mac_ctx->mlme_cfg->rates.ext_opr_rate_set.len;
+ if (wlan_mlme_get_cfg_str(
+ (uint8_t *)&temp_rate_set2.rate,
+ &mac_ctx->mlme_cfg->rates.ext_opr_rate_set,
+ &val_len) != QDF_STATUS_SUCCESS) {
+ /* Could not get rateset from CFG. Log error. */
+ pe_err("could not retrieve extrateset");
+ val_len = 0;
+ }
+ temp_rate_set2.numRates = val_len;
}
if ((temp_rate_set.numRates + temp_rate_set2.numRates) > 12) {
@@ -2379,9 +2386,11 @@ lim_tdls_populate_matching_rate_set(tpAniSirGlobal mac_ctx, tpDphHashNode stads,
(stads->mlmStaContext.htCapability))
#endif
{
- val = SIZE_OF_SUPPORTED_MCS_SET;
- if (wlan_cfg_get_str(mac_ctx, WNI_CFG_SUPPORTED_MCS_SET,
- mcsSet, &val) != QDF_STATUS_SUCCESS) {
+ val_len = SIZE_OF_SUPPORTED_MCS_SET;
+ if (wlan_mlme_get_cfg_str(
+ mcsSet,
+ &mac_ctx->mlme_cfg->rates.supported_mcs_set,
+ &val_len) != QDF_STATUS_SUCCESS) {
/* Could not get rateset from CFG. Log error. */
pe_err("could not retrieve supportedMCSSet");
return QDF_STATUS_E_FAILURE;
@@ -2389,7 +2398,7 @@ lim_tdls_populate_matching_rate_set(tpAniSirGlobal mac_ctx, tpDphHashNode stads,
if (NSS_1x1_MODE == nss)
mcsSet[1] = 0;
- for (i = 0; i < val; i++)
+ for (i = 0; i < val_len; i++)
stads->supportedRates.supportedMCSSet[i] =
mcsSet[i] & supp_mcs_set[i];
diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
index 8969c2acab..8af06f973b 100644
--- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c
+++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
@@ -45,6 +45,7 @@
#include "wifi_pos_api.h"
#include "wlan_mlme_public_struct.h"
#include "wlan_mlme_ucfg_api.h"
+#include "wlan_mlme_api.h"
#define RSN_OUI_SIZE 4
/* ////////////////////////////////////////////////////////////////////// */
@@ -528,8 +529,8 @@ populate_dot11f_ext_supp_rates(tpAniSirGlobal pMac, uint8_t nChannelNum,
tDot11fIEExtSuppRates *pDot11f,
tpPESession psessionEntry)
{
- QDF_STATUS nSirStatus;
- uint32_t nRates = 0;
+ QDF_STATUS nsir_status;
+ qdf_size_t nRates = 0;
uint8_t rates[SIR_MAC_RATESET_EID_MAX];
/* Use the ext rates present in session entry whenever nChannelNum is set to OPERATIONAL
@@ -545,9 +546,16 @@ populate_dot11f_ext_supp_rates(tpAniSirGlobal pMac, uint8_t nChannelNum,
pe_err("no session context exists while populating Operational Rate Set");
}
} else if (HIGHEST_24GHZ_CHANNEL_NUM >= nChannelNum) {
- CFG_GET_STR(nSirStatus, pMac,
- WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET, rates,
- nRates, WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET_LEN);
+ nRates = pMac->mlme_cfg->rates.ext_opr_rate_set.len;
+ nsir_status = wlan_mlme_get_cfg_str(
+ rates,
+ &pMac->mlme_cfg->rates.ext_opr_rate_set, &nRates);
+ if (QDF_IS_STATUS_ERROR(nsir_status)) {
+ nRates = 0;
+ pe_err("Failed to retrieve nItem from CFG status: %d",
+ (nsir_status));
+ return nsir_status;
+ }
}
if (0 != nRates) {
@@ -565,8 +573,8 @@ populate_dot11f_ext_supp_rates1(tpAniSirGlobal pMac,
uint8_t nChannelNum,
tDot11fIEExtSuppRates *pDot11f)
{
- uint32_t nRates;
- QDF_STATUS nSirStatus;
+ qdf_size_t nRates;
+ QDF_STATUS nsir_status;
uint8_t rates[SIR_MAC_MAX_NUMBER_OF_RATES];
if (14 < nChannelNum) {
@@ -576,8 +584,16 @@ populate_dot11f_ext_supp_rates1(tpAniSirGlobal pMac,
/* N.B. I have *no* idea why we're calling 'wlan_cfg_get_str' with an argument */
/* of WNI_CFG_SUPPORTED_RATES_11A here, but that's what was done */
/* previously & I'm afraid to change it! */
- CFG_GET_STR(nSirStatus, pMac, WNI_CFG_SUPPORTED_RATES_11A,
- rates, nRates, SIR_MAC_MAX_NUMBER_OF_RATES);
+ nRates = SIR_MAC_MAX_NUMBER_OF_RATES;
+ nsir_status = wlan_mlme_get_cfg_str(
+ rates,
+ &pMac->mlme_cfg->rates.supported_11a,
+ &nRates);
+ if (QDF_IS_STATUS_ERROR(nsir_status)) {
+ pe_err("Failed to retrieve nItem from CFG status: %d",
+ (nsir_status));
+ return nsir_status;
+ }
if (0 != nRates) {
pDot11f->num_rates = (uint8_t) nRates;
@@ -592,8 +608,9 @@ QDF_STATUS
populate_dot11f_ht_caps(tpAniSirGlobal pMac,
tpPESession psessionEntry, tDot11fIEHTCaps *pDot11f)
{
- uint32_t nCfgValue, nCfgLen;
+ uint32_t nCfgValue;
uint8_t nCfgValue8;
+ qdf_size_t ncfglen;
QDF_STATUS nSirStatus;
tSirMacHTParametersInfo *pHTParametersInfo;
uint8_t disable_high_ht_mcs_2x2 = 0;
@@ -651,9 +668,16 @@ populate_dot11f_ht_caps(tpAniSirGlobal pMac,
pDot11f->mpduDensity = pHTParametersInfo->mpduDensity;
pDot11f->reserved1 = pHTParametersInfo->reserved;
- CFG_GET_STR(nSirStatus, pMac, WNI_CFG_SUPPORTED_MCS_SET,
- pDot11f->supportedMCSSet, nCfgLen,
- SIZE_OF_SUPPORTED_MCS_SET);
+ ncfglen = SIZE_OF_SUPPORTED_MCS_SET;
+ nSirStatus = wlan_mlme_get_cfg_str(
+ pDot11f->supportedMCSSet,
+ &pMac->mlme_cfg->rates.supported_mcs_set,
+ &ncfglen);
+ if (QDF_IS_STATUS_ERROR(nSirStatus)) {
+ pe_err("Failed to retrieve nItem from CFG status: %d",
+ (nSirStatus));
+ return nSirStatus;
+ }
if (psessionEntry) {
disable_high_ht_mcs_2x2 =
@@ -1131,7 +1155,8 @@ QDF_STATUS
populate_dot11f_ht_info(tpAniSirGlobal pMac,
tDot11fIEHTInfo *pDot11f, tpPESession psessionEntry)
{
- uint32_t nCfgValue, nCfgLen;
+ uint32_t nCfgValue;
+ qdf_size_t ncfglen;
uint8_t htInfoField1;
uint16_t htInfoField2;
QDF_STATUS nSirStatus;
@@ -1233,8 +1258,15 @@ populate_dot11f_ht_info(tpAniSirGlobal pMac,
pDot11f->pcoActive = uHTInfoField.infoField3.pcoActive;
pDot11f->pcoPhase = uHTInfoField.infoField3.pcoPhase;
pDot11f->reserved2 = uHTInfoField.infoField3.reserved;
- CFG_GET_STR(nSirStatus, pMac, WNI_CFG_BASIC_MCS_SET,
- pDot11f->basicMCSSet, nCfgLen, SIZE_OF_BASIC_MCS_SET);
+ ncfglen = SIZE_OF_BASIC_MCS_SET;
+ nSirStatus = wlan_mlme_get_cfg_str(pDot11f->basicMCSSet,
+ &pMac->mlme_cfg->rates.basic_mcs_set,
+ &ncfglen);
+ if (QDF_IS_STATUS_ERROR(nSirStatus)) {
+ pe_err("Failed to retrieve nItem from CFG status: %d",
+ (nSirStatus));
+ return nSirStatus;
+ }
pDot11f->present = 1;
@@ -1546,8 +1578,8 @@ populate_dot11f_supp_rates(tpAniSirGlobal pMac,
uint8_t nChannelNum,
tDot11fIESuppRates *pDot11f, tpPESession psessionEntry)
{
- QDF_STATUS nSirStatus;
- uint32_t nRates;
+ QDF_STATUS nsir_status;
+ qdf_size_t nRates;
uint8_t rates[SIR_MAC_MAX_NUMBER_OF_RATES];
/* Use the operational rates present in session entry whenever nChannelNum is set to OPERATIONAL
@@ -1556,7 +1588,7 @@ populate_dot11f_supp_rates(tpAniSirGlobal pMac,
*/
if (POPULATE_DOT11F_RATES_OPERATIONAL == nChannelNum) {
#if 0
- CFG_GET_STR(nSirStatus, pMac, WNI_CFG_OPERATIONAL_RATE_SET,
+ CFG_GET_STR(nsir_status, pMac, WNI_CFG_OPERATIONAL_RATE_SET,
rates, nRates, SIR_MAC_MAX_NUMBER_OF_RATES);
#endif /* TO SUPPORT BT-AMP */
if (psessionEntry != NULL) {
@@ -1568,11 +1600,27 @@ populate_dot11f_supp_rates(tpAniSirGlobal pMac,
nRates = 0;
}
} else if (14 >= nChannelNum) {
- CFG_GET_STR(nSirStatus, pMac, WNI_CFG_SUPPORTED_RATES_11B,
- rates, nRates, SIR_MAC_MAX_NUMBER_OF_RATES);
+ nRates = SIR_MAC_MAX_NUMBER_OF_RATES;
+ nsir_status = wlan_mlme_get_cfg_str(
+ rates,
+ &pMac->mlme_cfg->rates.supported_11b,
+ &nRates);
+ if (QDF_IS_STATUS_ERROR(nsir_status)) {
+ pe_err("Failed to retrieve nItem from CFG status: %d",
+ (nsir_status));
+ return nsir_status;
+ }
} else {
- CFG_GET_STR(nSirStatus, pMac, WNI_CFG_SUPPORTED_RATES_11A,
- rates, nRates, SIR_MAC_MAX_NUMBER_OF_RATES);
+ nRates = SIR_MAC_MAX_NUMBER_OF_RATES;
+ nsir_status = wlan_mlme_get_cfg_str(
+ rates,
+ &pMac->mlme_cfg->rates.supported_11a,
+ &nRates);
+ if (QDF_IS_STATUS_ERROR(nsir_status)) {
+ pe_err("Failed to retrieve nItem from CFG status: %d",
+ (nsir_status));
+ return nsir_status;
+ }
}
if (0 != nRates) {
@@ -1610,8 +1658,9 @@ populate_dot11f_rates_tdls(tpAniSirGlobal p_mac,
{
tSirMacRateSet temp_rateset;
tSirMacRateSet temp_rateset2;
- uint32_t val, i;
+ uint32_t i;
uint32_t self_dot11mode = 0;
+ qdf_size_t num_rates;
wlan_cfg_get_int(p_mac, WNI_CFG_DOT11_MODE, &self_dot11mode);
@@ -1632,20 +1681,22 @@ populate_dot11f_rates_tdls(tpAniSirGlobal p_mac,
(self_dot11mode == WNI_CFG_DOT11_MODE_11N) ||
(self_dot11mode == WNI_CFG_DOT11_MODE_11G) ||
(self_dot11mode == WNI_CFG_DOT11_MODE_11B))) {
- val = WNI_CFG_SUPPORTED_RATES_11B_LEN;
- wlan_cfg_get_str(p_mac, WNI_CFG_SUPPORTED_RATES_11B,
- (uint8_t *)&temp_rateset.rate, &val);
- temp_rateset.numRates = (uint8_t) val;
+ num_rates = p_mac->mlme_cfg->rates.supported_11b.len;
+ wlan_mlme_get_cfg_str((uint8_t *)&temp_rateset.rate,
+ &p_mac->mlme_cfg->rates.supported_11b,
+ &num_rates);
+ temp_rateset.numRates = (uint8_t)num_rates;
} else {
temp_rateset.numRates = 0;
}
/* Include 11a rates when the device configured in non-11b mode */
if (!IS_DOT11_MODE_11B(self_dot11mode)) {
- val = WNI_CFG_SUPPORTED_RATES_11A_LEN;
- wlan_cfg_get_str(p_mac, WNI_CFG_SUPPORTED_RATES_11A,
- (uint8_t *)&temp_rateset2.rate, &val);
- temp_rateset2.numRates = (uint8_t) val;
+ num_rates = p_mac->mlme_cfg->rates.supported_11a.len;
+ wlan_mlme_get_cfg_str((uint8_t *)&temp_rateset2.rate,
+ &p_mac->mlme_cfg->rates.supported_11a,
+ &num_rates);
+ temp_rateset2.numRates = (uint8_t)num_rates;
} else {
temp_rateset2.numRates = 0;
}
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index 0216e7c1d5..e3f517649b 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -5090,13 +5090,13 @@ static void csr_set_cfg_rate_set(tpAniSirGlobal pMac, eCsrPhyMode phyMode,
enum csr_cfgdot11mode cfgDot11Mode;
/* leave enough room for the max number of rates */
uint8_t OperationalRates[CSR_DOT11_SUPPORTED_RATES_MAX];
- uint32_t OperationalRatesLength = 0;
+ qdf_size_t OperationalRatesLength = 0;
/* leave enough room for the max number of rates */
uint8_t ExtendedOperationalRates
[CSR_DOT11_EXTENDED_SUPPORTED_RATES_MAX];
- uint32_t ExtendedOperationalRatesLength = 0;
+ qdf_size_t ExtendedOperationalRatesLength = 0;
uint8_t MCSRateIdxSet[SIZE_OF_SUPPORTED_MCS_SET];
- uint32_t MCSRateLength = 0;
+ qdf_size_t MCSRateLength = 0;
QDF_ASSERT(pIes != NULL);
if (NULL != pIes) {
@@ -5168,13 +5168,15 @@ static void csr_set_cfg_rate_set(tpAniSirGlobal pMac, eCsrPhyMode phyMode,
}
}
/* Set the operational rate set CFG variables... */
- cfg_set_str(pMac, WNI_CFG_OPERATIONAL_RATE_SET,
- OperationalRates, OperationalRatesLength);
- cfg_set_str(pMac, WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET,
- ExtendedOperationalRates,
- ExtendedOperationalRatesLength);
- cfg_set_str(pMac, WNI_CFG_CURRENT_MCS_SET, MCSRateIdxSet,
- MCSRateLength);
+ wlan_mlme_set_cfg_str(OperationalRates,
+ &pMac->mlme_cfg->rates.opr_rate_set,
+ OperationalRatesLength);
+ wlan_mlme_set_cfg_str(ExtendedOperationalRates,
+ &pMac->mlme_cfg->rates.ext_opr_rate_set,
+ ExtendedOperationalRatesLength);
+ wlan_mlme_set_cfg_str(MCSRateIdxSet,
+ &pMac->mlme_cfg->rates.current_mcs_set,
+ MCSRateLength);
} /* Parsing BSSDesc */
else
sme_err("failed to parse BssDesc");
@@ -5203,11 +5205,11 @@ static void csr_set_cfg_rate_set_from_profile(tpAniSirGlobal pMac,
enum band_info eBand;
/* leave enough room for the max number of rates */
uint8_t OperationalRates[CSR_DOT11_SUPPORTED_RATES_MAX];
- uint32_t OperationalRatesLength = 0;
+ qdf_size_t OperationalRatesLength = 0;
/* leave enough room for the max number of rates */
uint8_t ExtendedOperationalRates
[CSR_DOT11_EXTENDED_SUPPORTED_RATES_MAX];
- uint32_t ExtendedOperationalRatesLength = 0;
+ qdf_size_t ExtendedOperationalRatesLength = 0;
uint8_t operationChannel = 0;
if (pProfile->ChannelInfo.ChannelList)
@@ -5263,11 +5265,12 @@ static void csr_set_cfg_rate_set_from_profile(tpAniSirGlobal pMac,
}
/* Set the operational rate set CFG variables... */
- cfg_set_str(pMac, WNI_CFG_OPERATIONAL_RATE_SET, OperationalRates,
- OperationalRatesLength);
- cfg_set_str(pMac, WNI_CFG_EXTENDED_OPERATIONAL_RATE_SET,
- ExtendedOperationalRates,
- ExtendedOperationalRatesLength);
+ wlan_mlme_set_cfg_str(OperationalRates,
+ &pMac->mlme_cfg->rates.opr_rate_set,
+ OperationalRatesLength);
+ wlan_mlme_set_cfg_str(ExtendedOperationalRates,
+ &pMac->mlme_cfg->rates.ext_opr_rate_set,
+ ExtendedOperationalRatesLength);
}
static void csr_roam_ccm_cfg_set_callback(tpAniSirGlobal pMac,
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c
index 263e08b5bd..c25a7d3115 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/core/wma/src/wma_scan_roam.c
@@ -69,6 +69,7 @@
#include
#include
#include "wma_nan_datapath.h"
+#include "wlan_mlme_api.h"
#define WMA_MCC_MIRACAST_REST_TIME 400
#define WMA_SCAN_ID_MASK 0x0fff
@@ -2671,6 +2672,7 @@ QDF_STATUS wma_roam_scan_fill_self_caps(tp_wma_handle wma_handle,
roam_offload_params,
tSirRoamOffloadScanReq *roam_req)
{
+ qdf_size_t val_len;
struct sAniSirGlobal *pMac = NULL;
tSirMacCapabilityInfo selfCaps;
uint32_t val = 0;
@@ -2772,12 +2774,12 @@ QDF_STATUS wma_roam_scan_fill_self_caps(tp_wma_handle wma_handle,
nCfgValue8 = (uint8_t) nCfgValue;
roam_offload_params->ampdu_param = (nCfgValue8) & 0xFF;
- val = ROAM_OFFLOAD_NUM_MCS_SET;
- if (wlan_cfg_get_str(pMac, WNI_CFG_SUPPORTED_MCS_SET,
- (uint8_t *) roam_offload_params->mcsset,
- &val) != QDF_STATUS_SUCCESS) {
+ val_len = ROAM_OFFLOAD_NUM_MCS_SET;
+ if (wlan_mlme_get_cfg_str((uint8_t *)roam_offload_params->mcsset,
+ &pMac->mlme_cfg->rates.supported_mcs_set,
+ &val_len) != QDF_STATUS_SUCCESS) {
QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_ERROR,
- "Failed to get WNI_CFG_SUPPORTED_MCS_SET");
+ "Failed to get CFG_SUPPORTED_MCS_SET");
return QDF_STATUS_E_FAILURE;
}
if (wlan_cfg_get_int(pMac, WNI_CFG_EXT_HT_CAP_INFO, &nCfgValue) !=