Jelajahi Sumber

qcacld-3.0: Refactor SAP CFG items

Refactor SAP CFG items gMaxLIModulatedDTIM,
gCountryCodePriority, gSapPreferredChanLocation.

Change-Id: I52a1b3f782c440b12a2f2dcf82d9dad6cf6e76e0
CRs-Fixed: 2351237
Bala Venkatesh 6 tahun lalu
induk
melakukan
46e2903f11

+ 6 - 0
components/mlme/core/src/wlan_mlme_main.c

@@ -1026,6 +1026,12 @@ static void mlme_init_sap_cfg(struct wlan_objmgr_psoc *psoc,
 		cfg_get(psoc, CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME);
 	sap_cfg->reduced_beacon_interval =
 		cfg_get(psoc, CFG_REDUCED_BEACON_INTERVAL);
+	sap_cfg->max_li_modulated_dtim_time =
+		cfg_get(psoc, CFG_MAX_LI_MODULATED_DTIM);
+	sap_cfg->country_code_priority =
+		cfg_get(psoc, CFG_COUNTRY_CODE_PRIORITY);
+	sap_cfg->sap_pref_chan_location =
+		cfg_get(psoc, CFG_SAP_PREF_CHANNEL_LOCATION);
 
 }
 

+ 80 - 1
components/mlme/dispatcher/inc/cfg_mlme_sap.h

@@ -451,6 +451,82 @@
 			0, \
 			CFG_VALUE_OR_DEFAULT, \
 			"reduced beacon interval")
+/*
+ * <ini>
+ * gMaxLIModulatedDTIM - Set MaxLIModulate Dtim
+ * @Min: 1
+ * @Max: 10
+ * @Default: 10
+ *
+ * This ini is used to set default MaxLIModulatedDTIM
+ *
+ * Related: None
+ *
+ * Supported Feature: STA
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_MAX_LI_MODULATED_DTIM CFG_INI_UINT( \
+			"gMaxLIModulatedDTIM", \
+			1, \
+			10, \
+			10, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Max modulated dtim")
+
+/*
+ * <ini>
+ * gCountryCodePriority - Priority to set country code
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * This ini is used to set default gCountryCodePriority
+ *
+ * Related: None
+ *
+ * Supported Feature: SAP
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_COUNTRY_CODE_PRIORITY CFG_INI_BOOL( \
+			"gCountryCodePriority", \
+			0, \
+			"Country code priority")
+
+/*
+ * <ini>
+ * gSapPreferredChanLocation - Restrict channel switches between ondoor and
+ * outdoor.
+ * @Min: 0
+ * @Max: 2
+ * @Default: 0
+ *
+ * This ini is used for restricting channel switches between Indoor and outdoor
+ * channels after radar detection.
+ * 0- No preferred channel location
+ * 1- Use indoor channels only
+ * 2- Use outdoor channels only
+ * Related: NA.
+ *
+ * Supported Feature: DFS
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+#define CFG_SAP_PREF_CHANNEL_LOCATION CFG_INI_UINT( \
+			"gSapPreferredChanLocation", \
+			0, \
+			2, \
+			0, \
+			CFG_VALUE_OR_DEFAULT, \
+			"Sap preferred channel location")
+
 
  #define CFG_SAP_ALL \
 	CFG(CFG_SSID) \
@@ -475,6 +551,9 @@
 	CFG(CFG_SAP_CH_SWITCH_MODE) \
 	CFG(CFG_SAP_INTERNAL_RESTART) \
 	CFG(CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME) \
-	CFG(CFG_REDUCED_BEACON_INTERVAL)
+	CFG(CFG_REDUCED_BEACON_INTERVAL) \
+	CFG(CFG_MAX_LI_MODULATED_DTIM) \
+	CFG(CFG_COUNTRY_CODE_PRIORITY) \
+	CFG(CFG_SAP_PREF_CHANNEL_LOCATION)
 
 #endif /* __CFG_MLME_SAP_H */

+ 32 - 0
components/mlme/dispatcher/inc/wlan_mlme_api.h

@@ -582,6 +582,38 @@ QDF_STATUS wlan_mlme_get_sap_chn_switch_mode(struct wlan_objmgr_psoc *psoc,
  */
 QDF_STATUS wlan_mlme_get_sap_internal_restart(struct wlan_objmgr_psoc *psoc,
 					      bool *value);
+/**
+ * wlan_mlme_get_sap_max_modulated_dtim() - get the max modulated dtim
+ * restart
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_max_modulated_dtim(struct wlan_objmgr_psoc *psoc,
+						uint8_t *value);
+
+/**
+ * wlan_mlme_get_sap_chan_pref_location() - get the sap chan pref location
+ * restart
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_chan_pref_location(struct wlan_objmgr_psoc *psoc,
+						uint8_t *value);
+
+/**
+ * wlan_mlme_get_sap_country_priority() - get the sap country code priority
+ * restart
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_country_priority(struct wlan_objmgr_psoc *psoc,
+					      bool *value);
 
 /**
  * wlan_mlme_get_sap_reduced_beacon_interval() - get the sap reduced

+ 6 - 0
components/mlme/dispatcher/inc/wlan_mlme_public_struct.h

@@ -512,6 +512,9 @@ struct wlan_mlme_wps_params {
  * @sap_ch_switch_mode: Channel switch test mode enable/disable
  * @chan_switch_hostapd_rate_enabled_name: enable/disable skip hostapd rate
  * @reduced_beacon_interval: reduced beacon interval value
+ * @max_li_modulated_dtim_time: Max modulated DTIM time.
+ * @country_code_priority: Country code priority.
+ * @sap_pref_chan_location: SAP Preferred channel location.
  */
 struct wlan_mlme_cfg_sap {
 	uint8_t cfg_ssid[32];
@@ -537,6 +540,9 @@ struct wlan_mlme_cfg_sap {
 	bool sap_ch_switch_mode;
 	bool chan_switch_hostapd_rate_enabled_name;
 	uint8_t reduced_beacon_interval;
+	uint8_t max_li_modulated_dtim_time;
+	bool country_code_priority;
+	uint8_t sap_pref_chan_location;
 };
 
 /**

+ 48 - 0
components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h

@@ -964,6 +964,54 @@ QDF_STATUS ucfg_mlme_get_sap_internal_restart(struct wlan_objmgr_psoc *psoc,
 	return wlan_mlme_get_sap_internal_restart(psoc, value);
 }
 
+/**
+ * ucfg_mlme_get_sap_max_modulated_dtim() - get sap max modulated dtim
+ * @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_get_sap_max_modulated_dtim(struct wlan_objmgr_psoc *psoc,
+						uint8_t *value)
+{
+	return wlan_mlme_get_sap_max_modulated_dtim(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_pref_chan_location() - get sap pref chan location
+ * @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_get_pref_chan_location(struct wlan_objmgr_psoc *psoc,
+					    uint8_t *value)
+{
+	return wlan_mlme_get_sap_chan_pref_location(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_country_priority() - get sap country code priority
+ * @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_get_sap_country_priority(struct wlan_objmgr_psoc *psoc,
+					      bool *value)
+{
+	return wlan_mlme_get_sap_country_priority(psoc, value);
+}
+
 /**
  * ucfg_mlme_get_sap_reduces_beacon_interval() - get the sap reduces beacon
  * interval

+ 48 - 0
components/mlme/dispatcher/src/wlan_mlme_api.c

@@ -1383,6 +1383,54 @@ QDF_STATUS wlan_mlme_get_sap_internal_restart(struct wlan_objmgr_psoc *psoc,
 	return QDF_STATUS_SUCCESS;
 }
 
+QDF_STATUS wlan_mlme_get_sap_max_modulated_dtim(struct wlan_objmgr_psoc *psoc,
+						uint8_t *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.sap_cfg.max_li_modulated_dtim_time;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_chan_pref_location(struct wlan_objmgr_psoc *psoc,
+						uint8_t *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.sap_cfg.sap_pref_chan_location;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_country_priority(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.sap_cfg.country_code_priority;
+
+	return QDF_STATUS_SUCCESS;
+}
+
 QDF_STATUS wlan_mlme_get_sap_reduced_beacon_interval(struct wlan_objmgr_psoc
 						     *psoc, int *value)
 {

+ 0 - 96
core/hdd/inc/wlan_hdd_cfg.h

@@ -226,50 +226,6 @@ struct hdd_context;
 #define CFG_11H_SUPPORT_ENABLED_MAX            (1)
 #define CFG_11H_SUPPORT_ENABLED_DEFAULT        (1)    /* Default is ON */
 
-/*
- * <ini>
- * gCountryCodePriority - Country code from supplicant preference
- * @Min: 0
- * @Max: 1
- * @Default: 1
- *
- * This ini is used to control whether driver will prefer country code
- * specified by supplicant. And once country code from supplicant is
- * respected, 11d will be disabled in effect.
- *
- * Related: None
- *
- * Supported Feature: STA
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-
-#define CFG_COUNTRY_CODE_PRIORITY_NAME         "gCountryCodePriority"
-#define CFG_COUNTRY_CODE_PRIORITY_MIN          (0)
-#define CFG_COUNTRY_CODE_PRIORITY_MAX          (1)
-#define CFG_COUNTRY_CODE_PRIORITY_DEFAULT      (0)
-
-/*
- * <ini>
- * gRegulatoryChangeCountry - Default world regdmn overriding
- * @Min: 0
- * @Max: 1
- * @Default: 1
- *
- * This ini is used to control whether default regdmn settings should be
- * overridden when there is no world regdmn configuration available.
- *
- * Related: None
- *
- * Supported Feature: STA
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-
 #define CFG_REG_CHANGE_DEF_COUNTRY_NAME          "gRegulatoryChangeCountry"
 #define CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT       (0)
 #define CFG_REG_CHANGE_DEF_COUNTRY_MIN           (0)
@@ -2699,29 +2655,6 @@ enum hdd_dot11_mode {
 #define CFG_TX_POWER_CTRL_MIN                  (0)
 #define CFG_TX_POWER_CTRL_MAX                  (1)
 
-/*
- * <ini>
- * gMaxLIModulatedDTIM - Set MaxLIModulate Dtim
- * @Min: 1
- * @Max: 10
- * @Default: 10
- *
- * This ini is used to set default MaxLIModulatedDTIM
- *
- * Related: None
- *
- * Supported Feature: STA
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-
-#define CFG_MAX_LI_MODULATED_DTIM_NAME         "gMaxLIModulatedDTIM"
-#define CFG_MAX_LI_MODULATED_DTIM_MIN          (1)
-#define CFG_MAX_LI_MODULATED_DTIM_MAX          (10)
-#define CFG_MAX_LI_MODULATED_DTIM_DEFAULT      (10)
-
 /*
  * <ini>
  * gFWMccRtsCtsProtection - RTS-CTS protection in MCC.
@@ -3339,32 +3272,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_DISABLE_DFS_CH_SWITCH_MAX             (1)
 #define CFG_DISABLE_DFS_CH_SWITCH_DEFAULT         (0)
 
-/*
- * <ini>
- * gSapPreferredChanLocation - Restrict channel switches between ondoor and
- * outdoor.
- * @Min: 0
- * @Max: 2
- * @Default: 0
- *
- * This ini is used for restricting channel switches between Indoor and outdoor
- * channels after radar detection.
- * 0- No preferred channel location
- * 1- Use indoor channels only
- * 2- Use outdoor channels only
- * Related: NA.
- *
- * Supported Feature: DFS
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-#define CFG_SAP_PREFERRED_CHANNEL_LOCATION          "gSapPreferredChanLocation"
-#define CFG_SAP_PREFERRED_CHANNEL_LOCATION_MIN      (0)
-#define CFG_SAP_PREFERRED_CHANNEL_LOCATION_MAX      (2)
-#define CFG_SAP_PREFERRED_CHANNEL_LOCATION_DEFAULT  (0)
-
 /*
  * <ini>
  * gDisableDfsJapanW53 - Block W53 channels in random channel selection
@@ -6717,7 +6624,6 @@ struct hdd_config {
 	bool ShortSlotTimeEnabled;
 	bool Is11dSupportEnabled;
 	bool Is11hSupportEnabled;
-	bool fSupplicantCountryCodeHasPriority;
 	char PowerUsageControl[4];
 	bool fIsImpsEnabled;
 	bool is_ps_enabled;
@@ -6806,7 +6712,6 @@ struct hdd_config {
 	uint32_t       idle_time_conc;
 
 	uint8_t nRssiFilterPeriod;
-	uint8_t fMaxLIModulatedDTIM;
 
 	bool mcc_rts_cts_prot_enable;
 	bool mcc_bcast_prob_resp_enable;
@@ -6950,7 +6855,6 @@ struct hdd_config {
 	uint32_t TxPower2g;
 	uint32_t TxPower5g;
 	bool fDfsPhyerrFilterOffload;
-	uint8_t gSapPreferredChanLocation;
 	uint8_t gDisableDfsJapanW53;
 	bool gEnableOverLapCh;
 	bool fRegChangeDefCountry;

+ 0 - 35
core/hdd/src/wlan_hdd_cfg.c

@@ -273,16 +273,6 @@ static void cb_notify_set_enable_ssr(struct hdd_context *hdd_ctx,
 	sme_update_enable_ssr(hdd_ctx->mac_handle, hdd_ctx->config->enableSSR);
 }
 
-static void
-cb_notify_set_g_sap_preferred_chan_location(struct hdd_context *hdd_ctx,
-					    unsigned long notify_id)
-{
-	uint8_t location = hdd_ctx->config->gSapPreferredChanLocation;
-
-	wlansap_set_dfs_preferred_channel_location(hdd_ctx->mac_handle,
-						   location);
-}
-
 static void ch_notify_set_g_disable_dfs_japan_w53(struct hdd_context *hdd_ctx,
 						  unsigned long notify_id)
 {
@@ -406,13 +396,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_11H_SUPPORT_ENABLED_MIN,
 		     CFG_11H_SUPPORT_ENABLED_MAX),
 
-	REG_VARIABLE(CFG_COUNTRY_CODE_PRIORITY_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, fSupplicantCountryCodeHasPriority,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
-		     CFG_COUNTRY_CODE_PRIORITY_DEFAULT,
-		     CFG_COUNTRY_CODE_PRIORITY_MIN,
-		     CFG_COUNTRY_CODE_PRIORITY_MAX),
-
 	REG_VARIABLE_STRING(CFG_POWER_USAGE_NAME, WLAN_PARAM_String,
 			    struct hdd_config, PowerUsageControl,
 			    VAR_FLAGS_OPTIONAL,
@@ -699,13 +682,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_TX_POWER_CTRL_MIN,
 		     CFG_TX_POWER_CTRL_MAX),
 
-	REG_VARIABLE(CFG_MAX_LI_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, fMaxLIModulatedDTIM,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_MAX_LI_MODULATED_DTIM_DEFAULT,
-		     CFG_MAX_LI_MODULATED_DTIM_MIN,
-		     CFG_MAX_LI_MODULATED_DTIM_MAX),
-
 	REG_VARIABLE(CFG_FW_MCC_RTS_CTS_PROT_NAME, WLAN_PARAM_Integer,
 		struct hdd_config, mcc_rts_cts_prot_enable,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -1414,15 +1390,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_DISABLE_DFS_CH_SWITCH_MIN,
 		     CFG_DISABLE_DFS_CH_SWITCH_MAX),
 
-	REG_DYNAMIC_VARIABLE(CFG_SAP_PREFERRED_CHANNEL_LOCATION,
-			     WLAN_PARAM_Integer,
-			     struct hdd_config, gSapPreferredChanLocation,
-			     VAR_FLAGS_OPTIONAL |
-			     VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-			     CFG_SAP_PREFERRED_CHANNEL_LOCATION_DEFAULT,
-			     CFG_SAP_PREFERRED_CHANNEL_LOCATION_MIN,
-			     CFG_SAP_PREFERRED_CHANNEL_LOCATION_MAX,
-			     cb_notify_set_g_sap_preferred_chan_location, 0),
 	REG_DYNAMIC_VARIABLE(CFG_DISABLE_DFS_JAPAN_W53, WLAN_PARAM_Integer,
 			     struct hdd_config, gDisableDfsJapanW53,
 			     VAR_FLAGS_OPTIONAL |
@@ -3998,8 +3965,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
 	}
 	smeConfig->csrConfig.nScanResultAgeCount = pConfig->ScanResultAgeCount;
 	smeConfig->csrConfig.AdHocChannel24 = pConfig->OperatingChannel;
-	smeConfig->csrConfig.fSupplicantCountryCodeHasPriority =
-		pConfig->fSupplicantCountryCodeHasPriority;
 	smeConfig->csrConfig.bCatRssiOffset = pConfig->nRssiCatGap;
 	smeConfig->csrConfig.vccRssiThreshold = pConfig->nVccRssiTrigger;
 	smeConfig->csrConfig.vccUlMacLossThreshold =

+ 4 - 1
core/hdd/src/wlan_hdd_hostapd.c

@@ -4603,6 +4603,7 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
 	uint32_t auto_channel_select_weight =
 		cfg_default(CFG_AUTO_CHANNEL_SELECT_WEIGHT);
 	bool bval = false;
+	uint8_t pref_chan_location = 0;
 
 	hdd_enter();
 
@@ -4834,8 +4835,10 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
 		wlansap_set_dfs_ignore_cac(mac_handle, ignore_cac);
 		wlansap_set_dfs_restrict_japan_w53(mac_handle,
 			iniConfig->gDisableDfsJapanW53);
+		ucfg_mlme_get_pref_chan_location(hdd_ctx->psoc,
+						 &pref_chan_location);
 		wlansap_set_dfs_preferred_channel_location(mac_handle,
-			iniConfig->gSapPreferredChanLocation);
+							   pref_chan_location);
 #ifdef FEATURE_AP_MCC_CH_AVOIDANCE
 		wlan_sap_set_channel_avoidance(mac_handle,
 					iniConfig->sap_channel_avoidance);

+ 5 - 2
core/hdd/src/wlan_hdd_main.c

@@ -9684,7 +9684,8 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
 		return -ENOMEM;
 
 	cds_cfg->driver_type = QDF_DRIVER_TYPE_PRODUCTION;
-	cds_cfg->sta_maxlimod_dtim = hdd_ctx->config->fMaxLIModulatedDTIM;
+	ucfg_mlme_get_sap_max_modulated_dtim(hdd_ctx->psoc,
+					     &cds_cfg->sta_maxlimod_dtim);
 
 	/*
 	 * Copy the DFS Phyerr Filtering Offload status.
@@ -14041,7 +14042,9 @@ static int hdd_update_pmo_config(struct hdd_context *hdd_ctx)
 	psoc_cfg.packet_filter_enabled = !hdd_ctx->config->disablePacketFilter;
 	psoc_cfg.ap_arpns_support = hdd_ctx->ap_arpns_support;
 	psoc_cfg.d0_wow_supported = wma_d0_wow_is_supported();
-	psoc_cfg.sta_max_li_mod_dtim = hdd_ctx->config->fMaxLIModulatedDTIM;
+	ucfg_mlme_get_sap_max_modulated_dtim(hdd_ctx->psoc,
+					     &psoc_cfg.sta_max_li_mod_dtim);
+
 
 	hdd_ra_populate_pmo_config(&psoc_cfg, hdd_ctx);
 	hdd_lpass_populate_pmo_config(&psoc_cfg, hdd_ctx);

+ 4 - 2
core/hdd/src/wlan_hdd_regulatory.c

@@ -209,6 +209,7 @@ static void reg_program_config_vars(struct hdd_context *hdd_ctx,
 {
 	uint8_t band_capability = 0;
 	QDF_STATUS status;
+	bool country_priority = 0;
 
 	status = ucfg_mlme_get_band_capability(hdd_ctx->psoc, &band_capability);
 	if (QDF_IS_STATUS_ERROR(status))
@@ -216,8 +217,9 @@ static void reg_program_config_vars(struct hdd_context *hdd_ctx,
 
 	config_vars->enable_11d_support = hdd_ctx->config->Is11dSupportEnabled;
 	config_vars->scan_11d_interval = hdd_ctx->config->scan_11d_interval;
-	config_vars->userspace_ctry_priority =
-		hdd_ctx->config->fSupplicantCountryCodeHasPriority;
+	ucfg_mlme_get_sap_country_priority(hdd_ctx->psoc,
+					   &country_priority);
+	config_vars->userspace_ctry_priority = country_priority;
 	config_vars->dfs_enabled = hdd_ctx->config->enableDFSChnlScan;
 	config_vars->indoor_chan_enabled =
 		hdd_ctx->config->indoor_channel_support;

+ 0 - 2
core/sme/inc/csr_api.h

@@ -1074,8 +1074,6 @@ typedef struct tagCsrConfigParam {
 	uint8_t fAllowMCCGODiffBI;
 	tCsr11dinfo Csr11dinfo;
 
-	/* Country Code Priority */
-	bool fSupplicantCountryCodeHasPriority;
 	uint16_t vccRssiThreshold;
 	uint32_t vccUlMacLossThreshold;
 	uint32_t nPassiveMaxChnTime;        /* in units of milliseconds */

+ 0 - 2
core/sme/inc/csr_internal.h

@@ -428,8 +428,6 @@ struct csr_config {
 	 * list. It is an "AND" operation between the default channels and
 	 * the channels in the 802.11d IE.
 	 */
-	/* Country Code Priority */
-	bool fSupplicantCountryCodeHasPriority;
 
 	uint16_t vccRssiThreshold;
 	uint32_t vccUlMacLossThreshold;

+ 2 - 2
core/sme/src/common/sme_api.c

@@ -764,7 +764,7 @@ QDF_STATUS sme_init_chan_list(mac_handle_t hal, uint8_t *alpha2,
 	tpAniSirGlobal pmac = PMAC_STRUCT(hal);
 
 	if ((cc_src == SOURCE_USERSPACE) &&
-	    (pmac->roam.configParam.fSupplicantCountryCodeHasPriority)) {
+	    (pmac->mlme_cfg->sap_cfg.country_code_priority)) {
 		pmac->roam.configParam.Is11dSupportEnabled = false;
 	}
 
@@ -5950,7 +5950,7 @@ sme_handle_generic_change_country_code(tpAniSirGlobal mac_ctx,
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 	v_REGDOMAIN_t reg_domain_id = 0;
 	bool user_ctry_priority =
-		mac_ctx->roam.configParam.fSupplicantCountryCodeHasPriority;
+		mac_ctx->mlme_cfg->sap_cfg.country_code_priority;
 	tAniGenericChangeCountryCodeReq *msg = pMsgBuf;
 
 	if (SOURCE_11D != mac_ctx->reg_hint_src) {

+ 1 - 7
core/sme/src/csr/csr_api_roam.c

@@ -1681,7 +1681,6 @@ static void init_config_param(tpAniSirGlobal pMac)
 		pMac->roam.configParam.BssPreferValue[i] = i;
 	csr_assign_rssi_for_category(pMac, CSR_BEST_RSSI_VALUE,
 			CSR_DEFAULT_RSSI_DB_GAP);
-	pMac->roam.configParam.fSupplicantCountryCodeHasPriority = false;
 	pMac->roam.configParam.nActiveMaxChnTime = CSR_ACTIVE_MAX_CHANNEL_TIME;
 	pMac->roam.configParam.nPassiveMaxChnTime =
 		CSR_PASSIVE_MAX_CHANNEL_TIME;
@@ -2831,8 +2830,6 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
 		csr_assign_rssi_for_category(pMac,
 			pMac->mlme_cfg->lfr.first_scan_bucket_threshold,
 			pParam->bCatRssiOffset);
-		pMac->roam.configParam.fSupplicantCountryCodeHasPriority =
-			pParam->fSupplicantCountryCodeHasPriority;
 		pMac->roam.configParam.vccRssiThreshold =
 			pParam->vccRssiThreshold;
 		pMac->roam.configParam.vccUlMacLossThreshold =
@@ -3122,8 +3119,6 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
 	pParam->idle_time_conc = cfg_params->idle_time_conc;
 	pParam->nScanResultAgeCount = cfg_params->agingCount;
 	pParam->bCatRssiOffset = cfg_params->bCatRssiOffset;
-	pParam->fSupplicantCountryCodeHasPriority =
-		cfg_params->fSupplicantCountryCodeHasPriority;
 	pParam->vccRssiThreshold = cfg_params->vccRssiThreshold;
 	pParam->vccUlMacLossThreshold = cfg_params->vccUlMacLossThreshold;
 	pParam->nTxPowerCap = cfg_params->nTxPowerCap;
@@ -15671,8 +15666,7 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId,
 		if ((csr_is11h_supported(pMac)) &&
 			(WLAN_REG_IS_5GHZ_CH(pBssDescription->channelId)) &&
 			(pIes->Country.present) &&
-			(!pMac->roam.configParam.
-			 fSupplicantCountryCodeHasPriority)) {
+			(!pMac->mlme_cfg->sap_cfg.country_code_priority)) {
 			csr_save_to_channel_power2_g_5_g(pMac,
 				pIes->Country.num_triplets *
 				sizeof(tSirMacChanInfo),