diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index e21b3a854c4b..1ab1ffe471b8 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -349,6 +349,9 @@ static void mlme_init_generic_cfg(struct wlan_objmgr_psoc *psoc, gen->debug_packet_log = cfg_get(psoc, CFG_ENABLE_DEBUG_PACKET_LOG); mlme_init_pmf_cfg(psoc, gen); mlme_init_lpass_support_cfg(psoc, gen); + + gen->enabled_11h = cfg_default(CFG_11H_SUPPORT_ENABLED); + gen->enabled_11d = cfg_default(CFG_11D_SUPPORT_ENABLED); } static void mlme_init_edca_ani_cfg(struct wlan_mlme_edca_params *edca_params) @@ -806,6 +809,11 @@ static void mlme_init_vht_cap_cfg(struct wlan_objmgr_psoc *psoc, if (vht_cap_info->enable2x2 && vht_cap_info->su_bformer) vht_cap_info->num_soundingdim = NUM_OF_SOUNDING_DIMENSIONS; + + vht_cap_info->tx_bf_cap = cfg_default(CFG_TX_BF_CAP); + vht_cap_info->as_cap = cfg_default(CFG_AS_CAP); + vht_cap_info->disable_ldpc_with_txbf_ap = + cfg_get(psoc, CFG_DISABLE_LDPC_WITH_TXBF_AP); } static void mlme_init_rates_in_cfg(struct wlan_objmgr_psoc *psoc, diff --git a/components/mlme/dispatcher/inc/cfg_mlme_generic.h b/components/mlme/dispatcher/inc/cfg_mlme_generic.h index 08180bcb9f5e..0d60a3ffbea4 100644 --- a/components/mlme/dispatcher/inc/cfg_mlme_generic.h +++ b/components/mlme/dispatcher/inc/cfg_mlme_generic.h @@ -94,6 +94,50 @@ 1, \ "RTT3 enable/disable info") +/* + * + * g11hSupportEnabled - Enable 11h support + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This ini is used to set 11h support flag + * + * Related: None + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_11H_SUPPORT_ENABLED CFG_INI_BOOL( \ + "g11hSupportEnabled", \ + 1, \ + "11h Enable Flag") + +/* + * + * g11dSupportEnabled - Enable 11d support + * @Min: 0 + * @Max: 1 + * @Default: 1 + * + * This ini is used to set 11d support flag + * + * Related: None + * + * Supported Feature: STA + * + * Usage: Internal/External + * + * + */ +#define CFG_11D_SUPPORT_ENABLED CFG_INI_BOOL( \ + "g11dSupportEnabled", \ + 1, \ + "11d Enable Flag") + /* * * BandCapability - Preferred band (0: Both, 1: 2.4G only, 2: 5G only) @@ -494,6 +538,8 @@ CFG(CFG_PMF_SA_QUERY_RETRY_INTERVAL) \ CFG(CFG_ENABLE_RTT_MAC_RANDOMIZATION) \ CFG(CFG_RTT3_ENABLE) \ + CFG(CFG_11H_SUPPORT_ENABLED) \ + CFG(CFG_11D_SUPPORT_ENABLED) \ CFG(CFG_BAND_CAPABILITY) \ CFG(CFG_PREVENT_LINK_DOWN) \ CFG(CFG_SELECT_5GHZ_MARGIN) \ diff --git a/components/mlme/dispatcher/inc/cfg_mlme_vht_caps.h b/components/mlme/dispatcher/inc/cfg_mlme_vht_caps.h index ba4ef5f5d846..dc664ccb7885 100644 --- a/components/mlme/dispatcher/inc/cfg_mlme_vht_caps.h +++ b/components/mlme/dispatcher/inc/cfg_mlme_vht_caps.h @@ -126,6 +126,42 @@ CFG_VALUE_OR_DEFAULT, \ "VHT TX SUPP DATA RATE") +#define CFG_TX_BF_CAP CFG_INT( \ + "tx_bf_cap", \ + 0, \ + -1, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "TX BF CAP") + +#define CFG_AS_CAP CFG_UINT( \ + "as_cap", \ + 0, \ + 255, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "AS CAP") + +/* + * + * gDisableLDPCWithTxbfAP - Disable LDPC with tx bf AP + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * Related: NA + * + * Supported Feature: 11AC + * + * Usage: External + * + * + */ +#define CFG_DISABLE_LDPC_WITH_TXBF_AP CFG_INI_BOOL( \ + "gDisableLDPCWithTxbfAP", \ + 0, \ + "Disable LDPC with tx bf AP") + /* * * gTxBFEnable - Enables SU beamformee caps @@ -591,6 +627,9 @@ CFG(CFG_VHT_AMPDU_LEN_EXPONENT) \ CFG(CFG_VHT_MPDU_LEN) \ CFG(CFG_VHT_ENABLE_TXBF_SAP_MODE) \ - CFG(CFG_ENABLE_SUBFEE_IN_VENDOR_VHTIE) + CFG(CFG_ENABLE_SUBFEE_IN_VENDOR_VHTIE) \ + CFG(CFG_TX_BF_CAP) \ + CFG(CFG_AS_CAP) \ + CFG(CFG_DISABLE_LDPC_WITH_TXBF_AP) #endif /* __CFG_MLME_VHT_CAPS_H */ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_api.h b/components/mlme/dispatcher/inc/wlan_mlme_api.h index 34dd11b67a9d..9b6fd49b98f6 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_api.h @@ -1857,4 +1857,41 @@ QDF_STATUS wlan_mlme_is_sap_uapsd_enabled(struct wlan_objmgr_psoc *psoc, */ QDF_STATUS wlan_mlme_set_sap_uapsd_flag(struct wlan_objmgr_psoc *psoc, bool value); + +/** + * wlan_mlme_is_11h_enabled() - Get the 11h flag + * @psoc: psoc context + * + * Return: QDF_STATUS + */ +QDF_STATUS +wlan_mlme_is_11h_enabled(struct wlan_objmgr_psoc *psoc, bool *value); + +/** + * wlan_mlme_set_11h_enabled() - Set the 11h flag + * @psoc: psoc context + * + * Return: QDF_STATUS + */ +QDF_STATUS +wlan_mlme_set_11h_enabled(struct wlan_objmgr_psoc *psoc, bool value); + +/** + * wlan_mlme_is_11d_enabled() - Get the 11d flag + * @psoc: psoc context + * + * Return: QDF_STATUS + */ +QDF_STATUS +wlan_mlme_is_11d_enabled(struct wlan_objmgr_psoc *psoc, bool *value); + +/** + * wlan_mlme_set_11d_enabled() - Set the 11h flag + * @psoc: psoc context + * + * Return: QDF_STATUS + */ +QDF_STATUS +wlan_mlme_set_11d_enabled(struct wlan_objmgr_psoc *psoc, bool value); + #endif /* _WLAN_MLME_API_H_ */ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index 3a59cd7fa9a2..65df894c2998 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -646,6 +646,9 @@ struct wlan_mlme_mbo { * @ampdu_len: To handle maximum receive AMPDU ampdu len * @tx_bfee_sap: enable tx bfee SAp * @subfee_vendor_vhtie: enable subfee vendor vht ie + * @tx_bf_cap: Transmit bf capability + * @as_cap: Antenna sharing capability info + * @disable_ldpc_with_txbf_ap: Disable ldpc capability */ struct mlme_vht_capabilities_info { uint8_t supp_chan_width; @@ -686,6 +689,9 @@ struct mlme_vht_capabilities_info { uint8_t ampdu_len; bool tx_bfee_sap; bool vendor_vhtie; + uint8_t tx_bf_cap; + uint8_t as_cap; + bool disable_ldpc_with_txbf_ap; }; /** @@ -902,6 +908,8 @@ struct wlan_mlme_chainmask { * @optimize_ca_event: Enable/Disable Optimization of CA events * @fw_timeout_crash: Enable/Disable FW Timeout Crash * * @debug_packet_log: Debug packet log flags + * @enabled_11h: enable 11h flag + * @enabled_11d: enable 11d flag */ struct wlan_mlme_generic { enum band_info band_capability; @@ -925,6 +933,8 @@ struct wlan_mlme_generic { bool optimize_ca_event; bool fw_timeout_crash; uint8_t debug_packet_log; + bool enabled_11h; + bool enabled_11d; }; /* diff --git a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h index 908d9bf768c6..ab08b1abaafc 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h @@ -2358,6 +2358,66 @@ ucfg_mlme_update_nss_vht_cap(struct wlan_objmgr_psoc *psoc) return mlme_update_nss_vht_cap(psoc); } +/** + * ucfg_mlme_is_11h_enabled() - Get 11h flag + * @psoc: pointer to psoc object + * @value: Value that needs to be set from the caller + * + * Inline UCFG API to be used by HDD/OSIF callers + * + * Return: QDF Status + */ +static inline QDF_STATUS +ucfg_mlme_is_11h_enabled(struct wlan_objmgr_psoc *psoc, bool *value) +{ + return wlan_mlme_is_11h_enabled(psoc, value); +} + +/** + * ucfg_mlme_set_11h_enabled() - Set 11h flag + * @psoc: pointer to psoc object + * @value: Value that needs to be set from the caller + * + * Inline UCFG API to be used by HDD/OSIF callers + * + * Return: QDF Status + */ +static inline QDF_STATUS +ucfg_mlme_set_11h_enabled(struct wlan_objmgr_psoc *psoc, bool value) +{ + return wlan_mlme_set_11h_enabled(psoc, value); +} + +/** + * ucfg_mlme_is_11d_enabled() - Get 11d flag + * @psoc: pointer to psoc object + * @value: Value that needs to be set from the caller + * + * Inline UCFG API to be used by HDD/OSIF callers + * + * Return: QDF Status + */ +static inline QDF_STATUS +ucfg_mlme_is_11d_enabled(struct wlan_objmgr_psoc *psoc, bool *value) +{ + return wlan_mlme_is_11d_enabled(psoc, value); +} + +/** + * ucfg_mlme_set_11d_enabled() - Set 11d flag + * @psoc: pointer to psoc object + * @value: Value that needs to be set from the caller + * + * Inline UCFG API to be used by HDD/OSIF callers + * + * Return: QDF Status + */ +static inline QDF_STATUS +ucfg_mlme_set_11d_enabled(struct wlan_objmgr_psoc *psoc, bool value) +{ + return wlan_mlme_set_11d_enabled(psoc, value); +} + /** * ucfg_mlme_get_opr_rate_set() - Get operational rate set * @psoc: pointer to psoc object diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index 6bd024531e4a..093b8a6da706 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -2351,6 +2351,69 @@ QDF_STATUS mlme_set_wep_key(struct wlan_mlme_wep_cfg *wep_params, return QDF_STATUS_SUCCESS; } +QDF_STATUS +wlan_mlme_is_11h_enabled(struct wlan_objmgr_psoc *psoc, bool *value) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + mlme_err("Failed to get MLME Obj"); + return QDF_STATUS_E_FAILURE; + } + + *value = mlme_obj->cfg.gen.enabled_11h; + + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS +wlan_mlme_set_11h_enabled(struct wlan_objmgr_psoc *psoc, bool value) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + mlme_err("Failed to get MLME Obj"); + return QDF_STATUS_E_FAILURE; + } + + mlme_obj->cfg.gen.enabled_11h = value; + + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS +wlan_mlme_is_11d_enabled(struct wlan_objmgr_psoc *psoc, bool *value) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + mlme_err("Failed to get MLME Obj"); + return QDF_STATUS_E_FAILURE; + } + + *value = mlme_obj->cfg.gen.enabled_11d; + + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS +wlan_mlme_set_11d_enabled(struct wlan_objmgr_psoc *psoc, bool value) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + mlme_err("Failed to get MLME Obj"); + return QDF_STATUS_E_FAILURE; + } + + mlme_obj->cfg.gen.enabled_11d = value; + + return QDF_STATUS_SUCCESS; +} QDF_STATUS wlan_mlme_cfg_set_vht_chan_width(struct wlan_objmgr_psoc *psoc, uint8_t value) { diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index 242bf9ad7988..72cf8283fefb 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -86,28 +86,6 @@ struct hdd_context; #define CFG_ENABLE_CONNECTED_SCAN_MAX (1) #define CFG_ENABLE_CONNECTED_SCAN_DEFAULT (1) -/* - * - * g11dSupportEnabled - Enable/Disable 11d support - * @Min: 0 - * @Max: 1 - * @Default: 1 - * - * This ini is used to enable or disable 11d support. - * - * Related: None - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ -#define CFG_11D_SUPPORT_ENABLED_NAME "g11dSupportEnabled" -#define CFG_11D_SUPPORT_ENABLED_MIN WNI_CFG_11D_ENABLED_STAMIN -#define CFG_11D_SUPPORT_ENABLED_MAX WNI_CFG_11D_ENABLED_STAMAX -#define CFG_11D_SUPPORT_ENABLED_DEFAULT WNI_CFG_11D_ENABLED_STADEF /* Default is ON */ - /* * * enable_11d_in_world_mode - enable 11d in world mode @@ -127,29 +105,6 @@ struct hdd_context; #define CFG_ENABLE_11D_IN_WORLD_MODE_MAX (1) #define CFG_ENABLE_11D_IN_WORLD_MODE_DEFAULT (0) -/* - * - * g11hSupportEnabled - Enable/Disable 11h support - * @Min: 0 - * @Max: 1 - * @Default: 1 - * - * This ini is used to enable or disable 11h support. - * - * Related: None - * - * Supported Feature: STA - * - * Usage: Internal/External - * - * - */ - -#define CFG_11H_SUPPORT_ENABLED_NAME "g11hSupportEnabled" -#define CFG_11H_SUPPORT_ENABLED_MIN (0) -#define CFG_11H_SUPPORT_ENABLED_MAX (1) -#define CFG_11H_SUPPORT_ENABLED_DEFAULT (1) /* Default is ON */ - #define CFG_REG_CHANGE_DEF_COUNTRY_NAME "gRegulatoryChangeCountry" #define CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT (0) #define CFG_REG_CHANGE_DEF_COUNTRY_MIN (0) @@ -2744,11 +2699,6 @@ enum hdd_link_speed_rpt_type { #define CFG_ENABLE_TX_STBC_MAX (1) #define CFG_ENABLE_TX_STBC_DEFAULT (0) -#define CFG_DISABLE_LDPC_WITH_TXBF_AP "gDisableLDPCWithTxbfAP" -#define CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN (0) -#define CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX (1) -#define CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT (0) - /* * * gEnableSNRMonitoring - Enables SNR Monitoring @@ -4914,8 +4864,6 @@ struct hdd_config { /* Config parameters */ bool enable_connected_scan; - bool Is11dSupportEnabled; - bool Is11hSupportEnabled; char PowerUsageControl[4]; bool fSupplicantCountryCodeHasPriority; bool fIsImpsEnabled; @@ -5042,7 +4990,6 @@ struct hdd_config { bool enableFirstScan2GOnly; bool prevent_link_down; uint8_t scanAgingTimeout; - uint8_t disableLDPCWithTxbfAP; bool fEnableSNRMonitoring; /*PNO related parameters */ #ifdef FEATURE_WLAN_SCAN_PNO diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c index c43d904e28c4..e5d1a1912b78 100644 --- a/core/hdd/src/wlan_hdd_cfg.c +++ b/core/hdd/src/wlan_hdd_cfg.c @@ -56,21 +56,6 @@ struct reg_table_entry g_registry_table[] = { CFG_ENABLE_CONNECTED_SCAN_MIN, CFG_ENABLE_CONNECTED_SCAN_MAX), - REG_VARIABLE(CFG_11D_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer, - struct hdd_config, Is11dSupportEnabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK, - CFG_11D_SUPPORT_ENABLED_DEFAULT, - CFG_11D_SUPPORT_ENABLED_MIN, - CFG_11D_SUPPORT_ENABLED_MAX), - - REG_VARIABLE(CFG_11H_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer, - struct hdd_config, Is11hSupportEnabled, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK, - CFG_11H_SUPPORT_ENABLED_DEFAULT, - CFG_11H_SUPPORT_ENABLED_MIN, - CFG_11H_SUPPORT_ENABLED_MAX), - - REG_VARIABLE(CFG_ENABLE_IMPS_NAME, WLAN_PARAM_Integer, struct hdd_config, fIsImpsEnabled, VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, @@ -515,13 +500,6 @@ struct reg_table_entry g_registry_table[] = { CFG_IBSS_ADHOC_CHANNEL_24GHZ_MIN, CFG_IBSS_ADHOC_CHANNEL_24GHZ_MAX), - REG_VARIABLE(CFG_DISABLE_LDPC_WITH_TXBF_AP, WLAN_PARAM_Integer, - struct hdd_config, disableLDPCWithTxbfAP, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT, - CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN, - CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX), - REG_VARIABLE(CFG_ENABLE_SNR_MONITORING_NAME, WLAN_PARAM_Integer, struct hdd_config, fEnableSNRMonitoring, VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK, @@ -2628,18 +2606,6 @@ bool hdd_update_config_cfg(struct hdd_context *hdd_ctx) hdd_err("Fail to pass WNI_CFG_PS_WOW_DATA_INACTIVITY_TO CFG"); } - if (sme_cfg_set_int(mac_handle, WNI_CFG_11D_ENABLED, - config->Is11dSupportEnabled) == QDF_STATUS_E_FAILURE) { - status = false; - hdd_err("Couldn't pass on WNI_CFG_11D_ENABLED to CFG"); - } - - if (sme_cfg_set_int(mac_handle, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP, - config->disableLDPCWithTxbfAP) == QDF_STATUS_E_FAILURE) { - status = false; - hdd_err("Couldn't pass on WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP to CFG"); - } - if (sme_cfg_set_int(mac_handle, WNI_CFG_IBSS_ATIM_WIN_SIZE, config->ibssATIMWinSize) == QDF_STATUS_E_FAILURE) { @@ -2818,8 +2784,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx) /* Config params obtained from the registry * To Do: set regulatory information here */ - smeConfig->csrConfig.Is11dSupportEnabled = pConfig->Is11dSupportEnabled; - smeConfig->csrConfig.phyMode = hdd_cfg_xlate_to_csr_phy_mode(pConfig->dot11Mode); @@ -2888,7 +2852,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx) smeConfig->csrConfig.AdHocChannel24 = pConfig->AdHocChannel24G; smeConfig->csrConfig.ProprietaryRatesEnabled = 0; smeConfig->csrConfig.HeartbeatThresh50 = 40; - smeConfig->csrConfig.Is11hSupportEnabled = pConfig->Is11hSupportEnabled; smeConfig->csrConfig.nTxPowerCap = pConfig->nTxPowerCap; smeConfig->csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan; diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index 9c3462c74374..f5ae08e63f46 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -9025,6 +9025,7 @@ void hdd_acs_response_timeout_handler(void *context) */ static void hdd_override_ini_config(struct hdd_context *hdd_ctx) { + QDF_STATUS status; if (0 == enable_dfs_chan_scan || 1 == enable_dfs_chan_scan) { hdd_ctx->config->enableDFSChnlScan = enable_dfs_chan_scan; @@ -9032,8 +9033,9 @@ static void hdd_override_ini_config(struct hdd_context *hdd_ctx) enable_dfs_chan_scan); } if (0 == enable_11d || 1 == enable_11d) { - hdd_ctx->config->Is11dSupportEnabled = enable_11d; - hdd_debug("Module enable_11d set to %d", enable_11d); + status = ucfg_mlme_set_11d_enabled(hdd_ctx->psoc, enable_11d); + if (!QDF_IS_STATUS_SUCCESS(status)) + hdd_err("Failed to set 11d_enable flag"); } if (hdd_ctx->config->action_oui_enable && !ucfg_action_oui_enabled()) { @@ -9814,6 +9816,7 @@ static int hdd_update_user_config(struct hdd_context *hdd_ctx) bool skip_dfs_in_p2p_search = false; uint8_t band_capability; QDF_STATUS status; + bool value = false; status = ucfg_mlme_get_band_capability(hdd_ctx->psoc, &band_capability); if (QDF_IS_STATUS_ERROR(status)) @@ -9828,10 +9831,18 @@ static int hdd_update_user_config(struct hdd_context *hdd_ctx) hdd_ctx->config->dual_mac_feature_disable; user_config->indoor_channel_support = hdd_ctx->config->indoor_channel_support; - user_config->is_11d_support_enabled = - hdd_ctx->config->Is11dSupportEnabled; - user_config->is_11h_support_enabled = - hdd_ctx->config->Is11hSupportEnabled; + + status = ucfg_mlme_is_11d_enabled(hdd_ctx->psoc, &value); + if (!QDF_IS_STATUS_SUCCESS(status)) + hdd_err("Invalid 11d_enable flag"); + user_config->is_11d_support_enabled = value; + + value = false; + status = ucfg_mlme_is_11h_enabled(hdd_ctx->psoc, &value); + if (!QDF_IS_STATUS_SUCCESS(status)) + hdd_err("Invalid 11h_enable flag"); + user_config->is_11h_support_enabled = value; + cfg_p2p_get_skip_dfs_channel_p2p_search(hdd_ctx->psoc, &skip_dfs_in_p2p_search); user_config->skip_dfs_chnl_in_p2p_search = skip_dfs_in_p2p_search; diff --git a/core/hdd/src/wlan_hdd_regulatory.c b/core/hdd/src/wlan_hdd_regulatory.c index 421d9e9c12c0..16a435d7244e 100644 --- a/core/hdd/src/wlan_hdd_regulatory.c +++ b/core/hdd/src/wlan_hdd_regulatory.c @@ -210,12 +210,17 @@ static void reg_program_config_vars(struct hdd_context *hdd_ctx, uint8_t band_capability = 0; QDF_STATUS status; bool country_priority = 0; + bool value = false; status = ucfg_mlme_get_band_capability(hdd_ctx->psoc, &band_capability); if (QDF_IS_STATUS_ERROR(status)) hdd_err("Failed to get MLME band cap, defaulting to BAND_ALL"); - config_vars->enable_11d_support = hdd_ctx->config->Is11dSupportEnabled; + status = ucfg_mlme_is_11d_enabled(hdd_ctx->psoc, &value); + if (!QDF_IS_STATUS_SUCCESS(status)) + hdd_err("Invalid 11d_enable flag"); + config_vars->enable_11d_support = value; + config_vars->scan_11d_interval = hdd_ctx->config->scan_11d_interval; ucfg_mlme_get_sap_country_priority(hdd_ctx->psoc, &country_priority); diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c index 5aa45bb87e6e..e6a0bfb5b4da 100644 --- a/core/hdd/src/wlan_hdd_wext.c +++ b/core/hdd/src/wlan_hdd_wext.c @@ -3943,11 +3943,13 @@ int wlan_hdd_update_phymode(struct hdd_adapter *adapter, int new_phymode) goto free; } - if (curr_band == BAND_2G) - sme_config->csrConfig.Is11hSupportEnabled = 0; - else - sme_config->csrConfig.Is11hSupportEnabled = - phddctx->config->Is11hSupportEnabled; + if (curr_band == BAND_2G) { + status = ucfg_mlme_set_11h_enabled(phddctx->psoc, 0); + if (!QDF_IS_STATUS_SUCCESS(status)) { + hdd_err("Failed to set 11h_enable flag"); + goto free; + } + } if (curr_band == BAND_2G) sme_config->csrConfig.channelBondingMode24GHz = chwidth; else if (curr_band == BAND_5G) @@ -4085,9 +4087,9 @@ free_config: static int hdd_we_set_11d_state(struct hdd_adapter *adapter, int state_11d) { struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); - tSmeConfigParams *sme_config; bool enable_11d; mac_handle_t mac_handle = hdd_ctx->mac_handle; + QDF_STATUS status; if (!mac_handle) return -EINVAL; @@ -4103,17 +4105,9 @@ static int hdd_we_set_11d_state(struct hdd_adapter *adapter, int state_11d) return -EINVAL; } - sme_config = qdf_mem_malloc(sizeof(*sme_config)); - if (!sme_config) { - hdd_err("failed to allocate memory for sme_config"); - return -ENOMEM; - } - - sme_get_config_param(mac_handle, sme_config); - sme_config->csrConfig.Is11dSupportEnabled = enable_11d; - sme_update_config(mac_handle, sme_config); - - qdf_mem_free(sme_config); + status = ucfg_mlme_set_11d_enabled(hdd_ctx->psoc, enable_11d); + if (!QDF_IS_STATUS_SUCCESS(status)) + hdd_err("Invalid 11d_enable flag"); hdd_debug("11D state=%d", enable_11d); @@ -5654,10 +5648,10 @@ static int __iw_setnone_getint(struct net_device *dev, switch (value[0]) { case WE_GET_11D_STATE: { - sme_get_config_param(mac_handle, sme_config); - - *value = sme_config->csrConfig.Is11dSupportEnabled; - + status = ucfg_mlme_is_11d_enabled(hdd_ctx->psoc, &bval); + if (!QDF_IS_STATUS_SUCCESS(status)) + hdd_err("Invalid 11d_enable flag"); + *value = bval; hdd_debug("11D state=%d!!", *value); break; diff --git a/core/mac/inc/ani_global.h b/core/mac/inc/ani_global.h index d2149c09d4f9..4a4b0cb1b4f5 100644 --- a/core/mac/inc/ani_global.h +++ b/core/mac/inc/ani_global.h @@ -533,7 +533,6 @@ typedef struct sAniSirLim { /* admission control policy information */ tLimAdmitPolicyInfo admitPolicyInfo; qdf_mutex_t lkPeGlobalLock; - uint8_t disableLDPCWithTxbfAP; #ifdef FEATURE_WLAN_TDLS uint8_t gLimTDLSBufStaEnabled; uint8_t gLimTDLSUapsdMask; diff --git a/core/mac/inc/wni_cfg.h b/core/mac/inc/wni_cfg.h index d1619fde4354..5cf362342f4f 100644 --- a/core/mac/inc/wni_cfg.h +++ b/core/mac/inc/wni_cfg.h @@ -30,19 +30,14 @@ enum { WNI_CFG_DOT11_MODE, WNI_CFG_VALID_CHANNEL_LIST, WNI_CFG_APSD_ENABLED, - WNI_CFG_11D_ENABLED, WNI_CFG_CURRENT_TX_POWER_LEVEL, WNI_CFG_COUNTRY_CODE, - WNI_CFG_11H_ENABLED, WNI_CFG_LOCAL_POWER_CONSTRAINT, WNI_CFG_SCAN_CONTROL_LIST, - WNI_CFG_TX_BF_CAP, - WNI_CFG_AS_CAP, WNI_CFG_SCAN_IN_POWERSAVE, WNI_CFG_IBSS_AUTO_BSSID, WNI_CFG_WPS_UUID, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED, - WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP, WNI_CFG_IBSS_ATIM_WIN_SIZE, WNI_CFG_PS_WOW_DATA_INACTIVITY_TIMEOUT, WNI_CFG_OBSS_DETECTION_OFFLOAD, diff --git a/core/mac/src/cfg/cfg_api.c b/core/mac/src/cfg/cfg_api.c index 31f2661b6581..46674a43aed1 100644 --- a/core/mac/src/cfg/cfg_api.c +++ b/core/mac/src/cfg/cfg_api.c @@ -710,12 +710,7 @@ QDF_STATUS cfg_get_capability_info(struct mac_context *mac, uint16_t *pCap, /* Spectrum Management bit */ if (!LIM_IS_IBSS_ROLE(pe_session) && pe_session->lim11hEnable) { - if (wlan_cfg_get_int(mac, WNI_CFG_11H_ENABLED, &val) != - QDF_STATUS_SUCCESS) { - pe_err("cfg get WNI_CFG_11H_ENABLED failed"); - return QDF_STATUS_E_FAILURE; - } - if (val) + if (mac->mlme_cfg->gen.enabled_11h) pCapInfo->spectrumMgt = 1; } /* QoS bit */ diff --git a/core/mac/src/cfg/cfg_param_name.c b/core/mac/src/cfg/cfg_param_name.c index 1c3b72e83f2c..a7c57043326b 100644 --- a/core/mac/src/cfg/cfg_param_name.c +++ b/core/mac/src/cfg/cfg_param_name.c @@ -45,18 +45,13 @@ const char *cfg_get_string(uint16_t cfg_id) CASE_RETURN_STRING(WNI_CFG_DOT11_MODE); CASE_RETURN_STRING(WNI_CFG_VALID_CHANNEL_LIST); CASE_RETURN_STRING(WNI_CFG_APSD_ENABLED); - CASE_RETURN_STRING(WNI_CFG_11D_ENABLED); CASE_RETURN_STRING(WNI_CFG_CURRENT_TX_POWER_LEVEL); CASE_RETURN_STRING(WNI_CFG_COUNTRY_CODE); - CASE_RETURN_STRING(WNI_CFG_11H_ENABLED); CASE_RETURN_STRING(WNI_CFG_LOCAL_POWER_CONSTRAINT); CASE_RETURN_STRING(WNI_CFG_SCAN_CONTROL_LIST); - CASE_RETURN_STRING(WNI_CFG_TX_BF_CAP); - CASE_RETURN_STRING(WNI_CFG_AS_CAP); CASE_RETURN_STRING(WNI_CFG_IBSS_AUTO_BSSID); CASE_RETURN_STRING(WNI_CFG_WPS_UUID); CASE_RETURN_STRING(WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED); - CASE_RETURN_STRING(WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP); CASE_RETURN_STRING(WNI_CFG_IBSS_ATIM_WIN_SIZE); CASE_RETURN_STRING(WNI_CFG_PS_WOW_DATA_INACTIVITY_TIMEOUT); CASE_RETURN_STRING(WNI_CFG_OBSS_DETECTION_OFFLOAD); diff --git a/core/mac/src/cfg/cfg_proc_msg.c b/core/mac/src/cfg/cfg_proc_msg.c index c4690ee08a85..b13a53cb514d 100644 --- a/core/mac/src/cfg/cfg_proc_msg.c +++ b/core/mac/src/cfg/cfg_proc_msg.c @@ -54,12 +54,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = { WNI_CFG_APSD_ENABLED_STAMIN, WNI_CFG_APSD_ENABLED_STAMAX, WNI_CFG_APSD_ENABLED_STADEF}, - {WNI_CFG_11D_ENABLED, - CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | - CFG_CTL_RESTART, - WNI_CFG_11D_ENABLED_STAMIN, - WNI_CFG_11D_ENABLED_STAMAX, - WNI_CFG_11D_ENABLED_STADEF}, {WNI_CFG_CURRENT_TX_POWER_LEVEL, CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT, WNI_CFG_CURRENT_TX_POWER_LEVEL_STAMIN, @@ -68,12 +62,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = { {WNI_CFG_COUNTRY_CODE, CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_NTF_SCH, 0, 0, 0}, - {WNI_CFG_11H_ENABLED, - CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | - CFG_CTL_RESTART, - WNI_CFG_11H_ENABLED_STAMIN, - WNI_CFG_11H_ENABLED_STAMAX, - WNI_CFG_11H_ENABLED_STADEF}, {WNI_CFG_LOCAL_POWER_CONSTRAINT, CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_RESTART, @@ -84,18 +72,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = { CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_RESTART | CFG_CTL_NTF_LIM, 0, 0, 0}, - {WNI_CFG_TX_BF_CAP, - CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_INT | CFG_CTL_RESTART | - CFG_CTL_NTF_LIM, - WNI_CFG_TX_BF_CAP_STAMIN, - 4294967295u, - WNI_CFG_TX_BF_CAP_STADEF}, - {WNI_CFG_AS_CAP, - CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_SAVE | - CFG_CTL_RESTART | CFG_CTL_NTF_LIM, - WNI_CFG_AS_CAP_STAMIN, - WNI_CFG_AS_CAP_STAMAX, - WNI_CFG_AS_CAP_STADEF}, {WNI_CFG_SCAN_IN_POWERSAVE, CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT | CFG_CTL_NTF_LIM, @@ -115,11 +91,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = { WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STAMIN, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STAMAX, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STADEF}, - {WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP, - CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT, - WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STAMIN, - WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STAMAX, - WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STADEF}, {WNI_CFG_IBSS_ATIM_WIN_SIZE, CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT, WNI_CFG_IBSS_ATIM_WIN_SIZE_STAMIN, diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c index ec1fe0af150c..755c03ff78b6 100644 --- a/core/mac/src/pe/lim/lim_api.c +++ b/core/mac/src/pe/lim/lim_api.c @@ -301,12 +301,6 @@ static QDF_STATUS __lim_init_config(struct mac_context *mac) /* This was initially done after resume notification from HAL. Now, DAL is started before PE so this can be done here */ handle_ht_capabilityand_ht_info(mac, NULL); - if (QDF_STATUS_SUCCESS != - wlan_cfg_get_int(mac, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP, - (uint32_t *) &mac->lim.disableLDPCWithTxbfAP)) { - pe_err("cfg get disableLDPCWithTxbfAP failed"); - return QDF_STATUS_E_FAILURE; - } #ifdef FEATURE_WLAN_TDLS status = cfg_tdls_get_buffer_sta_enable(mac->psoc, &valb); if (QDF_STATUS_SUCCESS != status) { diff --git a/core/mac/src/pe/lim/lim_assoc_utils.c b/core/mac/src/pe/lim/lim_assoc_utils.c index d1376cc3d470..0bc4c7be15aa 100644 --- a/core/mac/src/pe/lim/lim_assoc_utils.c +++ b/core/mac/src/pe/lim/lim_assoc_utils.c @@ -1341,20 +1341,21 @@ QDF_STATUS lim_populate_vht_mcs_set(struct mac_context *mac_ctx, uint32_t self_sta_dot11mode = 0; uint16_t mcs_map_mask = MCSMAPMASK1x1; uint16_t mcs_map_mask2x2 = 0; - struct mlme_vht_capabilities_info vht_cap_info; + struct mlme_vht_capabilities_info *vht_cap_info; wlan_cfg_get_int(mac_ctx, WNI_CFG_DOT11_MODE, &self_sta_dot11mode); if (!IS_DOT11_MODE_VHT(self_sta_dot11mode)) return QDF_STATUS_SUCCESS; - vht_cap_info = mac_ctx->mlme_cfg->vht_caps.vht_cap_info; + vht_cap_info = &mac_ctx->mlme_cfg->vht_caps.vht_cap_info; - rates->vhtRxMCSMap = (uint16_t)vht_cap_info.rx_mcs_map; - rates->vhtTxMCSMap = (uint16_t)vht_cap_info.tx_mcs_map; + rates->vhtRxMCSMap = (uint16_t)vht_cap_info->rx_mcs_map; + rates->vhtTxMCSMap = (uint16_t)vht_cap_info->tx_mcs_map; rates->vhtRxHighestDataRate = - (uint16_t)vht_cap_info.rx_supp_data_rate; - rates->vhtTxHighestDataRate = (uint16_t)vht_cap_info.tx_supp_data_rate; + (uint16_t)vht_cap_info->rx_supp_data_rate; + rates->vhtTxHighestDataRate = + (uint16_t)vht_cap_info->tx_supp_data_rate; if (NSS_1x1_MODE == nss) { rates->vhtRxMCSMap |= VHT_MCS_1x1; @@ -1364,7 +1365,7 @@ QDF_STATUS lim_populate_vht_mcs_set(struct mac_context *mac_ctx, rates->vhtRxHighestDataRate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1; if (session_entry && !session_entry->ch_width && - !vht_cap_info.enable_vht20_mcs9 && + !vht_cap_info->enable_vht20_mcs9 && ((rates->vhtRxMCSMap & VHT_1x1_MCS_MASK) == VHT_1x1_MCS9_MAP)) { DISABLE_VHT_MCS_9(rates->vhtRxMCSMap, @@ -1374,9 +1375,9 @@ QDF_STATUS lim_populate_vht_mcs_set(struct mac_context *mac_ctx, } } else { if (session_entry && !session_entry->ch_width && - !mac_ctx->mlme_cfg->vht_caps.vht_cap_info.enable_vht20_mcs9 && - ((rates->vhtRxMCSMap & VHT_2x2_MCS_MASK) == - VHT_2x2_MCS9_MAP)) { + !vht_cap_info->enable_vht20_mcs9 && + ((rates->vhtRxMCSMap & VHT_2x2_MCS_MASK) == + VHT_2x2_MCS9_MAP)) { DISABLE_VHT_MCS_9(rates->vhtRxMCSMap, NSS_2x2_MODE); DISABLE_VHT_MCS_9(rates->vhtTxMCSMap, @@ -1440,7 +1441,7 @@ QDF_STATUS lim_populate_vht_mcs_set(struct mac_context *mac_ctx, } pe_debug("enable2x2 - %d nss %d vhtRxMCSMap - %x vhtTxMCSMap - %x", - mac_ctx->mlme_cfg->vht_caps.vht_cap_info.enable2x2, nss, + vht_cap_info->enable2x2, nss, rates->vhtRxMCSMap, rates->vhtTxMCSMap); if (NULL != session_entry) { @@ -2118,6 +2119,9 @@ lim_add_sta(struct mac_context *mac_ctx, tLimIbssPeerNode *peer_node; /* for IBSS mode */ const uint8_t *p2p_ie = NULL; tDot11fIEVHTCaps vht_caps; + struct mlme_vht_capabilities_info *vht_cap_info; + + vht_cap_info = &mac_ctx->mlme_cfg->vht_caps.vht_cap_info; sir_copy_mac_addr(sta_mac, session_entry->selfMacAddr); @@ -2310,7 +2314,7 @@ lim_add_sta(struct mac_context *mac_ctx, * HT/VHT capability */ if (add_sta_params->vhtTxBFCapable - && mac_ctx->lim.disableLDPCWithTxbfAP) { + && vht_cap_info->disable_ldpc_with_txbf_ap) { add_sta_params->htLdpcCapable = 0; add_sta_params->vhtLdpcCapable = 0; } else { @@ -3577,9 +3581,9 @@ QDF_STATUS lim_sta_send_add_bss(struct mac_context *mac, tpSirAssocRsp pAssocRsp tDot11fIEVHTOperation *vht_oper = NULL; tAddStaParams *sta_context; uint32_t listen_interval = MLME_CFG_LISTEN_INTERVAL; - struct mlme_vht_capabilities_info vht_cap_info; + struct mlme_vht_capabilities_info *vht_cap_info; - vht_cap_info = mac->mlme_cfg->vht_caps.vht_cap_info; + vht_cap_info = &mac->mlme_cfg->vht_caps.vht_cap_info; /* Package SIR_HAL_ADD_BSS_REQ message parameters */ pAddBssParams = qdf_mem_malloc(sizeof(tAddBssParams)); @@ -3861,7 +3865,7 @@ QDF_STATUS lim_sta_send_add_bss(struct mac_context *mac, tpSirAssocRsp pAssocRsp pe_session->ch_width; } else { sta_context->ch_width = CH_WIDTH_20MHZ; - if (!vht_cap_info.enable_txbf_20mhz) + if (!vht_cap_info->enable_txbf_20mhz) sta_context->vhtTxBFCapable = 0; } @@ -3914,7 +3918,7 @@ QDF_STATUS lim_sta_send_add_bss(struct mac_context *mac, tpSirAssocRsp pAssocRsp pAssocRsp->HTCaps.maxRxAMPDUFactor; } if (pAddBssParams->staContext.vhtTxBFCapable - && mac->lim.disableLDPCWithTxbfAP) { + && vht_cap_info->disable_ldpc_with_txbf_ap) { pAddBssParams->staContext.htLdpcCapable = 0; pAddBssParams->staContext.vhtLdpcCapable = 0; } else { @@ -4108,9 +4112,11 @@ QDF_STATUS lim_sta_send_add_bss_pre_assoc(struct mac_context *mac, uint8_t updat tDot11fIEVHTOperation *vht_oper = NULL; tDot11fIEVHTCaps *vht_caps = NULL; uint32_t listen_interval = MLME_CFG_LISTEN_INTERVAL; - tpSirBssDescription bssDescription = &pe_session->pLimJoinReq->bssDescription; + struct mlme_vht_capabilities_info *vht_cap_info; + + vht_cap_info = &mac->mlme_cfg->vht_caps.vht_cap_info; pBeaconStruct = qdf_mem_malloc(sizeof(tSchBeaconStruct)); if (!pBeaconStruct) @@ -4425,7 +4431,7 @@ QDF_STATUS lim_sta_send_add_bss_pre_assoc(struct mac_context *mac, uint8_t updat pAddBssParams->staContext.maxAmpduSize = pBeaconStruct->HTCaps.maxRxAMPDUFactor; if (pAddBssParams->staContext.vhtTxBFCapable - && mac->lim.disableLDPCWithTxbfAP) { + && vht_cap_info->disable_ldpc_with_txbf_ap) { pAddBssParams->staContext.htLdpcCapable = 0; pAddBssParams->staContext.vhtLdpcCapable = 0; } else { diff --git a/core/mac/src/pe/lim/lim_process_cfg_updates.c b/core/mac/src/pe/lim/lim_process_cfg_updates.c index eaee1d036aa9..655a909ad605 100644 --- a/core/mac/src/pe/lim/lim_process_cfg_updates.c +++ b/core/mac/src/pe/lim/lim_process_cfg_updates.c @@ -213,7 +213,6 @@ void lim_apply_configuration(struct mac_context *mac, struct pe_session *pe_sess static void lim_update_config(struct mac_context *mac, struct pe_session *pe_session) { - uint32_t val; bool enabled; pe_session->beaconParams.fShortPreamble = @@ -244,9 +243,7 @@ static void lim_update_config(struct mac_context *mac, struct pe_session *pe_ses if (pe_session->limWsmEnabled && LIM_IS_AP_ROLE(pe_session)) pe_session->limHcfEnabled = 1; - if (wlan_cfg_get_int(mac, WNI_CFG_11D_ENABLED, &val) != QDF_STATUS_SUCCESS) - pe_err("cfg get 11d enabled failed"); - pe_session->lim11dEnabled = (val) ? 1 : 0; + pe_session->lim11dEnabled = mac->mlme_cfg->gen.enabled_11d ? 1 : 0; pe_debug("Updated Lim shadow state based on CFG"); } diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c index 9279d5685206..66e1f48473a4 100644 --- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c +++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c @@ -1009,11 +1009,8 @@ __lim_handle_sme_start_bss_request(struct mac_context *mac_ctx, uint32_t *msg_bu if (mlm_start_req->bssType != eSIR_IBSS_MODE && (CHAN_HOP_ALL_BANDS_ENABLE || BAND_5G == session->limRFBand)) { - if (wlan_cfg_get_int(mac_ctx, - WNI_CFG_11H_ENABLED, &val) != QDF_STATUS_SUCCESS) - pe_err("Fail to get WNI_CFG_11H_ENABLED"); - else - session->lim11hEnable = val; + session->lim11hEnable = + mac_ctx->mlme_cfg->gen.enabled_11h; if (session->lim11hEnable && (eSIR_INFRA_AP_MODE == @@ -1711,19 +1708,11 @@ __lim_process_sme_join_req(struct mac_context *mac_ctx, uint32_t *msg_buf) lim_get_rf_band(session->currentOperChannel); /* Initialize 11h Enable Flag */ - if (BAND_5G == session->limRFBand) { - if (wlan_cfg_get_int(mac_ctx, WNI_CFG_11H_ENABLED, - &val) != QDF_STATUS_SUCCESS) { - pe_err("Fail to get WNI_CFG_11H_ENABLED"); - session->lim11hEnable = - WNI_CFG_11H_ENABLED_STADEF; - } else { - session->lim11hEnable = val; - } - } else { + if (session->limRFBand == BAND_5G) + session->lim11hEnable = + mac_ctx->mlme_cfg->gen.enabled_11h; + else session->lim11hEnable = 0; - } - /* * To care of the scenario when STA transitions from * IBSS to Infrastructure mode. @@ -5220,7 +5209,6 @@ static void lim_process_sme_channel_change_request(struct mac_context *mac_ctx, struct pe_session *session_entry; uint8_t session_id; /* PE session_id */ int8_t max_tx_pwr; - uint32_t val = 0; if (msg_buf == NULL) { pe_err("msg_buf is NULL"); @@ -5291,13 +5279,12 @@ static void lim_process_sme_channel_change_request(struct mac_context *mac_ctx, /* Initialize 11h Enable Flag */ if (CHAN_HOP_ALL_BANDS_ENABLE || - BAND_5G == session_entry->limRFBand) { - if (wlan_cfg_get_int(mac_ctx, WNI_CFG_11H_ENABLED, &val) != - QDF_STATUS_SUCCESS) - pe_err("Fail to get WNI_CFG_11H_ENABLED"); - } + session_entry->limRFBand == BAND_5G) + session_entry->lim11hEnable = + mac_ctx->mlme_cfg->gen.enabled_11h; + else + session_entry->lim11hEnable = 0; - session_entry->lim11hEnable = val; session_entry->dot11mode = ch_change_req->dot11mode; session_entry->nwType = ch_change_req->nw_type; qdf_mem_copy(&session_entry->rateSet, diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c index 2f189383b856..93a723f70ac7 100644 --- a/core/mac/src/pe/lim/lim_process_tdls.c +++ b/core/mac/src/pe/lim/lim_process_tdls.c @@ -699,9 +699,9 @@ static void populate_dot11f_tdls_ht_vht_cap(struct mac_context *mac, { uint8_t nss; qdf_size_t val_len; - struct mlme_vht_capabilities_info vht_cap_info; + struct mlme_vht_capabilities_info *vht_cap_info; - vht_cap_info = mac->mlme_cfg->vht_caps.vht_cap_info; + vht_cap_info = &mac->mlme_cfg->vht_caps.vht_cap_info; if (IS_5G_CH(pe_session->currentOperChannel)) nss = mac->vdev_type_nss_5g.tdls; @@ -741,7 +741,7 @@ static void populate_dot11f_tdls_ht_vht_cap(struct mac_context *mac, pe_debug("HT present: %hu, Chan Width: %hu", htCap->present, htCap->supportedChannelWidthSet); if (((pe_session->currentOperChannel <= SIR_11B_CHANNEL_END) && - mac->mlme_cfg->vht_caps.vht_cap_info.b24ghz_band) || + vht_cap_info->b24ghz_band) || (pe_session->currentOperChannel >= SIR_11B_CHANNEL_END)) { if (IS_DOT11_MODE_VHT(selfDot11Mode) && IS_FEATURE_SUPPORTED_BY_FW(DOT11AC)) { @@ -763,12 +763,12 @@ static void populate_dot11f_tdls_ht_vht_cap(struct mac_context *mac, vhtCap->muBeamformeeCap = 0; vhtCap->muBeamformerCap = 0; - vhtCap->rxMCSMap = vht_cap_info.rx_mcs_map; + vhtCap->rxMCSMap = vht_cap_info->rx_mcs_map; vhtCap->rxHighSupDataRate = - vht_cap_info.rx_supp_data_rate; - vhtCap->txMCSMap = vht_cap_info.tx_mcs_map; - vhtCap->txSupDataRate = vht_cap_info.tx_supp_data_rate; + vht_cap_info->rx_supp_data_rate; + vhtCap->txMCSMap = vht_cap_info->tx_mcs_map; + vhtCap->txSupDataRate = vht_cap_info->tx_supp_data_rate; if (nss == NSS_1x1_MODE) { vhtCap->txMCSMap |= DISABLE_NSS2_MCS; vhtCap->rxMCSMap |= DISABLE_NSS2_MCS; diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c index a4f007b3aad9..2db97873b9d1 100644 --- a/core/mac/src/pe/lim/lim_utils.c +++ b/core/mac/src/pe/lim/lim_utils.c @@ -2482,9 +2482,11 @@ uint8_t lim_get_ht_capability(struct mac_context *mac, { uint8_t retVal = 0; uint8_t *ptr; - uint32_t cfgValue; tSirMacTxBFCapabilityInfo macTxBFCapabilityInfo = { 0 }; tSirMacASCapabilityInfo macASCapabilityInfo = { 0 }; + struct mlme_vht_capabilities_info *vht_cap_info; + + vht_cap_info = &mac->mlme_cfg->vht_caps.vht_cap_info; /* */ /* Determine which CFG to read from. Not ALL of the HT */ @@ -2493,19 +2495,13 @@ uint8_t lim_get_ht_capability(struct mac_context *mac, /* */ if (htCap >= eHT_ANTENNA_SELECTION && htCap < eHT_SI_GRANULARITY) { /* Get Antenna Seletion HT Capabilities */ - if (QDF_STATUS_SUCCESS != - wlan_cfg_get_int(mac, WNI_CFG_AS_CAP, &cfgValue)) - cfgValue = 0; ptr = (uint8_t *) &macASCapabilityInfo; - *((uint8_t *) ptr) = (uint8_t) (cfgValue & 0xff); + *((uint8_t *)ptr) = (uint8_t)(vht_cap_info->as_cap & 0xff); } else if (htCap >= eHT_TX_BEAMFORMING && htCap < eHT_ANTENNA_SELECTION) { /* Get Transmit Beam Forming HT Capabilities */ - if (QDF_STATUS_SUCCESS != - wlan_cfg_get_int(mac, WNI_CFG_TX_BF_CAP, &cfgValue)) - cfgValue = 0; ptr = (uint8_t *)&macTxBFCapabilityInfo; - *((uint32_t *)ptr) = (uint32_t)(cfgValue); + *((uint32_t *)ptr) = (uint32_t)(vht_cap_info->tx_bf_cap); } switch (htCap) { 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 73d9fce5d0de..e670b610cb6d 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 @@ -608,8 +608,6 @@ QDF_STATUS populate_dot11f_ht_caps(struct mac_context *mac, struct pe_session *pe_session, tDot11fIEHTCaps *pDot11f) { - uint32_t nCfgValue; - uint8_t nCfgValue8; qdf_size_t ncfglen; QDF_STATUS nSirStatus; uint8_t disable_high_ht_mcs_2x2 = 0; @@ -617,8 +615,10 @@ populate_dot11f_ht_caps(struct mac_context *mac, tSirMacTxBFCapabilityInfo *pTxBFCapabilityInfo; tSirMacASCapabilityInfo *pASCapabilityInfo; struct mlme_ht_capabilities_info *ht_cap_info; + struct mlme_vht_capabilities_info *vht_cap_info; ht_cap_info = &mac->mlme_cfg->ht_caps.ht_cap_info; + vht_cap_info = &mac->mlme_cfg->vht_caps.vht_cap_info; pDot11f->mimoPowerSave = ht_cap_info->mimo_power_save; pDot11f->greenField = ht_cap_info->green_field; @@ -707,9 +707,8 @@ populate_dot11f_ht_caps(struct mac_context *mac, pDot11f->mcsFeedback = mac->mlme_cfg->ht_caps.ext_cap_info.mcs_feedback; - CFG_GET_INT(nSirStatus, mac, WNI_CFG_TX_BF_CAP, nCfgValue); - - pTxBFCapabilityInfo = (tSirMacTxBFCapabilityInfo *) &nCfgValue; + pTxBFCapabilityInfo = + (tSirMacTxBFCapabilityInfo *)&vht_cap_info->tx_bf_cap; pDot11f->txBF = pTxBFCapabilityInfo->txBF; pDot11f->rxStaggeredSounding = pTxBFCapabilityInfo->rxStaggeredSounding; pDot11f->txStaggeredSounding = pTxBFCapabilityInfo->txStaggeredSounding; @@ -732,11 +731,7 @@ populate_dot11f_ht_caps(struct mac_context *mac, pDot11f->compressedSteeringMatrixBFAntennae = pTxBFCapabilityInfo->compressedSteeringMatrixBFAntennae; - CFG_GET_INT(nSirStatus, mac, WNI_CFG_AS_CAP, nCfgValue); - - nCfgValue8 = (uint8_t) nCfgValue; - - pASCapabilityInfo = (tSirMacASCapabilityInfo *) &nCfgValue8; + pASCapabilityInfo = (tSirMacASCapabilityInfo *)&vht_cap_info->as_cap; pDot11f->antennaSelection = pASCapabilityInfo->antennaSelection; pDot11f->explicitCSIFeedbackTx = pASCapabilityInfo->explicitCSIFeedbackTx; @@ -853,20 +848,20 @@ populate_dot11f_vht_caps(struct mac_context *mac, struct pe_session *pe_session, tDot11fIEVHTCaps *pDot11f) { uint32_t nCfgValue = 0; - struct mlme_vht_capabilities_info vht_cap_info; + struct mlme_vht_capabilities_info *vht_cap_info; if (!(mac->mlme_cfg)) { pe_err("invalid mlme cfg"); return QDF_STATUS_E_FAILURE; } - vht_cap_info = mac->mlme_cfg->vht_caps.vht_cap_info; + vht_cap_info = &mac->mlme_cfg->vht_caps.vht_cap_info; pDot11f->present = 1; - nCfgValue = vht_cap_info.ampdu_len; + nCfgValue = vht_cap_info->ampdu_len; pDot11f->maxMPDULen = (nCfgValue & 0x0003); - nCfgValue = vht_cap_info.supp_chan_width; + nCfgValue = vht_cap_info->supp_chan_width; pDot11f->supportedChannelWidthSet = (nCfgValue & 0x0003); nCfgValue = 0; @@ -926,71 +921,71 @@ populate_dot11f_vht_caps(struct mac_context *mac, pDot11f->vhtLinkAdaptCap = pe_session->vht_config.vht_link_adapt; } else { - nCfgValue = vht_cap_info.ldpc_coding_cap; + nCfgValue = vht_cap_info->ldpc_coding_cap; pDot11f->ldpcCodingCap = (nCfgValue & 0x0001); - nCfgValue = vht_cap_info.short_gi_80mhz; + nCfgValue = vht_cap_info->short_gi_80mhz; pDot11f->shortGI80MHz = (nCfgValue & 0x0001); - nCfgValue = vht_cap_info.short_gi_160mhz; + nCfgValue = vht_cap_info->short_gi_160mhz; pDot11f->shortGI160and80plus80MHz = (nCfgValue & 0x0001); - nCfgValue = vht_cap_info.tx_stbc; + nCfgValue = vht_cap_info->tx_stbc; pDot11f->txSTBC = (nCfgValue & 0x0001); - nCfgValue = vht_cap_info.rx_stbc; + nCfgValue = vht_cap_info->rx_stbc; pDot11f->rxSTBC = (nCfgValue & 0x0007); - nCfgValue = vht_cap_info.su_bformee; + nCfgValue = vht_cap_info->su_bformee; pDot11f->suBeamformeeCap = (nCfgValue & 0x0001); - nCfgValue = vht_cap_info.enable_mu_bformee; + nCfgValue = vht_cap_info->enable_mu_bformee; pDot11f->muBeamformeeCap = (nCfgValue & 0x0001); - nCfgValue = vht_cap_info.su_bformer; + nCfgValue = vht_cap_info->su_bformer; pDot11f->suBeamFormerCap = (nCfgValue & 0x0001); - nCfgValue = vht_cap_info.tx_bfee_ant_supp; + nCfgValue = vht_cap_info->tx_bfee_ant_supp; pDot11f->csnofBeamformerAntSup = (nCfgValue & 0x0007); - nCfgValue = vht_cap_info.txop_ps; + nCfgValue = vht_cap_info->txop_ps; pDot11f->vhtTXOPPS = (nCfgValue & 0x0001); - nCfgValue = vht_cap_info.num_soundingdim; + nCfgValue = vht_cap_info->num_soundingdim; pDot11f->numSoundingDim = (nCfgValue & 0x0007); - nCfgValue = vht_cap_info.htc_vhtc; + nCfgValue = vht_cap_info->htc_vhtc; pDot11f->htcVHTCap = (nCfgValue & 0x0001); - pDot11f->rxAntPattern = vht_cap_info.rx_antpattern; + pDot11f->rxAntPattern = vht_cap_info->rx_antpattern; - pDot11f->txAntPattern = vht_cap_info.tx_antpattern; + pDot11f->txAntPattern = vht_cap_info->tx_antpattern; - nCfgValue = vht_cap_info.ampdu_len_exponent; + nCfgValue = vht_cap_info->ampdu_len_exponent; pDot11f->maxAMPDULenExp = (nCfgValue & 0x0007); - nCfgValue = vht_cap_info.link_adap_cap; + nCfgValue = vht_cap_info->link_adap_cap; pDot11f->vhtLinkAdaptCap = (nCfgValue & 0x0003); } - nCfgValue = vht_cap_info.mu_bformer; + nCfgValue = vht_cap_info->mu_bformer; pDot11f->muBeamformerCap = (nCfgValue & 0x0001); pDot11f->reserved1 = 0; - nCfgValue = vht_cap_info.rx_mcs_map; + nCfgValue = vht_cap_info->rx_mcs_map; pDot11f->rxMCSMap = (nCfgValue & 0x0000FFFF); - nCfgValue = vht_cap_info.rx_supp_data_rate; + nCfgValue = vht_cap_info->rx_supp_data_rate; pDot11f->rxHighSupDataRate = (nCfgValue & 0x00001FFF); pDot11f->reserved2 = 0; - nCfgValue = vht_cap_info.tx_mcs_map; + nCfgValue = vht_cap_info->tx_mcs_map; pDot11f->txMCSMap = (nCfgValue & 0x0000FFFF); - nCfgValue = vht_cap_info.tx_supp_data_rate; + nCfgValue = vht_cap_info->tx_supp_data_rate; pDot11f->txSupDataRate = (nCfgValue & 0x00001FFF); pDot11f->reserved3 = 0; @@ -1003,7 +998,7 @@ populate_dot11f_vht_caps(struct mac_context *mac, pDot11f->rxHighSupDataRate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1; if (!pe_session->ch_width && - !vht_cap_info.enable_vht20_mcs9 && + !vht_cap_info->enable_vht20_mcs9 && ((pDot11f->txMCSMap & VHT_1x1_MCS_MASK) == VHT_1x1_MCS9_MAP)) { DISABLE_VHT_MCS_9(pDot11f->txMCSMap, @@ -1013,7 +1008,7 @@ populate_dot11f_vht_caps(struct mac_context *mac, } } else { if (!pe_session->ch_width && - !vht_cap_info.enable_vht20_mcs9 && + !vht_cap_info->enable_vht20_mcs9 && ((pDot11f->txMCSMap & VHT_2x2_MCS_MASK) == VHT_2x2_MCS9_MAP)) { DISABLE_VHT_MCS_9(pDot11f->txMCSMap, @@ -5855,8 +5850,7 @@ populate_dot11f_timing_advert_frame(struct mac_context *mac_ctx, if (mac_ctx->mlme_cfg->ht_caps.short_preamble) frame->Capabilities.shortPreamble = 1; - wlan_cfg_get_int(mac_ctx, WNI_CFG_11H_ENABLED, &val); - if (val) + if (mac_ctx->mlme_cfg->gen.enabled_11h) frame->Capabilities.spectrumMgt = 1; if (mac_ctx->mlme_cfg->wmm_params.qos_enabled) diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index 12c2eb4573c2..0d7813aa6731 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -1023,8 +1023,6 @@ typedef struct tagCsrConfigParam { uint32_t HeartbeatThresh50; eCsrRoamWmmUserModeType WMMSupportMode; bool Is11eSupportEnabled; - bool Is11dSupportEnabled; - bool Is11hSupportEnabled; bool ProprietaryRatesEnabled; uint8_t AdHocChannel24; uint8_t AdHocChannel5G; diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h index c1c24c92e106..31c387ac8442 100644 --- a/core/sme/inc/csr_internal.h +++ b/core/sme/inc/csr_internal.h @@ -386,8 +386,6 @@ struct csr_config { uint32_t HeartbeatThresh24; eCsrRoamWmmUserModeType WMMSupportMode; bool Is11eSupportEnabled; - bool Is11dSupportEnabled; - bool Is11hSupportEnabled; bool ProprietaryRatesEnabled; bool fenableMCCMode; bool mcc_rts_cts_prot_enable; diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index a82bea78a335..540153d0797b 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -779,7 +779,7 @@ QDF_STATUS sme_init_chan_list(mac_handle_t mac_handle, uint8_t *alpha2, if ((cc_src == SOURCE_USERSPACE) && (pmac->mlme_cfg->sap_cfg.country_code_priority)) { - pmac->roam.configParam.Is11dSupportEnabled = false; + pmac->mlme_cfg->gen.enabled_11d = false; } return csr_init_chan_list(pmac, alpha2); @@ -5973,12 +5973,10 @@ sme_handle_generic_change_country_code(struct mac_context *mac_ctx, if (SOURCE_11D != mac_ctx->reg_hint_src) { if (SOURCE_DRIVER != mac_ctx->reg_hint_src) { if (user_ctry_priority) - mac_ctx->roam.configParam.Is11dSupportEnabled = - false; + mac_ctx->mlme_cfg->gen.enabled_11d = false; else { - if (mac_ctx->roam.configParam. - Is11dSupportEnabled && - mac_ctx->scan.countryCode11d[0] != 0) { + if (mac_ctx->mlme_cfg->gen.enabled_11d && + mac_ctx->scan.countryCode11d[0] != 0) { sme_debug("restore 11d"); @@ -12592,14 +12590,14 @@ QDF_STATUS sme_update_nss(mac_handle_t mac_handle, uint8_t nss) uint32_t i; struct mlme_ht_capabilities_info *ht_cap_info; struct csr_roam_session *csr_session; - struct mlme_vht_capabilities_info vht_cap_info; + struct mlme_vht_capabilities_info *vht_cap_info; - vht_cap_info = mac_ctx->mlme_cfg->vht_caps.vht_cap_info; + vht_cap_info = &mac_ctx->mlme_cfg->vht_caps.vht_cap_info; status = sme_acquire_global_lock(&mac_ctx->sme); if (QDF_STATUS_SUCCESS == status) { - vht_cap_info.enable2x2 = (nss == 1) ? 0 : 1; + vht_cap_info->enable2x2 = (nss == 1) ? 0 : 1; /* get the HT capability info*/ ht_cap_info = &mac_ctx->mlme_cfg->ht_caps.ht_cap_info; @@ -12646,15 +12644,16 @@ int sme_update_tx_bfee_nsts(mac_handle_t mac_handle, uint8_t session_id, { struct mac_context *mac_ctx = MAC_CONTEXT(mac_handle); uint8_t nsts_set_val; + struct mlme_vht_capabilities_info *vht_cap_info; + vht_cap_info = &mac_ctx->mlme_cfg->vht_caps.vht_cap_info; mac_ctx->usr_cfg_tx_bfee_nsts = usr_cfg_val; if (usr_cfg_val) nsts_set_val = usr_cfg_val; else nsts_set_val = nsts_val; - mac_ctx->mlme_cfg->vht_caps.vht_cap_info.tx_bfee_ant_supp = - nsts_set_val; + vht_cap_info->tx_bfee_ant_supp = nsts_set_val; if (usr_cfg_val) sme_set_he_tx_bf_cbf_rates(session_id); diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index cb7e59048656..4d66e4492ca1 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -1308,12 +1308,6 @@ void csr_set_global_cfgs(struct mac_context *mac) { wlan_mlme_set_frag_threshold(mac->psoc, csr_get_frag_thresh(mac)); wlan_mlme_set_rts_threshold(mac->psoc, csr_get_rts_thresh(mac)); - cfg_set_int(mac, WNI_CFG_11D_ENABLED, - ((mac->roam.configParam.Is11hSupportEnabled) ? - mac->roam.configParam.Is11dSupportEnabled : - mac->roam.configParam.Is11dSupportEnabled)); - cfg_set_int(mac, WNI_CFG_11H_ENABLED, - mac->roam.configParam.Is11hSupportEnabled); /* For now we will just use the 5GHz CB mode ini parameter to decide * whether CB supported or not in Probes when there is no session * Once session is established we will use the session related params @@ -1667,9 +1661,9 @@ static void init_config_param(struct mac_context *mac) mac->roam.configParam.uCfgDot11Mode = eCSR_CFG_DOT11_MODE_AUTO; mac->roam.configParam.HeartbeatThresh24 = 40; mac->roam.configParam.HeartbeatThresh50 = 40; - mac->roam.configParam.Is11dSupportEnabled = false; + mac->mlme_cfg->gen.enabled_11d = false; mac->roam.configParam.Is11eSupportEnabled = true; - mac->roam.configParam.Is11hSupportEnabled = true; + mac->mlme_cfg->gen.enabled_11h = true; mac->roam.configParam.WMMSupportMode = eCsrRoamWmmAuto; mac->roam.configParam.ProprietaryRatesEnabled = true; for (i = 0; i < CSR_NUM_RSSI_CAT; i++) @@ -2495,14 +2489,6 @@ QDF_STATUS csr_change_default_config_param(struct mac_context *mac, (pParam->WMMSupportMode == eCsrRoamWmmNoQos) ? 0 : 1; mac->roam.configParam.Is11eSupportEnabled = pParam->Is11eSupportEnabled; - mac->roam.configParam.Is11dSupportEnabled = - pParam->Is11dSupportEnabled; - - if (mac->mlme_cfg->gen.band_capability == BAND_2G) - mac->roam.configParam.Is11hSupportEnabled = 0; - else - mac->roam.configParam.Is11hSupportEnabled = - pParam->Is11hSupportEnabled; mac->roam.configParam.fenableMCCMode = pParam->fEnableMCCMode; mac->roam.configParam.mcc_rts_cts_prot_enable = @@ -2812,8 +2798,6 @@ QDF_STATUS csr_get_config_param(struct mac_context *mac, tCsrConfigParam *pParam pParam->is_force_1x1 = cfg_params->is_force_1x1; pParam->WMMSupportMode = cfg_params->WMMSupportMode; pParam->Is11eSupportEnabled = cfg_params->Is11eSupportEnabled; - pParam->Is11dSupportEnabled = cfg_params->Is11dSupportEnabled; - pParam->Is11hSupportEnabled = cfg_params->Is11hSupportEnabled; pParam->channelBondingMode24GHz = csr_convert_phy_cb_state_to_ini_value( cfg_params->channelBondingMode24GHz); pParam->channelBondingMode5GHz = csr_convert_phy_cb_state_to_ini_value( @@ -4184,7 +4168,7 @@ QDF_STATUS csr_roam_prepare_bss_config(struct mac_context *mac, pBssConfig->f11hSupport = false; else pBssConfig->f11hSupport = - mac->roam.configParam.Is11hSupportEnabled; + mac->mlme_cfg->gen.enabled_11h; /* power constraint */ pBssConfig->uPowerLimit = csr_get11h_power_constraint(mac, &pIes->PowerConstraints); @@ -4934,9 +4918,11 @@ QDF_STATUS csr_roam_set_bss_config_cfg(struct mac_context *mac, uint32_t session mac->mlme_cfg->feature_flags.enable_short_slot_time_11g = pBssConfig->uShortSlotTime; /* 11d */ - cfg_set_int(mac, WNI_CFG_11D_ENABLED, - ((pBssConfig->f11hSupport) ? pBssConfig->f11hSupport : - pProfile->ieee80211d)); + if (pBssConfig->f11hSupport) + mac->mlme_cfg->gen.enabled_11d = pBssConfig->f11hSupport; + else + mac->mlme_cfg->gen.enabled_11d = pProfile->ieee80211d; + cfg_set_int(mac, WNI_CFG_LOCAL_POWER_CONSTRAINT, pBssConfig->uPowerLimit); /* CB */ @@ -16658,13 +16644,13 @@ QDF_STATUS csr_roam_open_session(struct mac_context *mac_ctx, uint32_t existing_session_id; struct mlme_ht_capabilities_info *ht_cap_info; struct csr_roam_session *session; - struct mlme_vht_capabilities_info vht_cap_info; + struct mlme_vht_capabilities_info *vht_cap_info; if (!(mac_ctx->mlme_cfg)) { pe_err("invalid mlme cfg"); return QDF_STATUS_E_FAILURE; } - vht_cap_info = mac_ctx->mlme_cfg->vht_caps.vht_cap_info; + vht_cap_info = &mac_ctx->mlme_cfg->vht_caps.vht_cap_info; /* check to see if the mac address already belongs to a session */ status = csr_roam_get_session_id_from_bssid(mac_ctx, @@ -16740,28 +16726,29 @@ QDF_STATUS csr_roam_open_session(struct mac_context *mac_ctx, } #endif /* FEATURE_WLAN_BTAMP_UT_RF */ - session->vht_config.max_mpdu_len = vht_cap_info.ampdu_len; + session->vht_config.max_mpdu_len = vht_cap_info->ampdu_len; session->vht_config.supported_channel_widthset = - vht_cap_info.supp_chan_width; - session->vht_config.ldpc_coding = vht_cap_info.ldpc_coding_cap; - session->vht_config.shortgi80 = vht_cap_info.short_gi_80mhz; + vht_cap_info->supp_chan_width; + session->vht_config.ldpc_coding = vht_cap_info->ldpc_coding_cap; + session->vht_config.shortgi80 = vht_cap_info->short_gi_80mhz; session->vht_config.shortgi160and80plus80 = - vht_cap_info.short_gi_160mhz; - session->vht_config.tx_stbc = vht_cap_info.tx_stbc; - session->vht_config.rx_stbc = vht_cap_info.rx_stbc; - session->vht_config.su_beam_former = vht_cap_info.su_bformer; - session->vht_config.su_beam_formee = vht_cap_info.su_bformee; + vht_cap_info->short_gi_160mhz; + session->vht_config.tx_stbc = vht_cap_info->tx_stbc; + session->vht_config.rx_stbc = vht_cap_info->rx_stbc; + session->vht_config.su_beam_former = vht_cap_info->su_bformer; + session->vht_config.su_beam_formee = vht_cap_info->su_bformee; session->vht_config.csnof_beamformer_antSup = - vht_cap_info.tx_bfee_ant_supp; - session->vht_config.num_soundingdim = vht_cap_info.num_soundingdim; - session->vht_config.mu_beam_former = vht_cap_info.mu_bformer; - session->vht_config.mu_beam_formee = vht_cap_info.enable_mu_bformee; - session->vht_config.vht_txops = vht_cap_info.txop_ps; - session->vht_config.htc_vhtcap = vht_cap_info.htc_vhtc; - session->vht_config.rx_antpattern = vht_cap_info.rx_antpattern; - session->vht_config.tx_antpattern = vht_cap_info.tx_antpattern; + vht_cap_info->tx_bfee_ant_supp; + session->vht_config.num_soundingdim = vht_cap_info->num_soundingdim; + session->vht_config.mu_beam_former = vht_cap_info->mu_bformer; + session->vht_config.mu_beam_formee = vht_cap_info->enable_mu_bformee; + session->vht_config.vht_txops = vht_cap_info->txop_ps; + session->vht_config.htc_vhtcap = vht_cap_info->htc_vhtc; + session->vht_config.rx_antpattern = vht_cap_info->rx_antpattern; + session->vht_config.tx_antpattern = vht_cap_info->tx_antpattern; - session->vht_config.max_ampdu_lenexp = vht_cap_info.ampdu_len_exponent; + session->vht_config.max_ampdu_lenexp = + vht_cap_info->ampdu_len_exponent; csr_update_session_he_cap(mac_ctx, session); @@ -18762,7 +18749,7 @@ static void csr_update_driver_assoc_ies(struct mac_context *mac_ctx, else power_cap_ie_data[1] = MAX_TX_PWR_CAP; - wlan_cfg_get_int(mac_ctx, WNI_CFG_11H_ENABLED, &csr_11henable); + csr_11henable = mac_ctx->mlme_cfg->gen.enabled_11h; if (csr_11henable && csr_is11h_supported(mac_ctx)) { /* Append power cap IE */ diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c index 6fc0c47e9b78..5c9f23ba22b9 100644 --- a/core/sme/src/csr/csr_api_scan.c +++ b/core/sme/src/csr/csr_api_scan.c @@ -724,7 +724,7 @@ static void csr_diag_reset_country_information(struct mac_context *mac) mac->roam.configParam.nTxPowerCap); } } - if (!mac->roam.configParam.Is11dSupportEnabled) + if (!mac->mlme_cfg->gen.enabled_11d) p11dLog->supportMultipleDomain = WLAN_80211D_DISABLED; else p11dLog->supportMultipleDomain = @@ -834,7 +834,7 @@ static void csr_diag_apply_country_info(struct mac_context *mac_ctx) } } diag_end: - if (!mac_ctx->roam.configParam.Is11dSupportEnabled) + if (!mac_ctx->mlme_cfg->gen.enabled_11d) p11dLog->supportMultipleDomain = WLAN_80211D_DISABLED; else p11dLog->supportMultipleDomain = diff --git a/core/sme/src/csr/csr_util.c b/core/sme/src/csr/csr_util.c index 6ab7a18bc6c7..99328aaf14e5 100644 --- a/core/sme/src/csr/csr_util.c +++ b/core/sme/src/csr/csr_util.c @@ -1447,12 +1447,12 @@ bool csr_is_privacy(tSirBssDescription *pSirBssDesc) bool csr_is11d_supported(struct mac_context *mac) { - return mac->roam.configParam.Is11dSupportEnabled; + return mac->mlme_cfg->gen.enabled_11d; } bool csr_is11h_supported(struct mac_context *mac) { - return mac->roam.configParam.Is11hSupportEnabled; + return mac->mlme_cfg->gen.enabled_11h; } bool csr_is11e_supported(struct mac_context *mac) @@ -2229,10 +2229,9 @@ uint32_t csr_get11h_power_constraint(struct mac_context *mac_ctx, /* check if .11h support is enabled, if not, * the power constraint is 0. */ - if (mac_ctx->roam.configParam.Is11hSupportEnabled && - constraints->present) { + if (mac_ctx->mlme_cfg->gen.enabled_11h && + constraints->present) localPowerConstraint = constraints->localPowerConstraints; - } return localPowerConstraint; } diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c index 25102b743e8a..7dc4c940c315 100644 --- a/core/wma/src/wma_scan_roam.c +++ b/core/wma/src/wma_scan_roam.c @@ -2651,7 +2651,6 @@ QDF_STATUS wma_roam_scan_fill_self_caps(tp_wma_handle wma_handle, struct mac_context *mac = NULL; tSirMacCapabilityInfo selfCaps; uint32_t val = 0; - uint32_t nCfgValue; uint16_t *pCfgValue16; uint8_t nCfgValue8, *pCfgValue8; tSirMacQosInfoStation macQosInfoSta; @@ -2682,13 +2681,8 @@ QDF_STATUS wma_roam_scan_fill_self_caps(tp_wma_handle wma_handle, if (mac->mlme_cfg->feature_flags.enable_short_slot_time_11g) selfCaps.shortSlotTime = 1; - if (wlan_cfg_get_int(mac, WNI_CFG_11H_ENABLED, &val) != - QDF_STATUS_SUCCESS) { - QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_ERROR, - "Failed to get WNI_CFG_11H_ENABLED"); - return QDF_STATUS_E_FAILURE; - } - if (val) + + if (mac->mlme_cfg->gen.enabled_11h) selfCaps.spectrumMgt = 1; if (mac->mlme_cfg->wmm_params.qos_enabled) @@ -2743,23 +2737,11 @@ QDF_STATUS wma_roam_scan_fill_self_caps(tp_wma_handle wma_handle, return QDF_STATUS_E_FAILURE; } - if (wlan_cfg_get_int(mac, WNI_CFG_TX_BF_CAP, &nCfgValue) != - QDF_STATUS_SUCCESS) { - QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_ERROR, - "Failed to get WNI_CFG_TX_BF_CAP"); - return QDF_STATUS_E_FAILURE; - } /* tSirMacTxBFCapabilityInfo */ - nCfgValue8 = (uint8_t) nCfgValue; + nCfgValue8 = (uint8_t)mac->mlme_cfg->vht_caps.vht_cap_info.tx_bf_cap; roam_offload_params->ht_txbf = nCfgValue8 & 0xFF; - if (wlan_cfg_get_int(mac, WNI_CFG_AS_CAP, &nCfgValue) != - QDF_STATUS_SUCCESS) { - QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_ERROR, - "Failed to get WNI_CFG_AS_CAP"); - return QDF_STATUS_E_FAILURE; - } /* tSirMacASCapabilityInfo */ - nCfgValue8 = (uint8_t) nCfgValue; + nCfgValue8 = (uint8_t)mac->mlme_cfg->vht_caps.vht_cap_info.as_cap; roam_offload_params->asel_cap = nCfgValue8 & 0xFF; /* QOS Info */