Parcourir la source

qcacld-3.0: SAP CFG Items part 2

Add support for the sap cfg items in new mlme component

Change-Id: I80f3f00a85720fe7bec11575fe67dd2f6b9d44b2
CRs-Fixed: 2316643
Bala Venkatesh il y a 6 ans
Parent
commit
2fde2c61db
37 fichiers modifiés avec 881 ajouts et 797 suppressions
  1. 19 18
      components/mlme/core/src/wlan_mlme_main.c
  2. 54 54
      components/mlme/dispatcher/inc/cfg_mlme_sap.h
  3. 147 0
      components/mlme/dispatcher/inc/wlan_mlme_api.h
  4. 1 1
      components/mlme/dispatcher/inc/wlan_mlme_public_struct.h
  5. 227 0
      components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h
  6. 236 0
      components/mlme/dispatcher/src/wlan_mlme_api.c
  7. 2 1
      core/cds/src/cds_api.c
  8. 0 273
      core/hdd/inc/wlan_hdd_cfg.h
  9. 3 172
      core/hdd/src/wlan_hdd_cfg.c
  10. 18 14
      core/hdd/src/wlan_hdd_cfg80211.c
  11. 12 8
      core/hdd/src/wlan_hdd_hostapd.c
  12. 10 13
      core/hdd/src/wlan_hdd_hostapd_wext.c
  13. 4 5
      core/hdd/src/wlan_hdd_ioctl.c
  14. 39 24
      core/hdd/src/wlan_hdd_main.c
  15. 3 1
      core/hdd/src/wlan_hdd_power.c
  16. 7 1
      core/hdd/src/wlan_hdd_station_info.c
  17. 6 9
      core/hdd/src/wlan_hdd_wext.c
  18. 0 1
      core/mac/inc/ani_global.h
  19. 2 1
      core/mac/src/pe/lim/lim_aid_mgmt.c
  20. 1 8
      core/mac/src/pe/lim/lim_api.c
  21. 5 10
      core/mac/src/pe/lim/lim_assoc_utils.c
  22. 2 7
      core/mac/src/pe/lim/lim_process_assoc_req_frame.c
  23. 0 13
      core/mac/src/pe/lim/lim_process_cfg_updates.c
  24. 7 33
      core/mac/src/pe/lim/lim_process_mlm_host_roam.c
  25. 1 3
      core/mac/src/pe/lim/lim_process_mlm_req_messages.c
  26. 14 20
      core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c
  27. 7 17
      core/mac/src/pe/lim/lim_process_sme_req_messages.c
  28. 1 7
      core/mac/src/pe/lim/lim_send_management_frames.c
  29. 1 1
      core/mac/src/pe/lim/lim_session.c
  30. 2 1
      core/mac/src/pe/lim/lim_utils.c
  31. 5 2
      core/mac/src/pe/sch/sch_beacon_process.c
  32. 0 6
      core/mac/src/pe/sch/sch_message.c
  33. 1 1
      core/sap/src/sap_fsm.c
  34. 2 7
      core/sme/src/csr/csr_api_roam.c
  35. 1 6
      core/wma/src/wma_features.c
  36. 40 52
      core/wma/src/wma_mgmt.c
  37. 1 7
      core/wma/src/wma_power.c

+ 19 - 18
components/mlme/core/src/wlan_mlme_main.c

@@ -207,36 +207,37 @@ static void mlme_update_sap_protection_cfg(struct wlan_objmgr_psoc *psoc,
 static void mlme_update_sap_cfg(struct wlan_objmgr_psoc *psoc,
 				struct wlan_mlme_cfg_sap *sap_cfg)
 {
-	sap_cfg->beacon_interval = cfg_default(CFG_BEACON_INTERVAL);
+	sap_cfg->beacon_interval = cfg_get(psoc, CFG_BEACON_INTERVAL);
 	sap_cfg->dtim_interval = cfg_default(CFG_DTIM_PERIOD);
 	sap_cfg->listen_interval = cfg_default(CFG_LISTEN_INTERVAL);
 	sap_cfg->sap_11g_policy = cfg_default(CFG_11G_ONLY_POLICY);
 	sap_cfg->assoc_sta_limit = cfg_default(CFG_ASSOC_STA_LIMIT);
-	sap_cfg->enable_lte_coex = cfg_get(psoc, CFG_INI_ENABLE_LTE_COEX);
+	sap_cfg->enable_lte_coex = cfg_get(psoc, CFG_ENABLE_LTE_COEX);
 	sap_cfg->rmc_action_period_freq =
 		cfg_default(CFG_RMC_ACTION_PERIOD_FREQUENCY);
-	sap_cfg->rate_tx_mgmt = cfg_get(psoc, CFG_INI_RATE_FOR_TX_MGMT);
-	sap_cfg->rate_tx_mgmt_2g = cfg_get(psoc, CFG_INI_RATE_FOR_TX_MGMT_2G);
-	sap_cfg->rate_tx_mgmt_5g = cfg_get(psoc, CFG_INI_RATE_FOR_TX_MGMT_5G);
-	sap_cfg->tele_bcn_wakeup_en = cfg_get(psoc, CFG_INI_TELE_BCN_WAKEUP_EN);
-	sap_cfg->tele_bcn_max_li = cfg_get(psoc, CFG_INI_TELE_BCN_MAX_LI);
-	sap_cfg->sap_get_peer_info = cfg_get(psoc, CFG_INI_SAP_GET_PEER_INFO);
+	sap_cfg->rate_tx_mgmt = cfg_get(psoc, CFG_RATE_FOR_TX_MGMT);
+	sap_cfg->rate_tx_mgmt_2g = cfg_get(psoc, CFG_RATE_FOR_TX_MGMT_2G);
+	sap_cfg->rate_tx_mgmt_5g = cfg_get(psoc, CFG_RATE_FOR_TX_MGMT_5G);
+	sap_cfg->tele_bcn_wakeup_en = cfg_get(psoc, CFG_TELE_BCN_WAKEUP_EN);
+	sap_cfg->tele_bcn_max_li = cfg_get(psoc, CFG_TELE_BCN_MAX_LI);
+	sap_cfg->sap_get_peer_info = cfg_get(psoc, CFG_SAP_GET_PEER_INFO);
 	sap_cfg->sap_allow_all_chan_param_name =
-			cfg_get(psoc, CFG_INI_SAP_ALLOW_ALL_CHANNEL_PARAM);
-	sap_cfg->sap_max_no_peers = cfg_get(psoc, CFG_INI_SAP_MAX_NO_PEERS);
+			cfg_get(psoc, CFG_SAP_ALLOW_ALL_CHANNEL_PARAM);
+	sap_cfg->sap_max_no_peers = cfg_get(psoc, CFG_SAP_MAX_NO_PEERS);
 	sap_cfg->sap_max_offload_peers =
-			cfg_get(psoc, CFG_INI_SAP_MAX_OFFLOAD_PEERS);
+			cfg_get(psoc, CFG_SAP_MAX_OFFLOAD_PEERS);
 	sap_cfg->sap_max_offload_reorder_buffs =
-			cfg_get(psoc, CFG_INI_SAP_MAX_OFFLOAD_REORDER_BUFFS);
+			cfg_get(psoc, CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS);
 	sap_cfg->sap_ch_switch_beacon_cnt =
-			cfg_get(psoc, CFG_INI_SAP_CH_SWITCH_BEACON_CNT);
-	sap_cfg->sap_ch_switch_mode = cfg_get(psoc, CFG_INI_SAP_CH_SWITCH_MODE);
-	sap_cfg->sap_internal_restart_name =
-			cfg_get(psoc, CFG_INI_SAP_INTERNAL_RESTART_NAME);
+			cfg_get(psoc, CFG_SAP_CH_SWITCH_BEACON_CNT);
+	sap_cfg->sap_ch_switch_mode = cfg_get(psoc, CFG_SAP_CH_SWITCH_MODE);
+	sap_cfg->sap_internal_restart =
+			cfg_get(psoc, CFG_SAP_INTERNAL_RESTART);
 	sap_cfg->chan_switch_hostapd_rate_enabled_name =
-		cfg_get(psoc, CFG_INI_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME);
+		cfg_get(psoc, CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME);
 	sap_cfg->reduced_beacon_interval =
-		cfg_get(psoc, CFG_INI_REDUCED_BEACON_INTERVAL);
+		cfg_get(psoc, CFG_REDUCED_BEACON_INTERVAL);
+
 }
 
 static void mlme_init_obss_ht40_cfg(struct wlan_objmgr_psoc *psoc,

+ 54 - 54
components/mlme/dispatcher/inc/cfg_mlme_sap.h

@@ -30,8 +30,8 @@
 			"1,2,3,4,5,6,7,8,9,0", \
 			"CFG_SSID")
 
-#define CFG_BEACON_INTERVAL CFG_UINT( \
-			"cfg_beacon_interval", \
+#define CFG_BEACON_INTERVAL CFG_INI_UINT( \
+			"gBeaconInterval", \
 			0, \
 			65535, \
 			100, \
@@ -87,10 +87,10 @@
  *
  * </ini>
  */
- #define CFG_INI_ENABLE_LTE_COEX CFG_INI_BOOL( \
-			"cfg_enable_lte_coex", \
+ #define CFG_ENABLE_LTE_COEX CFG_INI_BOOL( \
+			"gEnableLTECoex", \
 			0, \
-			"CFG_ENABLE_LTE_COEX")
+			"enabled lte coex")
 
 #define CFG_RMC_ACTION_PERIOD_FREQUENCY CFG_UINT( \
 			"cfg_rcm_action_period_frequency", \
@@ -117,13 +117,13 @@
  *
  * </ini>
  */
- #define CFG_INI_RATE_FOR_TX_MGMT CFG_INI_UINT( \
-			"cfg_rate_for_tx_mgmt", \
+ #define CFG_RATE_FOR_TX_MGMT CFG_INI_UINT( \
+			"gRateForTxMgmt", \
 			0, \
 			0xFF, \
 			0xFF, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_RATE_FOR_TX_MGMT")
+			"set rate for mgmt tx")
 
 /*
  * <ini>
@@ -141,13 +141,13 @@
  *
  * </ini>
  */
- #define CFG_INI_RATE_FOR_TX_MGMT_2G CFG_INI_UINT( \
-			"cfg_rate_for_tx_mgmt_2g", \
+ #define CFG_RATE_FOR_TX_MGMT_2G CFG_INI_UINT( \
+			"gRateForTxMgmt2G", \
 			0, \
 			255, \
 			255, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_RATE_FOR_TX_MGMT_2G")
+			"set rate for mgmt tx 2g")
 
 /*
  * <ini>
@@ -166,13 +166,13 @@
  *
  * </ini>
  */
- #define CFG_INI_RATE_FOR_TX_MGMT_5G CFG_INI_UINT( \
-			"cfg_rate_for_tx_mgmt_5g", \
+ #define CFG_RATE_FOR_TX_MGMT_5G CFG_INI_UINT( \
+			"gRateForTxMgmt5G", \
 			0, \
 			255, \
 			255, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_RATE_FOR_TX_MGMT_5G")
+			"set rate for mgmt tx 5g")
 
 /*
  * <ini>
@@ -191,10 +191,10 @@
  *
  * </ini>
  */
-#define CFG_INI_TELE_BCN_WAKEUP_EN CFG_INI_BOOL( \
+#define CFG_TELE_BCN_WAKEUP_EN CFG_INI_BOOL( \
 			"gTelescopicBeaconWakeupEn", \
 			0, \
-			"CFG_TELE_BCN_WAKEUP_EN")
+			"set tescopic beacon wakeup")
 
 /*
  * <ini>
@@ -213,13 +213,13 @@
  *
  * </ini>
  */
- #define CFG_INI_TELE_BCN_MAX_LI CFG_INI_UINT( \
+ #define CFG_TELE_BCN_MAX_LI CFG_INI_UINT( \
 			"telescopicBeaconMaxListenInterval", \
 			0, \
 			7, \
 			5, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_TELE_BCN_MAX_LI")
+			"set telescopic beacon max listen")
 
 /*
  * <ini>
@@ -234,10 +234,10 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_GET_PEER_INFO CFG_INI_BOOL( \
+ #define CFG_SAP_GET_PEER_INFO CFG_INI_BOOL( \
 			"gSapGetPeerInfo", \
 			0, \
-			"CFG_INI_SAP_GET_PEER_INFO")
+			"sap get peer info")
 
 /*
  * <ini>
@@ -256,10 +256,10 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_ALLOW_ALL_CHANNEL_PARAM CFG_INI_BOOL( \
+ #define CFG_SAP_ALLOW_ALL_CHANNEL_PARAM CFG_INI_BOOL( \
 			"gSapAllowAllChannel", \
 			0, \
-			"CFG_INI_SAP_ALLOW_ALL_CHANNEL_PARAM")
+			"sap allow all channel params")
 
 /*
  * <ini>
@@ -278,13 +278,13 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_MAX_NO_PEERS CFG_INI_UINT( \
+ #define CFG_SAP_MAX_NO_PEERS CFG_INI_UINT( \
 			"gSoftApMaxPeers", \
 			1, \
 			32, \
 			32, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_SAP_MAX_NO_PEERS")
+			"max no of peers")
 
 /*
  * <ini>
@@ -303,13 +303,13 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_MAX_OFFLOAD_PEERS CFG_INI_UINT( \
+ #define CFG_SAP_MAX_OFFLOAD_PEERS CFG_INI_UINT( \
 			"gMaxOffloadPeers", \
 			2, \
 			5, \
 			2, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_SAP_MAX_OFFLOAD_PEERS")
+			"max offload peers")
 
 /*
  * <ini>
@@ -328,13 +328,13 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_MAX_OFFLOAD_REORDER_BUFFS CFG_INI_UINT( \
+ #define CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS CFG_INI_UINT( \
 			"gMaxOffloadReorderBuffs", \
 			0, \
 			3, \
 			2, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_SAP_MAX_OFFLOAD_REORDER_BUFFS")
+			"sap max offload reorder buffs")
 
 /*
  * <ini>
@@ -353,13 +353,13 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_CH_SWITCH_BEACON_CNT CFG_INI_UINT( \
+ #define CFG_SAP_CH_SWITCH_BEACON_CNT CFG_INI_UINT( \
 			"g_sap_chanswitch_beacon_cnt", \
 			1, \
 			10, \
 			10, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_SAP_CH_SWITCH_BEACON_CNT")
+			"set channel switch beacon count")
 
 /*
  * <ini>
@@ -376,10 +376,10 @@
  *
  * </ini>
  */
-#define CFG_INI_SAP_CH_SWITCH_MODE CFG_INI_BOOL( \
+#define CFG_SAP_CH_SWITCH_MODE CFG_INI_BOOL( \
 			"g_sap_chanswitch_mode", \
 			1, \
-			"CFG_INI_SAP_CH_SWITCH_MODE")
+			"sap channel switch mode")
 
 /*
  * <ini>
@@ -398,10 +398,10 @@
  *
  * </ini>
  */
- #define CFG_INI_SAP_INTERNAL_RESTART_NAME CFG_INI_BOOL( \
+ #define CFG_SAP_INTERNAL_RESTART CFG_INI_BOOL( \
 			"gEnableSapInternalRestart", \
 			1, \
-			"CFG_SAP_INTERNAL_RESTART_NAME")
+			"sap internal restart")
 
 /*
  * <ini>
@@ -420,10 +420,10 @@
  *
  * </ini>
  */
- #define CFG_INI_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME CFG_INI_BOOL( \
+ #define CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME CFG_INI_BOOL( \
 			"gChanSwitchHostapdRateEnabled", \
 			0, \
-			"CFG_INI_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME")
+			"chan switch hostapd rate enabled")
 
 /*
  * gReducedBeaconInterval - beacon interval reduced
@@ -444,13 +444,13 @@
  *
  * </ini>
  */
-#define CFG_INI_REDUCED_BEACON_INTERVAL CFG_INI_UINT( \
+#define CFG_REDUCED_BEACON_INTERVAL CFG_INI_UINT( \
 			"gReducedBeaconInterval", \
 			0, \
 			100, \
 			0, \
 			CFG_VALUE_OR_DEFAULT, \
-			"CFG_INI_REDUCED_BEACON_INTERVAL")
+			"reduced beacon interval")
 
  #define CFG_SAP_ALL \
 	CFG(CFG_SSID) \
@@ -459,22 +459,22 @@
 	CFG(CFG_LISTEN_INTERVAL) \
 	CFG(CFG_11G_ONLY_POLICY) \
 	CFG(CFG_ASSOC_STA_LIMIT) \
-	CFG(CFG_INI_ENABLE_LTE_COEX) \
+	CFG(CFG_ENABLE_LTE_COEX) \
 	CFG(CFG_RMC_ACTION_PERIOD_FREQUENCY) \
-	CFG(CFG_INI_RATE_FOR_TX_MGMT) \
-	CFG(CFG_INI_RATE_FOR_TX_MGMT_2G) \
-	CFG(CFG_INI_RATE_FOR_TX_MGMT_5G) \
-	CFG(CFG_INI_TELE_BCN_WAKEUP_EN) \
-	CFG(CFG_INI_TELE_BCN_MAX_LI) \
-	CFG(CFG_INI_SAP_GET_PEER_INFO) \
-	CFG(CFG_INI_SAP_ALLOW_ALL_CHANNEL_PARAM) \
-	CFG(CFG_INI_SAP_MAX_NO_PEERS) \
-	CFG(CFG_INI_SAP_MAX_OFFLOAD_PEERS) \
-	CFG(CFG_INI_SAP_MAX_OFFLOAD_REORDER_BUFFS) \
-	CFG(CFG_INI_SAP_CH_SWITCH_BEACON_CNT) \
-	CFG(CFG_INI_SAP_CH_SWITCH_MODE) \
-	CFG(CFG_INI_SAP_INTERNAL_RESTART_NAME) \
-	CFG(CFG_INI_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME) \
-	CFG(CFG_INI_REDUCED_BEACON_INTERVAL)
+	CFG(CFG_RATE_FOR_TX_MGMT) \
+	CFG(CFG_RATE_FOR_TX_MGMT_2G) \
+	CFG(CFG_RATE_FOR_TX_MGMT_5G) \
+	CFG(CFG_TELE_BCN_WAKEUP_EN) \
+	CFG(CFG_TELE_BCN_MAX_LI) \
+	CFG(CFG_SAP_GET_PEER_INFO) \
+	CFG(CFG_SAP_ALLOW_ALL_CHANNEL_PARAM) \
+	CFG(CFG_SAP_MAX_NO_PEERS) \
+	CFG(CFG_SAP_MAX_OFFLOAD_PEERS) \
+	CFG(CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS) \
+	CFG(CFG_SAP_CH_SWITCH_BEACON_CNT) \
+	CFG(CFG_SAP_CH_SWITCH_MODE) \
+	CFG(CFG_SAP_INTERNAL_RESTART) \
+	CFG(CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME) \
+	CFG(CFG_REDUCED_BEACON_INTERVAL)
 
 #endif /* __CFG_MLME_SAP_H */

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

@@ -126,4 +126,151 @@ QDF_STATUS wlan_mlme_get_num_11ag_tx_chains(struct wlan_objmgr_psoc *psoc,
 QDF_STATUS wlan_mlme_configure_chain_mask(struct wlan_objmgr_psoc *psoc,
 					  uint8_t session_id);
 
+/**
+ * wlan_mlme_set_sap_listen_interval() - Set the sap listen interval
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
+					     int value);
+
+/**
+ * wlan_mlme_set_assoc_sta_limit() - Set the assoc sta limit
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_set_assoc_sta_limit(struct wlan_objmgr_psoc *psoc,
+					 int value);
+
+/**
+ * wlan_mlme_set_rmc_action_period_freq() - Set the rmc action period frequency
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_set_rmc_action_period_freq(struct wlan_objmgr_psoc *psoc,
+						int value);
+
+/**
+ * wlan_mlme_set_sap_get_peer_info() - get the sap get peer info
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_get_peer_info(struct wlan_objmgr_psoc *psoc,
+					   bool *value);
+
+/**
+ * wlan_mlme_get_sap_allow_all_channels() - get the value of sap allow all
+ * channels
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_allow_all_channels(struct wlan_objmgr_psoc *psoc,
+						bool *value);
+
+/**
+ * wlan_mlme_get_sap_allow_all_channels() - get the value sap max peers
+ * @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_peers(struct wlan_objmgr_psoc *psoc,
+				       int *value);
+
+/**
+ * wlan_mlme_set_sap_max_peers() - set the value sap max peers
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_set_sap_max_peers(struct wlan_objmgr_psoc *psoc,
+				       int value);
+
+/**
+ * wlan_mlme_get_sap_max_offload_peers() - get the value sap max offload peers
+ * @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_offload_peers(struct wlan_objmgr_psoc *psoc,
+					       int *value);
+
+/**
+ * wlan_mlme_get_sap_max_offload_reorder_buffs() - get the value sap max offload
+ * reorder buffs.
+ * @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_offload_reorder_buffs(struct wlan_objmgr_psoc
+						       *psoc, int *value);
+
+/**
+ * wlan_mlme_get_sap_chn_switch_bcn_count() - get the value sap max channel
+ * switch beacon count
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_chn_switch_bcn_count(struct wlan_objmgr_psoc *psoc,
+						  int *value);
+
+/**
+ * wlan_mlme_get_sap_chn_switch_mode() - get the sap channel
+ * switch mode
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_chn_switch_mode(struct wlan_objmgr_psoc *psoc,
+					     bool *value);
+
+/**
+ * wlan_mlme_get_sap_internal_restart() - get the sap internal
+ * 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_internal_restart(struct wlan_objmgr_psoc *psoc,
+					      bool *value);
+
+/**
+ * wlan_mlme_get_sap_reduced_beacon_interval() - get the sap reduced
+ * beacon interval
+ * @psoc: pointer to psoc object
+ * @value: Value that needs to be set from the caller
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS wlan_mlme_get_sap_reduced_beacon_interval(struct wlan_objmgr_psoc
+						     *psoc, int *value);
+
+/**
+ * wlan_mlme_get_sap_chan_switch_rate_enabled() - get the sap rate hostapd
+ * enabled beacon interval
+ * @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_switch_rate_enabled(struct wlan_objmgr_psoc
+						      *psoc, bool *value);
+
 #endif /* _WLAN_MLME_API_H_ */

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

@@ -113,8 +113,8 @@ struct wlan_mlme_cfg_sap {
 	uint8_t sap_max_offload_peers;
 	uint8_t sap_max_offload_reorder_buffs;
 	uint8_t sap_ch_switch_beacon_cnt;
+	bool sap_internal_restart;
 	bool sap_ch_switch_mode;
-	bool sap_internal_restart_name;
 	bool chan_switch_hostapd_rate_enabled_name;
 	uint8_t reduced_beacon_interval;
 };

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

@@ -366,4 +366,231 @@ ucfg_mlme_set_roaming_offload(struct wlan_objmgr_psoc *psoc,
 QDF_STATUS
 ucfg_mlme_get_first_scan_bucket_threshold(struct wlan_objmgr_psoc *psoc,
 					  uint8_t *val);
+/**
+ * ucfg_mlme_set_sap_listen_interval() - Set the Sap listen interval
+ * @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_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
+					     int value)
+{
+	return wlan_mlme_set_sap_listen_interval(psoc, value);
+}
+
+/**
+ * ucfg_mlme_set_assoc_sta_limit() - Set the assoc sta limit
+ * @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_assoc_sta_limit(struct wlan_objmgr_psoc *psoc,
+					 int value)
+{
+	return wlan_mlme_set_assoc_sta_limit(psoc, value);
+}
+
+/**
+ * ucfg_mlme_set_rmc_action_period_freq() - Set the rmc action period frequency
+ * @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_rmc_action_period_freq(struct wlan_objmgr_psoc *psoc,
+						int value)
+{
+	return wlan_mlme_set_rmc_action_period_freq(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_get_peer_info() - get the sap get peer info
+ * @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_get_peer_info(struct wlan_objmgr_psoc *psoc,
+					   bool *value)
+{
+	return wlan_mlme_get_sap_get_peer_info(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_allow_all_channels() - get the sap allow all channels
+ * @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_allow_all_channels(struct wlan_objmgr_psoc *psoc,
+						bool *value)
+{
+	return wlan_mlme_get_sap_allow_all_channels(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_max_peers() - get the sap max peers
+ * @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_peers(struct wlan_objmgr_psoc *psoc,
+				       int *value)
+{
+	return wlan_mlme_get_sap_max_peers(psoc, value);
+}
+
+/**
+ * ucfg_mlme_set_sap_max_peers() - Set the sap max peers
+ * @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_sap_max_peers(struct wlan_objmgr_psoc *psoc, int value)
+{
+	return wlan_mlme_set_sap_max_peers(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_max_offload_peers() - get the sap max offload peers
+ * @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_offload_peers(struct wlan_objmgr_psoc *psoc,
+					       int *value)
+{
+	return wlan_mlme_get_sap_max_offload_peers(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_max_offload_reorder_buffs() - get the sap max offload
+ * reorder buffs
+ * @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_offload_reorder_buffs(struct wlan_objmgr_psoc
+						       *psoc, int *value)
+{
+	return wlan_mlme_get_sap_max_offload_reorder_buffs(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_chn_switch_bcn_count() - get the sap channel
+ * switch beacon count
+ * @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_chn_switch_bcn_count(struct wlan_objmgr_psoc *psoc,
+						  int *value)
+{
+	return wlan_mlme_get_sap_chn_switch_bcn_count(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_channel_switch_mode() - get the sap channel switch mode
+ * @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_channel_switch_mode(struct wlan_objmgr_psoc *psoc,
+						 bool *value)
+{
+	return wlan_mlme_get_sap_chn_switch_mode(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_internal_restart() - get sap internal restart value
+ * @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_internal_restart(struct wlan_objmgr_psoc *psoc,
+					      bool *value)
+{
+	return wlan_mlme_get_sap_internal_restart(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_reduces_beacon_interval() - get the sap reduces beacon
+ * interval
+ * @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_reduces_beacon_interval(struct wlan_objmgr_psoc
+						     *psoc, int *value)
+{
+	return wlan_mlme_get_sap_reduced_beacon_interval(psoc, value);
+}
+
+/**
+ * ucfg_mlme_get_sap_chan_switch_rate_enabled() - get the sap channel
+ * switch rate enabled.
+ * @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_chan_switch_rate_enabled(struct wlan_objmgr_psoc
+						      *psoc, bool *value)
+{
+	return wlan_mlme_get_sap_chan_switch_rate_enabled(psoc, value);
+}
+
 #endif /* _WLAN_MLME_UCFG_API_H_ */

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

@@ -226,3 +226,239 @@ QDF_STATUS wlan_mlme_configure_chain_mask(struct wlan_objmgr_psoc *psoc,
 
 	return QDF_STATUS_SUCCESS;
 }
+
+QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
+					     int 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;
+	}
+
+	if (cfg_in_range(CFG_LISTEN_INTERVAL, value))
+		mlme_obj->cfg.sap_cfg.listen_interval = value;
+	else
+		return QDF_STATUS_E_FAILURE;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_set_assoc_sta_limit(struct wlan_objmgr_psoc *psoc,
+					 int 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;
+	}
+
+	if (cfg_in_range(CFG_ASSOC_STA_LIMIT, value))
+		mlme_obj->cfg.sap_cfg.assoc_sta_limit = value;
+	else
+		return QDF_STATUS_E_FAILURE;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_set_rmc_action_period_freq(struct wlan_objmgr_psoc *psoc,
+						int 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;
+	}
+
+	if (cfg_in_range(CFG_RMC_ACTION_PERIOD_FREQUENCY, value))
+		mlme_obj->cfg.sap_cfg.rmc_action_period_freq = value;
+	else
+		return QDF_STATUS_E_FAILURE;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_get_peer_info(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.sap_get_peer_info;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_allow_all_channels(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.sap_allow_all_chan_param_name;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_max_peers(struct wlan_objmgr_psoc *psoc,
+				       int *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_max_no_peers;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_set_sap_max_peers(struct wlan_objmgr_psoc *psoc,
+				       int 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;
+	}
+
+	if (cfg_in_range(CFG_RMC_ACTION_PERIOD_FREQUENCY, value))
+		mlme_obj->cfg.sap_cfg.sap_max_no_peers = value;
+	else
+		return QDF_STATUS_E_FAILURE;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_max_offload_peers(struct wlan_objmgr_psoc *psoc,
+					       int *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_max_offload_peers;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_max_offload_reorder_buffs(struct wlan_objmgr_psoc
+						       *psoc, int *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_max_offload_reorder_buffs;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_chn_switch_bcn_count(struct wlan_objmgr_psoc *psoc,
+						  int *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_ch_switch_beacon_cnt;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_chn_switch_mode(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.sap_ch_switch_mode;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_internal_restart(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.sap_internal_restart;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_reduced_beacon_interval(struct wlan_objmgr_psoc
+						     *psoc, int *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.reduced_beacon_interval;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS wlan_mlme_get_sap_chan_switch_rate_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.sap_cfg.chan_switch_hostapd_rate_enabled_name;
+
+	return QDF_STATUS_SUCCESS;
+}

+ 2 - 1
core/cds/src/cds_api.c

@@ -68,6 +68,7 @@
 #ifdef QCA_WIFI_QCA8074
 #include <target_if_dp.h>
 #endif
+#include "wlan_mlme_ucfg_api.h"
 
 /* Preprocessor Definitions and Constants */
 
@@ -594,7 +595,7 @@ QDF_STATUS cds_open(struct wlan_objmgr_psoc *psoc)
 	 * con_mode change happens from FTM mode to any other mode.
 	 */
 	if (QDF_DRIVER_TYPE_PRODUCTION == cds_cfg->driver_type)
-		hdd_ctx->config->maxNumberOfPeers = cds_cfg->max_station;
+		ucfg_mlme_set_sap_max_peers(psoc, cds_cfg->max_station);
 
 	HTCHandle = cds_get_context(QDF_MODULE_ID_HTC);
 	if (!HTCHandle) {

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

@@ -2487,28 +2487,6 @@ enum hdd_dot11_mode {
 #define CFG_AP_LINK_MONITOR_PERIOD_MAX           (50)
 #define CFG_AP_LINK_MONITOR_PERIOD_DEFAULT       (10)
 
-/*
- * <ini>
- * gBeaconInterval - Beacon interval for SoftAP
- * @Min: 0
- * @Max: 65535
- * @Default: 100
- *
- * This ini is used to set beacon interval for SoftAP
- *
- * Related: None.
- *
- * Supported Feature: SAP
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-#define CFG_BEACON_INTERVAL_NAME               "gBeaconInterval"
-#define CFG_BEACON_INTERVAL_MIN                WNI_CFG_BEACON_INTERVAL_STAMIN
-#define CFG_BEACON_INTERVAL_MAX                WNI_CFG_BEACON_INTERVAL_STAMAX
-#define CFG_BEACON_INTERVAL_DEFAULT            WNI_CFG_BEACON_INTERVAL_STADEF
-
 #ifdef FEATURE_WLAN_AUTO_SHUTDOWN
 #define CFG_WLAN_AUTO_SHUTDOWN              "gWlanAutoShutdown"
 #define CFG_WLAN_AUTO_SHUTDOWN_MIN          (0)
@@ -2555,11 +2533,6 @@ enum hdd_dot11_mode {
 #define CFG_DISABLE_PACKET_FILTER_MAX		(1)
 #define CFG_DISABLE_PACKET_FILTER_DEFAULT	(1)
 
-#define CFG_ENABLE_LTE_COEX              "gEnableLTECoex"
-#define CFG_ENABLE_LTE_COEX_MIN               (0)
-#define CFG_ENABLE_LTE_COEX_MAX               (1)
-#define CFG_ENABLE_LTE_COEX_DEFAULT           (0)
-
 #define CFG_VCC_RSSI_TRIGGER_NAME             "gVccRssiTrigger"
 #define CFG_VCC_RSSI_TRIGGER_MIN              (0)
 #define CFG_VCC_RSSI_TRIGGER_MAX              (80)
@@ -3792,11 +3765,6 @@ enum station_keepalive_method {
 #define CFG_RM_CAPABILITY_NAME            "rm_capability"
 #define CFG_RM_CAPABILITY_DEFAULT         "73,10,91,00,04"
 
-#define CFG_TELE_BCN_MAX_LI_NAME                     "telescopicBeaconMaxListenInterval"
-#define CFG_TELE_BCN_MAX_LI_MIN                      (0)
-#define CFG_TELE_BCN_MAX_LI_MAX                      (7)
-#define CFG_TELE_BCN_MAX_LI_DEFAULT                  (5)
-
 #define CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_NAME      "gNeighborLookupThreshold"
 #define CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MIN       (10)
 #define CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX       (120)
@@ -3827,29 +3795,6 @@ enum station_keepalive_method {
 #define CFG_ROAM_BEACON_RSSI_WEIGHT_MAX                 (16)
 #define CFG_ROAM_BEACON_RSSI_WEIGHT_DEFAULT             (14)
 
-/*
- * <ini>
- * gTelescopicBeaconWakeupEn - Set teles copic beacon wakeup
- * @Min: 0
- * @Max: 1
- * @Default: 0
- *
- * This ini is used to set default teles copic beacon wakeup
- *
- * Related: None
- *
- * Supported Feature: STA
- *
- * Usage: Internal/External
- *
- * </ini>
- */
-
-#define CFG_TELE_BCN_WAKEUP_EN_NAME            "gTelescopicBeaconWakeupEn"
-#define CFG_TELE_BCN_WAKEUP_EN_MIN             (0)
-#define CFG_TELE_BCN_WAKEUP_EN_MAX             (1)
-#define CFG_TELE_BCN_WAKEUP_EN_DEFAULT         (0)
-
 #define CFG_AP_DATA_AVAIL_POLL_PERIOD_NAME      "gApDataAvailPollInterval"
 #define CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN       (WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD_STAMIN)
 #define CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX       (WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD_STAMAX)
@@ -5255,85 +5200,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_ENABLE_TX_STBC_MAX                   (1)
 #define CFG_ENABLE_TX_STBC_DEFAULT               (0)
 
-/*
- * <ini>
- * gSapGetPeerInfo - Enable/Disable remote peer info query support
- * @Min: 0 - Disable remote peer info query support
- * @Max: 1 - Enable remote peer info query support
- * @Default: 0
- *
- * This ini is used to enable/disable remote peer info query support
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_SAP_GET_PEER_INFO                      "gSapGetPeerInfo"
-#define CFG_SAP_GET_PEER_INFO_MIN                   (0)
-#define CFG_SAP_GET_PEER_INFO_MAX                   (1)
-#define CFG_SAP_GET_PEER_INFO_DEFAULT               (0)
-
-/*
- * <ini>
- * gRateForTxMgmt - rate for tx mgmt frame
- * @Min: 0x0
- * @Max: 0xFF
- * @Default: 0xFF
- *
- * This ini is used to configure the rate for tx
- * mgmt frame. Default 0xFF means disable.
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_RATE_FOR_TX_MGMT                  "gRateForTxMgmt"
-#define CFG_RATE_FOR_TX_MGMT_MIN              (WNI_CFG_RATE_FOR_TX_MGMT_STAMIN)
-#define CFG_RATE_FOR_TX_MGMT_MAX              (WNI_CFG_RATE_FOR_TX_MGMT_STAMAX)
-#define CFG_RATE_FOR_TX_MGMT_DEFAULT          (WNI_CFG_RATE_FOR_TX_MGMT_STADEF)
-
-/*
- * <ini>
- * gRateForTxMgmt2G - rate for tx mgmt frame on 2G
- * @Min: 0x0
- * @Max: 0xFF
- * @Default: 0xFF
- *
- * This ini is used to configure the rate for tx
- * mgmt frame on 2G Band. Default 0xFF means disable.
- * It has higher priority and will overwrite gRateForTxMgmt
- * setting.
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_RATE_FOR_TX_MGMT_2G            "gRateForTxMgmt2G"
-#define CFG_RATE_FOR_TX_MGMT_2G_MIN        (WNI_CFG_RATE_FOR_TX_MGMT_2G_STAMIN)
-#define CFG_RATE_FOR_TX_MGMT_2G_MAX        (WNI_CFG_RATE_FOR_TX_MGMT_2G_STAMAX)
-#define CFG_RATE_FOR_TX_MGMT_2G_DEFAULT    (WNI_CFG_RATE_FOR_TX_MGMT_2G_STADEF)
-
-/*
- * <ini>
- * gRateForTxMgmt5G - rate for tx mgmt frame on 5G
- * @Min: 0x0
- * @Max: 0xFF
- * @Default: 0xFF
- *
- * This ini is used to configure the rate for tx
- * mgmt frame on 5G Band. Default 0xFF means disable.
- * It has higher priority and will overwrite gRateForTxMgmt
- * setting.
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_RATE_FOR_TX_MGMT_5G            "gRateForTxMgmt5G"
-#define CFG_RATE_FOR_TX_MGMT_5G_MIN        (WNI_CFG_RATE_FOR_TX_MGMT_5G_STAMIN)
-#define CFG_RATE_FOR_TX_MGMT_5G_MAX        (WNI_CFG_RATE_FOR_TX_MGMT_5G_STAMAX)
-#define CFG_RATE_FOR_TX_MGMT_5G_DEFAULT    (WNI_CFG_RATE_FOR_TX_MGMT_5G_STADEF)
-
 /*
  * <ini>
  * gPreventLinkDown - Enable to prevent bus link from going down
@@ -5513,14 +5379,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MAX     (1)
 #define CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_DEFAULT (0)
 
-/*
- * SAP ALLOW All Channels
- */
-#define CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_NAME          "gSapAllowAllChannel"
-#define CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN           (0)
-#define CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX           (1)
-#define CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_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)
@@ -5691,11 +5549,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_VHT_MPDU_LEN_MAX                           (2)
 #define CFG_VHT_MPDU_LEN_DEFAULT                       (0)
 
-#define CFG_SAP_MAX_NO_PEERS                       "gSoftApMaxPeers"
-#define CFG_SAP_MAX_NO_PEERS_MIN                   (1)
-#define CFG_SAP_MAX_NO_PEERS_MAX                   (SIR_SAP_MAX_NUM_PEERS)
-#define CFG_SAP_MAX_NO_PEERS_DEFAULT               (SIR_SAP_MAX_NUM_PEERS)
-
 /*
  * <ini>
  * gEnableDebugLog - Enable/Disable the Connection related logs
@@ -6043,16 +5896,6 @@ enum hdd_link_speed_rpt_type {
 
 #endif /* QCA_LL_TX_FLOW_CONTROL_V2 */
 
-#define CFG_SAP_MAX_OFFLOAD_PEERS                  "gMaxOffloadPeers"
-#define CFG_SAP_MAX_OFFLOAD_PEERS_MIN              (2)
-#define CFG_SAP_MAX_OFFLOAD_PEERS_MAX              (5)
-#define CFG_SAP_MAX_OFFLOAD_PEERS_DEFAULT          (2)
-
-#define CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS          "gMaxOffloadReorderBuffs"
-#define CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MIN      (0)
-#define CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MAX      (3)
-#define CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_DEFAULT  (2)
-
 #ifdef FEATURE_WLAN_RA_FILTERING
 #define CFG_RA_FILTER_ENABLE_NAME                  "gRAFilterEnable"
 #define CFG_RA_FILTER_ENABLE_MIN                   (0)
@@ -7874,11 +7717,6 @@ enum hdd_link_speed_rpt_type {
 #define CFG_SUB_20_CHANNEL_WIDTH_MAX               (WLAN_SUB_20_CH_WIDTH_10)
 #define CFG_SUB_20_CHANNEL_WIDTH_DEFAULT           (WLAN_SUB_20_CH_WIDTH_NONE)
 
-#define CFG_SAP_INTERNAL_RESTART_NAME    "gEnableSapInternalRestart"
-#define CFG_SAP_INTERNAL_RESTART_MIN     (0)
-#define CFG_SAP_INTERNAL_RESTART_MAX     (1)
-#define CFG_SAP_INTERNAL_RESTART_DEFAULT (1)
-
 /*
  * <ini>
  * restart_beaconing_on_chan_avoid_event - control the beaconing entity to move
@@ -9419,7 +9257,6 @@ enum hdd_wext_control {
  * corresponding IE needs to be included in probe request.
  *
  * Example:
- * ========
  * If IE 221 needs to be in the probe request, set the corresponding bit
  * as follows:
  * a= IE/32 = 221/32 = 6 = g_probe_req_ie_bitmap_6
@@ -9642,46 +9479,6 @@ enum hdd_wext_control {
 #define CFG_PROBE_REQ_OUI_DEFAULT ""
 /* End of probe request IE whitelisting feature ini params */
 
-/*
- * <ini>
- * g_sap_chanswitch_beacon_cnt - channel switch beacon count
- * @Min: 1
- * @Max: 10
- * @Default: 10
- *
- * This ini is used to configure channel switch beacon count
- *
- * Related: none
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_SAP_CH_SWITCH_BEACON_CNT         "g_sap_chanswitch_beacon_cnt"
-#define CFG_SAP_CH_SWITCH_BEACON_CNT_MIN     (1)
-#define CFG_SAP_CH_SWITCH_BEACON_CNT_MAX     (10)
-#define CFG_SAP_CH_SWITCH_BEACON_CNT_DEFAULT (10)
-
-/*
- * <ini>
- * g_sap_chanswitch_mode - channel switch mode
- * @Min: 0
- * @Max: 1
- * @Default: 1
- *
- * This ini is used to configure channel switch mode
- *
- * Related: none
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_SAP_CH_SWITCH_MODE         "g_sap_chanswitch_mode"
-#define CFG_SAP_CH_SWITCH_MODE_MIN     (0)
-#define CFG_SAP_CH_SWITCH_MODE_MAX     (1)
-#define CFG_SAP_CH_SWITCH_MODE_DEFAULT (1)
-
 /**
  * gSetRTSForSIFSBursting - set rts for sifs bursting
  * @Min: 0
@@ -10133,35 +9930,6 @@ enum hdd_external_acs_policy {
 #define CFG_IS_SAE_ENABLED_MIN     (0)
 #define CFG_IS_SAE_ENABLED_MAX     (1)
 
-/*
- * <ini>
- * gChanSwitchHostapdRateEnabled - Enable/disable hostapd rate when doing SAP
- * channel switch
- * @Min: 0
- * @Max: 1
- * @Default: 0
- *
- * This ini is used to set supported rates calculated from hostapd.conf file
- * or not when doing SAP channel switch. It must set it to 0 when cross-band
- * channel switch happens such as from 2G to 5G or 5G to 2G.
- *
- * Related: When doing SAP channel switch, if gChanSwitchHostapdRateEnabled is
- * set to 1, supported rates will be calculated from hostapd.conf file,
- * if gChanSwitchHostapdRateEnabled is set to 0, supported rates will be
- * calculated from driver default rates.
- *
- * Supported Feature: SAP
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME \
-	"gChanSwitchHostapdRateEnabled"
-#define CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_MIN     (0)
-#define CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_MAX     (1)
-#define CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_DEFAULT (0)
-
 #ifdef WLAN_FEATURE_PACKET_FILTERING
 /*
  * <ini>
@@ -10222,30 +9990,6 @@ enum hdd_external_acs_policy {
 #define CFG_DFS_BEACON_TX_ENHANCED_MAX     (1)
 #define CFG_DFS_BEACON_TX_ENHANCED_DEFAULT (0)
 
-/*
- * gReducedBeaconInterval - beacon interval reduced
- * @Min: 0
- * @Max: 100
- * @Default: 0
- *
- * This ini is used to reduce beacon interval before channel
- * switch (when val great than 0, or the feature is disabled).
- * It would reduce the downtime on the STA side which is
- * waiting for beacons from the AP to resume back transmission.
- * Switch back the beacon_interval to its original value after
- * channel switch based on the timeout.
- *
- * Related: none
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_REDUCED_BEACON_INTERVAL         "gReducedBeaconInterval"
-#define CFG_REDUCED_BEACON_INTERVAL_MIN     (0)
-#define CFG_REDUCED_BEACON_INTERVAL_MAX     (100)
-#define CFG_REDUCED_BEACON_INTERVAL_DEFAULT (0)
-
 /*
  * oce_enable_rssi_assoc_reject - Enable/disable rssi based assoc rejection
  * @Min: 0
@@ -11322,11 +11066,9 @@ struct hdd_config {
 	uint16_t apProtection;
 	bool apOBSSProtEnabled;
 	bool apDisableIntraBssFwd;
-	uint8_t enableLTECoex;
 	uint32_t apKeepAlivePeriod;
 	enum station_keepalive_method sta_keepalive_method;
 	uint32_t apLinkMonitorPeriod;
-	uint32_t nBeaconInterval;
 	uint8_t nTxPowerCap;    /* In dBm */
 	bool allow_tpc_from_ap;
 	uint8_t disablePacketFilter;
@@ -11480,7 +11222,6 @@ struct hdd_config {
 	bool AddTSWhenACMIsOff;
 
 	uint8_t nBandCapability;
-	bool teleBcnWakeupEn;
 
 /* QDF Trace Control*/
 	uint16_t qdf_trace_enable_wdi;
@@ -11510,7 +11251,6 @@ struct hdd_config {
 #ifdef ENABLE_MTRACE_LOG
 	bool enable_mtrace;
 #endif
-	uint16_t nTeleBcnMaxListenInterval;
 	uint8_t enableBypass11d;
 	uint8_t enableDFSChnlScan;
 	uint8_t enable_dfs_pno_chnl_scan;
@@ -11591,7 +11331,6 @@ struct hdd_config {
 	uint8_t scanAgingTimeout;
 	uint8_t disableLDPCWithTxbfAP;
 	uint8_t enableMCCAdaptiveScheduler;
-	bool sapAllowAllChannel;
 	bool enableSSR;
 	bool enable_data_stall_det;
 	bool enableVhtFor24GHzBand;
@@ -11637,7 +11376,6 @@ struct hdd_config {
 	uint32_t WlanAutoShutdown;
 #endif
 	uint8_t wowEnable;
-	uint8_t maxNumberOfPeers;
 	uint8_t disableDFSChSwitch;
 	uint8_t enableDFSMasterCap;
 	uint16_t thermalTempMinLevel0;
@@ -11658,10 +11396,6 @@ struct hdd_config {
 	bool fRegChangeDefCountry;
 	bool acs_with_more_param;
 	uint32_t auto_channel_select_weight;
-	bool sap_get_peer_info;
-	uint8_t rate_for_tx_mgmt;
-	uint8_t rate_for_tx_mgmt_2g;
-	uint8_t rate_for_tx_mgmt_5g;
 #ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
 	uint32_t TxFlowLowWaterMark;
 	uint32_t TxFlowHighWaterMarkOffset;
@@ -11677,8 +11411,6 @@ struct hdd_config {
 	uint32_t TxFlowStopQueueThreshold;
 	uint32_t TxFlowStartQueueOffset;
 #endif
-	uint8_t apMaxOffloadPeers;
-	uint8_t apMaxOffloadReorderBuffs;
 	bool advertiseConcurrentOperation;
 	bool enableMemDeepSleep;
 	bool enable_cck_tx_fir_override;
@@ -11896,9 +11628,6 @@ struct hdd_config {
 	bool multicast_replay_filter;
 	bool goptimize_chan_avoid_event;
 	bool fw_timeout_crash;
-	/* beacon count before channel switch */
-	uint8_t sap_chanswitch_beacon_cnt;
-	uint8_t sap_chanswitch_mode;
 	uint32_t rx_wakelock_timeout;
 	uint32_t max_sched_scan_plan_interval;
 	uint32_t max_sched_scan_plan_iterations;
@@ -11976,7 +11705,6 @@ struct hdd_config {
 	bool enable_dtim_1chrx;
 	int8_t rssi_thresh_offset_5g;
 	uint32_t scan_11d_interval;
-	bool chan_switch_hostapd_rate_enabled;
 	bool is_bssid_hint_priority;
 	bool is_fils_enabled;
 	uint16_t wlm_latency_enable;
@@ -11990,7 +11718,6 @@ struct hdd_config {
 #endif
 	uint8_t enable_phy_reg_retention;
 	uint8_t dfs_beacon_tx_enhanced;
-	uint16_t reduced_beacon_interval;
 	bool rssi_assoc_reject_enabled;
 	bool oce_probe_req_rate_enabled;
 	bool oce_probe_resp_rate_enabled;

+ 3 - 172
core/hdd/src/wlan_hdd_cfg.c

@@ -611,13 +611,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_AP_STA_SECURITY_SEPERATION_MIN,
 		     CFG_AP_STA_SECURITY_SEPERATION_MAX),
 
-	REG_VARIABLE(CFG_ENABLE_LTE_COEX, WLAN_PARAM_Integer,
-		     struct hdd_config, enableLTECoex,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_ENABLE_LTE_COEX_DEFAULT,
-		     CFG_ENABLE_LTE_COEX_MIN,
-		     CFG_ENABLE_LTE_COEX_MAX),
-
 #ifdef FEATURE_WLAN_DYNAMIC_CVM
 	REG_VARIABLE(CFG_VC_MODE_BITMAP, WLAN_PARAM_HexInteger,
 		struct hdd_config, vc_mode_cfg_bitmap,
@@ -655,13 +648,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_DISABLE_PACKET_FILTER_MIN,
 		     CFG_DISABLE_PACKET_FILTER_MAX),
 
-	REG_VARIABLE(CFG_BEACON_INTERVAL_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, nBeaconInterval,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
-		     CFG_BEACON_INTERVAL_DEFAULT,
-		     CFG_BEACON_INTERVAL_MIN,
-		     CFG_BEACON_INTERVAL_MAX),
-
 	REG_VARIABLE(CFG_VCC_RSSI_TRIGGER_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, nVccRssiTrigger,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -1443,13 +1429,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_QOS_WMM_TS_INFO_ACK_POLICY_MIN,
 		     CFG_QOS_WMM_TS_INFO_ACK_POLICY_MAX),
 
-	REG_VARIABLE(CFG_TELE_BCN_WAKEUP_EN_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, teleBcnWakeupEn,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_TELE_BCN_WAKEUP_EN_DEFAULT,
-		     CFG_TELE_BCN_WAKEUP_EN_MIN,
-		     CFG_TELE_BCN_WAKEUP_EN_MAX),
-
 	REG_VARIABLE(CFG_STA_KEEPALIVE_METHOD_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, sta_keepalive_method,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -1642,13 +1621,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_ENABLE_MTRACE_MAX),
 #endif
 
-	REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, nTeleBcnMaxListenInterval,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_TELE_BCN_MAX_LI_DEFAULT,
-		     CFG_TELE_BCN_MAX_LI_MIN,
-		     CFG_TELE_BCN_MAX_LI_MAX),
-
 	REG_VARIABLE(CFG_ENABLE_BYPASS_11D_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, enableBypass11d,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -1970,34 +1942,6 @@ struct reg_table_entry g_registry_table[] = {
 			     CFG_DISABLE_DFS_JAPAN_W53_MAX,
 			     ch_notify_set_g_disable_dfs_japan_w53, 0),
 
-	REG_VARIABLE(CFG_SAP_GET_PEER_INFO, WLAN_PARAM_Integer,
-		     struct hdd_config, sap_get_peer_info,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_SAP_GET_PEER_INFO_DEFAULT,
-		     CFG_SAP_GET_PEER_INFO_MIN,
-		     CFG_SAP_GET_PEER_INFO_MAX),
-
-	REG_VARIABLE(CFG_RATE_FOR_TX_MGMT, WLAN_PARAM_HexInteger,
-		     struct hdd_config, rate_for_tx_mgmt,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_RATE_FOR_TX_MGMT_DEFAULT,
-		     CFG_RATE_FOR_TX_MGMT_MIN,
-		     CFG_RATE_FOR_TX_MGMT_MAX),
-
-	REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_2G, WLAN_PARAM_HexInteger,
-		     struct hdd_config, rate_for_tx_mgmt_2g,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_RATE_FOR_TX_MGMT_2G_DEFAULT,
-		     CFG_RATE_FOR_TX_MGMT_2G_MIN,
-		     CFG_RATE_FOR_TX_MGMT_2G_MAX),
-
-	REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_5G, WLAN_PARAM_HexInteger,
-		     struct hdd_config, rate_for_tx_mgmt_5g,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_RATE_FOR_TX_MGMT_5G_DEFAULT,
-		     CFG_RATE_FOR_TX_MGMT_5G_MIN,
-		     CFG_RATE_FOR_TX_MGMT_5G_MAX),
-
 	REG_VARIABLE(CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, enableFirstScan2GOnly,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -2111,13 +2055,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MIN,
 		     CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MAX),
 
-	REG_VARIABLE(CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_NAME, WLAN_PARAM_Integer,
-		     struct hdd_config, sapAllowAllChannel,
-		     VAR_FLAGS_OPTIONAL,
-		     CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
-		     CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
-		     CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_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,
@@ -2309,13 +2246,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_IBSS_ATIM_WIN_SIZE_MIN,
 		     CFG_IBSS_ATIM_WIN_SIZE_MAX),
 
-	REG_VARIABLE(CFG_SAP_MAX_NO_PEERS, WLAN_PARAM_Integer,
-		     struct hdd_config, maxNumberOfPeers,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_SAP_MAX_NO_PEERS_DEFAULT,
-		     CFG_SAP_MAX_NO_PEERS_MIN,
-		     CFG_SAP_MAX_NO_PEERS_MAX),
-
 	REG_VARIABLE(CFG_IBSS_IS_POWER_SAVE_ALLOWED_NAME, WLAN_PARAM_Integer,
 		     struct hdd_config, isIbssPowerSaveAllowed,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -2572,20 +2502,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_INITIAL_SCAN_NO_DFS_CHNL_MIN,
 		     CFG_INITIAL_SCAN_NO_DFS_CHNL_MAX),
 
-	REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_PEERS, WLAN_PARAM_Integer,
-		     struct hdd_config, apMaxOffloadPeers,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
-		     CFG_SAP_MAX_OFFLOAD_PEERS_DEFAULT,
-		     CFG_SAP_MAX_OFFLOAD_PEERS_MIN,
-		     CFG_SAP_MAX_OFFLOAD_PEERS_MAX),
-
-	REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS, WLAN_PARAM_Integer,
-		     struct hdd_config, apMaxOffloadReorderBuffs,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
-		     CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_DEFAULT,
-		     CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MIN,
-		     CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MAX),
-
 	REG_VARIABLE(CFG_ADVERTISE_CONCURRENT_OPERATION_NAME,
 		     WLAN_PARAM_Integer,
 		     struct hdd_config, advertiseConcurrentOperation,
@@ -3694,18 +3610,7 @@ struct reg_table_entry g_registry_table[] = {
 		CFG_RX_WAKELOCK_TIMEOUT_DEFAULT,
 		CFG_RX_WAKELOCK_TIMEOUT_MIN,
 		CFG_RX_WAKELOCK_TIMEOUT_MAX),
-	REG_VARIABLE(CFG_SAP_CH_SWITCH_BEACON_CNT, WLAN_PARAM_Integer,
-		     struct hdd_config, sap_chanswitch_beacon_cnt,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_SAP_CH_SWITCH_BEACON_CNT_DEFAULT,
-		     CFG_SAP_CH_SWITCH_BEACON_CNT_MIN,
-		     CFG_SAP_CH_SWITCH_BEACON_CNT_MAX),
-	REG_VARIABLE(CFG_SAP_CH_SWITCH_MODE, WLAN_PARAM_Integer,
-		     struct hdd_config, sap_chanswitch_mode,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_SAP_CH_SWITCH_MODE_DEFAULT,
-		     CFG_SAP_CH_SWITCH_MODE_MIN,
-		     CFG_SAP_CH_SWITCH_MODE_MAX),
+
 	REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_INT_NAME, WLAN_PARAM_Integer,
 		struct hdd_config, max_sched_scan_plan_interval,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -3726,13 +3631,6 @@ struct reg_table_entry g_registry_table[] = {
 		     CFG_PRIVATE_WEXT_CONTROL_MIN,
 		     CFG_PRIVATE_WEXT_CONTROL_MAX),
 
-	REG_VARIABLE(CFG_SAP_INTERNAL_RESTART_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, sap_internal_restart,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_SAP_INTERNAL_RESTART_DEFAULT,
-		CFG_SAP_INTERNAL_RESTART_MIN,
-		CFG_SAP_INTERNAL_RESTART_MAX),
-
 	REG_VARIABLE(CFG_RESTART_BEACONING_ON_CH_AVOID_NAME, WLAN_PARAM_Integer,
 		struct hdd_config, restart_beaconing_on_chan_avoid_event,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -4084,14 +3982,6 @@ struct reg_table_entry g_registry_table[] = {
 		CFG_SCAN_11D_INTERVAL_MIN,
 		CFG_SCAN_11D_INTERVAL_MAX),
 
-	REG_VARIABLE(CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME,
-		WLAN_PARAM_Integer,
-		struct hdd_config, chan_switch_hostapd_rate_enabled,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_DEFAULT,
-		CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_MIN,
-		CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_MAX),
-
 	REG_VARIABLE(CFG_IS_BSSID_HINT_PRIORITY_NAME, WLAN_PARAM_Integer,
 		struct hdd_config, is_bssid_hint_priority,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -4165,13 +4055,6 @@ struct reg_table_entry g_registry_table[] = {
 		CFG_DFS_BEACON_TX_ENHANCED_MIN,
 		CFG_DFS_BEACON_TX_ENHANCED_MAX),
 
-	REG_VARIABLE(CFG_REDUCED_BEACON_INTERVAL, WLAN_PARAM_Integer,
-		struct hdd_config, reduced_beacon_interval,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_REDUCED_BEACON_INTERVAL_DEFAULT,
-		CFG_REDUCED_BEACON_INTERVAL_MIN,
-		CFG_REDUCED_BEACON_INTERVAL_MAX),
-
 	REG_VARIABLE(CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_NAME,
 		     WLAN_PARAM_Integer, struct hdd_config,
 		     rssi_assoc_reject_enabled,
@@ -5158,8 +5041,8 @@ static void hdd_set_power_save_offload_config(struct hdd_context *hdd_ctx)
 		 * Make sure CFG is updated because PE reads this
 		 * from CFG at the time of assoc or reassoc
 		 */
-		sme_cfg_set_int(hdd_ctx->mac_handle, WNI_CFG_LISTEN_INTERVAL,
-				listenInterval);
+		ucfg_mlme_set_sap_listen_interval(hdd_ctx->hdd_psoc,
+						  listenInterval);
 	}
 
 }
@@ -5906,12 +5789,6 @@ bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
 		hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME to CFG");
 	}
 
-	if (sme_cfg_set_int(mac_handle, WNI_CFG_BEACON_INTERVAL,
-		     config->nBeaconInterval) == QDF_STATUS_E_FAILURE) {
-		status = false;
-		hdd_err("Couldn't pass on WNI_CFG_BEACON_INTERVAL to CFG");
-	}
-
 	if (sme_cfg_set_int(mac_handle, WNI_CFG_MAX_PS_POLL,
 		     config->nMaxPsPoll) == QDF_STATUS_E_FAILURE) {
 		status = false;
@@ -5931,11 +5808,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_ENABLE_LTE_COEX,
-		     config->enableLTECoex) == QDF_STATUS_E_FAILURE) {
-		status = false;
-		hdd_err("Couldn't pass on WNI_CFG_ENABLE_LTE_COEX to CFG");
-	}
 
 	if (sme_cfg_set_int(mac_handle, WNI_CFG_AP_KEEP_ALIVE_TIMEOUT,
 		    config->apKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
@@ -5949,19 +5821,6 @@ bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
 		hdd_err("Couldn't pass on WNI_CFG_AP_LINK_MONITOR_TIMEOUT to CFG");
 	}
 
-	if (sme_cfg_set_int(mac_handle, WNI_CFG_TELE_BCN_WAKEUP_EN,
-		    config->teleBcnWakeupEn) == QDF_STATUS_E_FAILURE) {
-		status = false;
-		hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_WAKEUP_EN to CFG");
-	}
-
-	if (sme_cfg_set_int(mac_handle, WNI_CFG_TELE_BCN_MAX_LI,
-		    config->nTeleBcnMaxListenInterval) ==
-		    QDF_STATUS_E_FAILURE) {
-		status = false;
-		hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI to CFG");
-	}
-
 	if (sme_cfg_set_int(mac_handle, WNI_CFG_FRAGMENTATION_THRESHOLD,
 		    config->FragmentationThreshold) == QDF_STATUS_E_FAILURE) {
 		status = false;
@@ -6033,34 +5892,6 @@ bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
 		hdd_err("Couldn't pass on WNI_CFG_IBSS_ATIM_WIN_SIZE to CFG");
 	}
 
-	if (sme_cfg_set_int(mac_handle, WNI_CFG_RATE_FOR_TX_MGMT,
-			    config->rate_for_tx_mgmt) ==
-			    QDF_STATUS_E_FAILURE) {
-		status = false;
-		hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT to CCM");
-	}
-
-	if (sme_cfg_set_int(mac_handle, WNI_CFG_RATE_FOR_TX_MGMT_2G,
-			    config->rate_for_tx_mgmt_2g) ==
-			    QDF_STATUS_E_FAILURE) {
-		status = false;
-		hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_2G to CCM");
-	}
-
-	if (sme_cfg_set_int(mac_handle, WNI_CFG_RATE_FOR_TX_MGMT_5G,
-			    config->rate_for_tx_mgmt_5g) ==
-			    QDF_STATUS_E_FAILURE) {
-		status = false;
-		hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_5G to CCM");
-	}
-
-	if (sme_cfg_set_int(mac_handle, WNI_CFG_ASSOC_STA_LIMIT,
-			    config->maxNumberOfPeers) ==
-				QDF_STATUS_E_FAILURE) {
-		status = false;
-		hdd_err("Couldn't pass on WNI_CFG_ASSOC_STA_LIMIT to CFG");
-	}
-
 	return status;
 }
 

+ 18 - 14
core/hdd/src/wlan_hdd_cfg80211.c

@@ -125,6 +125,7 @@
 #include "wlan_crypto_global_api.h"
 #include "wlan_nl_to_crypto_params.h"
 #include "wlan_crypto_global_def.h"
+#include "cfg_ucfg_api.h"
 
 #define g_mode_rates_size (12)
 #define a_mode_rates_size (8)
@@ -12238,8 +12239,6 @@ int wlan_hdd_cfg80211_init(struct device *dev,
 	if (pCfg->enableDFSMasterCap)
 		wlan_hdd_cfg80211_set_dfs_offload_feature(wiphy);
 
-	wiphy->max_ap_assoc_sta = pCfg->maxNumberOfPeers;
-
 #ifdef QCA_HT_2040_COEX
 	wiphy->features |= NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE;
 #endif
@@ -12352,8 +12351,10 @@ static void wlan_hdd_update_ht_cap(struct hdd_context *hdd_ctx)
  */
 void wlan_hdd_update_wiphy(struct hdd_context *hdd_ctx)
 {
-	hdd_ctx->wiphy->max_ap_assoc_sta = hdd_ctx->config->maxNumberOfPeers;
+	int value;
 
+	ucfg_mlme_get_sap_max_peers(hdd_ctx->hdd_psoc, &value);
+	hdd_ctx->wiphy->max_ap_assoc_sta = value;
 	wlan_hdd_update_ht_cap(hdd_ctx);
 }
 
@@ -12657,12 +12658,17 @@ QDF_STATUS wlan_hdd_validate_operation_channel(struct hdd_adapter *adapter,
 	u32 indx = 0;
 	mac_handle_t mac_handle = hdd_adapter_get_mac_handle(adapter);
 	uint8_t fValidChannel = false, count = 0;
-	struct hdd_config *hdd_pConfig_ini =
-		(WLAN_HDD_GET_CTX(adapter))->config;
+	QDF_STATUS status;
+	bool value;
+	struct hdd_context *hdd_ctx;
 
 	num_ch = WNI_CFG_VALID_CHANNEL_LIST_LEN;
-
-	if (hdd_pConfig_ini->sapAllowAllChannel) {
+	hdd_ctx = WLAN_HDD_GET_CTX(adapter);
+	status = ucfg_mlme_get_sap_allow_all_channels(hdd_ctx->hdd_psoc,
+						      &value);
+	if (status != QDF_STATUS_SUCCESS)
+		hdd_err("Unable to fetch sap allow all channels");
+	if (value) {
 		/* Validate the channel */
 		for (count = CHAN_ENUM_1; count <= CHAN_ENUM_173; count++) {
 			if (channel == WLAN_REG_CH_NUM(count)) {
@@ -17243,14 +17249,12 @@ static int __wlan_hdd_cfg80211_join_ibss(struct wiphy *wiphy,
 		}
 		qdf_copy_macaddr(&bssid, &hdd_ctx->config->IbssBssid);
 	}
-	if ((params->beacon_interval > CFG_BEACON_INTERVAL_MIN)
-	    && (params->beacon_interval <= CFG_BEACON_INTERVAL_MAX))
+
+	if (cfg_in_range(CFG_BEACON_INTERVAL, params->beacon_interval))
 		roam_profile->beaconInterval = params->beacon_interval;
-	else {
-		roam_profile->beaconInterval = CFG_BEACON_INTERVAL_DEFAULT;
-		hdd_debug("input beacon interval %d TU is invalid, use default %d TU",
-			params->beacon_interval, roam_profile->beaconInterval);
-	}
+	else
+		roam_profile->beaconInterval = cfg_get(hdd_ctx->hdd_psoc,
+						       CFG_BEACON_INTERVAL);
 
 	/* Set Channel */
 	if (channelNum)	{

+ 12 - 8
core/hdd/src/wlan_hdd_hostapd.c

@@ -4508,6 +4508,8 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
 	enum dfs_mode mode;
 	struct hdd_adapter *sta_adapter;
 	uint8_t ignore_cac = 0;
+	int value;
+	bool val;
 
 	hdd_enter();
 
@@ -4614,9 +4616,10 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
 	pConfig->auto_channel_select_weight =
 			     iniConfig->auto_channel_select_weight;
 	pConfig->disableDFSChSwitch = iniConfig->disableDFSChSwitch;
-	pConfig->sap_chanswitch_beacon_cnt =
-			    iniConfig->sap_chanswitch_beacon_cnt;
-	pConfig->sap_chanswitch_mode = iniConfig->sap_chanswitch_mode;
+	ucfg_mlme_get_sap_chn_switch_bcn_count(hdd_ctx->hdd_psoc, &value);
+	pConfig->sap_chanswitch_beacon_cnt = value;
+	ucfg_mlme_get_sap_channel_switch_mode(hdd_ctx->hdd_psoc, &val);
+	pConfig->sap_chanswitch_mode = val;
 
 	/* channel is already set in the set_channel Call back */
 	/* pConfig->channel = pCommitConfig->channel; */
@@ -4624,19 +4627,20 @@ int wlan_hdd_cfg80211_start_bss(struct hdd_adapter *adapter,
 	/* Protection parameter to enable or disable */
 	pConfig->protEnabled = iniConfig->apProtEnabled;
 
-	pConfig->chan_switch_hostapd_rate_enabled =
-		iniConfig->chan_switch_hostapd_rate_enabled;
+	ucfg_mlme_get_sap_chan_switch_rate_enabled(hdd_ctx->hdd_psoc, &val);
+	pConfig->chan_switch_hostapd_rate_enabled = val;
 
 	if (iniConfig->WlanMccToSccSwitchMode !=
 			QDF_MCC_TO_SCC_SWITCH_DISABLE) {
 		pConfig->chan_switch_hostapd_rate_enabled = false;
 	}
-
 	pConfig->enOverLapCh = iniConfig->gEnableOverLapCh;
+
+	ucfg_mlme_get_sap_reduces_beacon_interval(hdd_ctx->hdd_psoc, &value);
 	pConfig->dtim_period = pBeacon->dtim_period;
 	pConfig->dfs_beacon_tx_enhanced = iniConfig->dfs_beacon_tx_enhanced;
-	pConfig->reduced_beacon_interval =
-			iniConfig->reduced_beacon_interval;
+
+	pConfig->reduced_beacon_interval = value;
 	hdd_debug("acs_mode %d", pConfig->acs_cfg.acs_mode);
 
 	if (pConfig->acs_cfg.acs_mode == true) {

+ 10 - 13
core/hdd/src/wlan_hdd_hostapd_wext.c

@@ -39,6 +39,7 @@
 #include "wlan_dfs_utils_api.h"
 #include <wlan_ipa_ucfg_api.h>
 #include <wlan_cfg80211_mc_cp_stats.h>
+#include "wlan_mlme_ucfg_api.h"
 
 #define    IS_UP(_dev) \
 	(((_dev)->flags & (IFF_RUNNING|IFF_UP)) == (IFF_RUNNING|IFF_UP))
@@ -540,14 +541,13 @@ static __iw_softap_setparam(struct net_device *dev,
 				hdd_warn("Setting it to max allowed and continuing");
 				set_value = WNI_CFG_ASSOC_STA_LIMIT_STAMAX;
 			}
-			status = sme_cfg_set_int(mac_handle,
-						 WNI_CFG_ASSOC_STA_LIMIT,
-						 set_value);
-			if (status != QDF_STATUS_SUCCESS) {
-				hdd_err("setMaxAssoc failure, status: %d",
-				       status);
+			if (ucfg_mlme_set_assoc_sta_limit(hdd_ctx->hdd_psoc,
+							  set_value) !=
+			    QDF_STATUS_SUCCESS) {
+				hdd_err("CFG_ASSOC_STA_LIMIT failed");
 				ret = -EIO;
 			}
+
 		}
 		break;
 
@@ -1205,7 +1205,6 @@ static __iw_softap_getparam(struct net_device *dev,
 	struct hdd_adapter *adapter = (netdev_priv(dev));
 	int *value = (int *)extra;
 	int sub_cmd = value[0];
-	QDF_STATUS status;
 	int ret;
 	struct hdd_context *hdd_ctx;
 
@@ -1222,14 +1221,12 @@ static __iw_softap_getparam(struct net_device *dev,
 
 	switch (sub_cmd) {
 	case QCSAP_PARAM_MAX_ASSOC:
-		status = sme_cfg_get_int(hdd_ctx->mac_handle,
-					 WNI_CFG_ASSOC_STA_LIMIT,
-					 (uint32_t *)value);
-		if (QDF_STATUS_SUCCESS != status) {
-			hdd_err("get WNI_CFG_ASSOC_STA_LIMIT failed status: %d",
-				status);
+		if (ucfg_mlme_set_assoc_sta_limit(hdd_ctx->hdd_psoc, *value) !=
+		    QDF_STATUS_SUCCESS) {
+			hdd_err("CFG_ASSOC_STA_LIMIT failed");
 			ret = -EIO;
 		}
+
 		break;
 
 	case QCSAP_PARAM_GET_WLAN_DBG:

+ 4 - 5
core/hdd/src/wlan_hdd_ioctl.c

@@ -5109,11 +5109,10 @@ static int drv_cmd_set_rmc_action_period(struct hdd_adapter *adapter,
 	hdd_debug("uActionPeriod %d", uActionPeriod);
 	mac_handle = hdd_ctx->mac_handle;
 
-	if (sme_cfg_set_int(mac_handle,
-			    WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY,
-			    uActionPeriod)) {
-		hdd_err("Could not set SETRMCACTIONPERIOD %d",
-			  uActionPeriod);
+	if (ucfg_mlme_set_rmc_action_period_freq(hdd_ctx->hdd_psoc,
+						 uActionPeriod) !=
+						 QDF_STATUS_SUCCESS) {
+		hdd_err("Could not set SETRMCACTIONPERIOD %d", uActionPeriod);
 		ret = -EINVAL;
 		goto exit;
 	}

+ 39 - 24
core/hdd/src/wlan_hdd_main.c

@@ -1219,6 +1219,7 @@ static void hdd_update_tgt_services(struct hdd_context *hdd_ctx,
 	bool tdls_off_channel;
 	bool tdls_buffer_sta;
 	uint32_t tdls_uapsd_mask;
+	bool value;
 #endif
 	/* Set up UAPSD */
 	config->apUapsdEnabled &= cfg->uapsd;
@@ -1264,11 +1265,14 @@ static void hdd_update_tgt_services(struct hdd_context *hdd_ctx,
 		cfg_tdls_set_sleep_sta_enable(hdd_ctx->hdd_psoc, false);
 #endif
 	hdd_update_roam_offload(hdd_ctx, cfg);
-	config->sap_get_peer_info &= cfg->get_peer_info_enabled;
+
+	if (ucfg_mlme_get_sap_get_peer_info(hdd_ctx->hdd_psoc, &value) ==
+	   QDF_STATUS_SUCCESS)
+		value &= cfg->get_peer_info_enabled;
+
 	config->MAWCEnabled &= cfg->is_fw_mawc_capable;
 	hdd_update_tdls_config(hdd_ctx);
 	sme_update_tgt_services(hdd_ctx->mac_handle, cfg);
-
 }
 
 /**
@@ -2910,13 +2914,6 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx, bool reinit)
 
 		hdd_update_ipa_component_config(hdd_ctx);
 
-		ret = hdd_update_config(hdd_ctx);
-		if (ret) {
-			hdd_err("Failed to update configuration; errno: %d",
-				ret);
-			goto cds_free;
-		}
-
 		hdd_update_cds_ac_specs_params(hdd_ctx);
 
 		status = hdd_component_psoc_open(hdd_ctx->hdd_psoc);
@@ -2924,7 +2921,14 @@ int hdd_wlan_start_modules(struct hdd_context *hdd_ctx, bool reinit)
 			hdd_err("Failed to Open legacy components; status: %d",
 				status);
 			ret = qdf_status_to_os_return(status);
-			goto deinit_config;
+			goto cds_free;
+		}
+
+		ret = hdd_update_config(hdd_ctx);
+		if (ret) {
+			hdd_err("Failed to update configuration; errno: %d",
+				ret);
+			goto cds_free;
 		}
 
 		status = wbuff_module_init();
@@ -3035,8 +3039,6 @@ close:
 
 hdd_psoc_close:
 	hdd_component_psoc_close(hdd_ctx->hdd_psoc);
-
-deinit_config:
 	cds_deinit_ini_config();
 
 cds_free:
@@ -5406,6 +5408,7 @@ QDF_STATUS hdd_reset_all_adapters(struct hdd_context *hdd_ctx)
 	struct hdd_station_ctx *sta_ctx;
 	struct qdf_mac_addr peerMacAddr;
 	int sta_id;
+	bool value;
 
 	hdd_enter();
 
@@ -5422,8 +5425,8 @@ QDF_STATUS hdd_reset_all_adapters(struct hdd_context *hdd_ctx)
 			hdd_notify_tdls_reset_adapter(adapter->vdev);
 			adapter->session.station.hdd_reassoc_scenario = false;
 		}
-
-		if (hdd_ctx->config->sap_internal_restart &&
+		ucfg_mlme_get_sap_internal_restart(hdd_ctx->hdd_psoc, &value);
+		if (value &&
 		    adapter->device_mode == QDF_SAP_MODE) {
 			wlan_hdd_netif_queue_control(adapter,
 						     WLAN_STOP_ALL_NETIF_QUEUE,
@@ -6172,6 +6175,7 @@ QDF_STATUS hdd_start_all_adapters(struct hdd_context *hdd_ctx)
 {
 	struct hdd_adapter *adapter;
 	eConnectionState connState;
+	bool value;
 
 	hdd_enter();
 
@@ -6240,7 +6244,9 @@ QDF_STATUS hdd_start_all_adapters(struct hdd_context *hdd_ctx)
 			break;
 
 		case QDF_SAP_MODE:
-			if (hdd_ctx->config->sap_internal_restart)
+			ucfg_mlme_get_sap_internal_restart(hdd_ctx->hdd_psoc,
+							   &value);
+			if (value)
 				hdd_start_ap_adapter(adapter);
 
 			break;
@@ -8423,6 +8429,7 @@ void hdd_unsafe_channel_restart_sap(struct hdd_context *hdd_ctxt)
 	uint32_t i;
 	bool found = false;
 	uint8_t restart_chan;
+	bool value;
 
 	hdd_for_each_adapter(hdd_ctxt, adapter) {
 		if (!(adapter->device_mode == QDF_SAP_MODE &&
@@ -8483,9 +8490,10 @@ void hdd_unsafe_channel_restart_sap(struct hdd_context *hdd_ctxt)
 			hdd_debug("sending coex indication");
 			wlan_hdd_send_svc_nlink_msg(hdd_ctxt->radio_index,
 					WLAN_SVC_LTE_COEX_IND, NULL, 0);
-			hdd_debug("driver to start sap: %d",
-				hdd_ctxt->config->sap_internal_restart);
-			if (hdd_ctxt->config->sap_internal_restart)
+			ucfg_mlme_get_sap_internal_restart(hdd_ctxt->hdd_psoc,
+							   &value);
+			hdd_debug("driver to start sap: %d", value);
+			if (value)
 				hdd_switch_sap_channel(adapter, restart_chan,
 						       true);
 			else
@@ -9441,6 +9449,7 @@ static inline void hdd_ra_populate_cds_config(struct cds_config_info *cds_cfg,
 static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
 {
 	struct cds_config_info *cds_cfg;
+	int value;
 
 	cds_cfg = (struct cds_config_info *)qdf_mem_malloc(sizeof(*cds_cfg));
 	if (!cds_cfg) {
@@ -9485,10 +9494,13 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
 		hdd_ctx->config->crash_inject_enabled;
 
 	cds_cfg->enable_mc_list = hdd_ctx->config->fEnableMCAddrList;
-	cds_cfg->ap_maxoffload_peers = hdd_ctx->config->apMaxOffloadPeers;
 
-	cds_cfg->ap_maxoffload_reorderbuffs =
-		hdd_ctx->config->apMaxOffloadReorderBuffs;
+	ucfg_mlme_get_sap_max_offload_peers(hdd_ctx->hdd_psoc,
+					    &value);
+	cds_cfg->ap_maxoffload_peers = value;
+	ucfg_mlme_get_sap_max_offload_reorder_buffs(hdd_ctx->hdd_psoc,
+						    &value);
+	cds_cfg->ap_maxoffload_reorderbuffs = value;
 
 	cds_cfg->ap_disable_intrabss_fwd =
 		hdd_ctx->config->apDisableIntraBssFwd;
@@ -9544,7 +9556,8 @@ static int hdd_update_cds_config(struct hdd_context *hdd_ctx)
 	cds_cfg->apf_packet_filter_enable =
 		hdd_ctx->config->apf_packet_filter_enable;
 	cds_cfg->self_gen_frm_pwr = hdd_ctx->config->self_gen_frm_pwr;
-	cds_cfg->max_station = hdd_ctx->config->maxNumberOfPeers;
+	ucfg_mlme_get_sap_max_peers(hdd_ctx->hdd_psoc, &value);
+	cds_cfg->max_station = value;
 	cds_cfg->sub_20_channel_width = WLAN_SUB_20_CH_WIDTH_NONE;
 	cds_cfg->flow_steering_enabled = hdd_ctx->config->flow_steering_enable;
 	cds_cfg->max_msdus_per_rxinorderind =
@@ -10686,6 +10699,7 @@ int hdd_configure_cds(struct hdd_context *hdd_ctx)
 	uint16_t num_11b_tx_chains = 0;
 	uint16_t num_11ag_tx_chains = 0;
 	struct policy_mgr_dp_cbacks dp_cbs = {0};
+	bool value;
 
 	mac_handle = hdd_ctx->mac_handle;
 
@@ -10711,8 +10725,9 @@ int hdd_configure_cds(struct hdd_context *hdd_ctx)
 				    set_value, PDEV_CMD);
 	}
 
-	if (hdd_ctx->config->sap_get_peer_info) {
-		set_value = hdd_ctx->config->sap_get_peer_info;
+	ucfg_mlme_get_sap_get_peer_info(hdd_ctx->hdd_psoc, &value);
+	if (value) {
+		set_value = value;
 		sme_cli_set_command(0,
 				    (int)WMI_PDEV_PARAM_PEER_STATS_INFO_ENABLE,
 				    set_value, PDEV_CMD);

+ 3 - 1
core/hdd/src/wlan_hdd_power.c

@@ -1316,6 +1316,7 @@ QDF_STATUS hdd_wlan_re_init(void)
 	struct hdd_adapter *adapter;
 	int ret;
 	bool bug_on_reinit_failure = CFG_BUG_ON_REINIT_FAILURE_DEFAULT;
+	bool value;
 
 	hdd_prevent_suspend(WIFI_POWER_EVENT_WAKELOCK_DRIVER_REINIT);
 
@@ -1366,7 +1367,8 @@ QDF_STATUS hdd_wlan_re_init(void)
 	hdd_send_default_scan_ies(hdd_ctx);
 	hdd_info("WLAN host driver reinitiation completed!");
 
-	if (hdd_ctx->config->sap_internal_restart)
+	ucfg_mlme_get_sap_internal_restart(hdd_ctx->hdd_psoc, &value);
+	if (value)
 		hdd_ssr_restart_sap(hdd_ctx);
 
 	hdd_wlan_ssr_reinit_event();

+ 7 - 1
core/hdd/src/wlan_hdd_station_info.c

@@ -32,6 +32,7 @@
 #include <wlan_hdd_stats.h>
 #include <wlan_hdd_hostapd.h>
 #include <wlan_hdd_station_info.h>
+#include "wlan_mlme_ucfg_api.h"
 
 /*
  * define short names for the global vendor params
@@ -996,6 +997,8 @@ static int hdd_get_connected_station_info(struct hdd_context *hdd_ctx,
 	uint32_t nl_buf_len;
 	struct sir_peer_info_ext peer_info;
 	bool txrx_rate = true;
+	bool value;
+	QDF_STATUS status;
 
 	nl_buf_len = NLMSG_HDRLEN;
 	nl_buf_len += (sizeof(stainfo->max_phy_rate) + NLA_HDRLEN) +
@@ -1006,7 +1009,10 @@ static int hdd_get_connected_station_info(struct hdd_context *hdd_ctx,
 		(sizeof(stainfo->is_qos_enabled) + NLA_HDRLEN) +
 		(sizeof(stainfo->mode) + NLA_HDRLEN);
 
-	if (!hdd_ctx->config->sap_get_peer_info ||
+	status = ucfg_mlme_get_sap_get_peer_info(hdd_ctx->hdd_psoc, &value);
+	if (status != QDF_STATUS_SUCCESS)
+		hdd_err("Unable to fetch sap ger peer info");
+	if (!value ||
 	    wlan_hdd_get_peer_info(adapter, mac_addr, &peer_info)) {
 		hdd_err("fail to get tx/rx rate");
 		txrx_rate = false;

+ 6 - 9
core/hdd/src/wlan_hdd_wext.c

@@ -4178,13 +4178,9 @@ static int __iw_setint_getnone(struct net_device *dev,
 		if (!mac_handle)
 			return -EINVAL;
 
-		if ((WNI_CFG_ASSOC_STA_LIMIT_STAMIN > set_value) ||
-		    (WNI_CFG_ASSOC_STA_LIMIT_STAMAX < set_value)) {
-			ret = -EINVAL;
-		} else if (sme_cfg_set_int(mac_handle, WNI_CFG_ASSOC_STA_LIMIT,
-					set_value)
+		if (ucfg_mlme_set_assoc_sta_limit(hdd_ctx->hdd_psoc, set_value)
 			   != QDF_STATUS_SUCCESS) {
-			hdd_err("WNI_CFG_ASSOC_STA_LIMIT failed");
+			hdd_err("CFG_ASSOC_STA_LIMIT failed");
 			ret = -EIO;
 		}
 		break;
@@ -5531,11 +5527,12 @@ static int __iw_setnone_getint(struct net_device *dev,
 	}
 	case WE_GET_MAX_ASSOC:
 	{
-		if (sme_cfg_get_int(mac_handle, WNI_CFG_ASSOC_STA_LIMIT,
-				    (uint32_t *) value) != QDF_STATUS_SUCCESS) {
-			hdd_err("WNI_CFG_ASSOC_STA_LIMIT failed");
+		if (ucfg_mlme_set_assoc_sta_limit(hdd_ctx->hdd_psoc, *value) !=
+		    QDF_STATUS_SUCCESS) {
+			hdd_err("CFG_ASSOC_STA_LIMIT failed");
 			ret = -EIO;
 		}
+
 		break;
 	}
 

+ 0 - 1
core/mac/inc/ani_global.h

@@ -421,7 +421,6 @@ typedef struct sAniSirLim {
 
 	/* / Variable to keep track of number of currently associated STAs */
 	uint16_t gLimNumOfAniSTAs;      /* count of ANI peers */
-	uint16_t gLimAssocStaLimit;
 
 	/* Heart-Beat interval value */
 	uint32_t gLimHeartBeatCount;

+ 2 - 1
core/mac/src/pe/lim/lim_aid_mgmt.c

@@ -115,7 +115,8 @@ uint16_t lim_assign_peer_idx(tpAniSirGlobal pMac, tpPESession pSessionEntry)
 
 	/* make sure we haven't exceeded the configurable limit on associations */
 	/* This count is global to ensure that it doesn't exceed the hardware limits. */
-	if (pe_get_current_stas_count(pMac) >= pMac->lim.gLimAssocStaLimit) {
+	if (pe_get_current_stas_count(pMac) >=
+	    pMac->mlme_cfg->sap_cfg.assoc_sta_limit) {
 		/* too many associations already active */
 		return 0;
 	}

+ 1 - 8
core/mac/src/pe/lim/lim_api.c

@@ -207,7 +207,6 @@ static void __lim_init_vars(tpAniSirGlobal pMac)
 
 static void __lim_init_assoc_vars(tpAniSirGlobal pMac)
 {
-	pMac->lim.gLimAssocStaLimit = 0;
 	pMac->lim.gLimIbssStaLimit = 0;
 	/* Place holder for current authentication request */
 	/* being handled */
@@ -280,13 +279,7 @@ static QDF_STATUS __lim_init_config(tpAniSirGlobal pMac)
 	 * and they will be used throughout when there is no session
 	 */
 
-	if (wlan_cfg_get_int(pMac, WNI_CFG_ASSOC_STA_LIMIT, &val1)
-		!= QDF_STATUS_SUCCESS){
-		pe_err("cfg get assoc sta limit failed");
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	pMac->lim.gLimAssocStaLimit = val1;
+	val1 = pMac->mlme_cfg->sap_cfg.assoc_sta_limit;
 	pMac->lim.gLimIbssStaLimit = val1;
 	ht_cap_info = &pMac->mlme_cfg->ht_caps.ht_cap_info;
 

+ 5 - 10
core/mac/src/pe/lim/lim_assoc_utils.c

@@ -2899,10 +2899,7 @@ lim_add_sta_self(tpAniSirGlobal pMac, uint16_t staIdx, uint8_t updateSta,
 	pAddStaParams->vhtLdpcCapable =
 		((psessionEntry->txLdpcIniFeatureEnabled >> 1) & 0x01);
 
-	if (wlan_cfg_get_int(pMac, WNI_CFG_LISTEN_INTERVAL, &listenInterval) !=
-	    QDF_STATUS_SUCCESS)
-		pe_err("Couldn't get LISTEN_INTERVAL");
-
+	listenInterval = pMac->mlme_cfg->sap_cfg.listen_interval;
 	pAddStaParams->listenInterval = (uint16_t) listenInterval;
 
 	if (QDF_P2P_CLIENT_MODE == psessionEntry->pePersona) {
@@ -3798,9 +3795,8 @@ QDF_STATUS lim_sta_send_add_bss(tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp,
 
 	qdf_mem_copy(pAddBssParams->staContext.bssId,
 			bssDescription->bssId, sizeof(tSirMacAddr));
-	if (wlan_cfg_get_int(pMac, WNI_CFG_LISTEN_INTERVAL, &listen_interval) !=
-				QDF_STATUS_SUCCESS)
-		pe_err("Couldn't get LISTEN_INTERVAL");
+
+	listen_interval = pMac->mlme_cfg->sap_cfg.listen_interval;
 	pAddBssParams->staContext.listenInterval = listen_interval;
 
 	/* Fill Assoc id from the dph table */
@@ -4364,9 +4360,8 @@ QDF_STATUS lim_sta_send_add_bss_pre_assoc(tpAniSirGlobal pMac, uint8_t updateEnt
 
 	qdf_mem_copy(pAddBssParams->staContext.bssId,
 			bssDescription->bssId, sizeof(tSirMacAddr));
-	if (wlan_cfg_get_int(pMac, WNI_CFG_LISTEN_INTERVAL, &listen_interval) !=
-				QDF_STATUS_SUCCESS)
-		pe_err("Couldn't get LISTEN_INTERVAL");
+
+	listen_interval = pMac->mlme_cfg->sap_cfg.listen_interval;
 	pAddBssParams->staContext.listenInterval = listen_interval;
 	pAddBssParams->staContext.assocId = 0;
 	pAddBssParams->staContext.uAPSD = 0;

+ 2 - 7
core/mac/src/pe/lim/lim_process_assoc_req_frame.c

@@ -736,12 +736,7 @@ static bool lim_chk_is_11b_sta_supported(tpAniSirGlobal mac_ctx,
 	uint32_t cfg_11g_only;
 
 	if (phy_mode == WNI_CFG_PHY_MODE_11G) {
-		if (wlan_cfg_get_int(mac_ctx, WNI_CFG_11G_ONLY_POLICY,
-			&cfg_11g_only) != QDF_STATUS_SUCCESS) {
-			pe_err("couldn't get 11g-only flag");
-			return false;
-		}
-
+		cfg_11g_only = mac_ctx->mlme_cfg->sap_cfg.sap_11g_policy;
 		if (!assoc_req->extendedRatesPresent && cfg_11g_only) {
 			/*
 			 * Received Re/Association Request from 11b STA when 11g
@@ -1009,7 +1004,7 @@ static bool lim_process_assoc_req_no_sta_ctx(tpAniSirGlobal mac_ctx,
 {
 	/* Requesting STA is not currently associated */
 	if (pe_get_current_stas_count(mac_ctx) ==
-			mac_ctx->lim.gLimAssocStaLimit) {
+			mac_ctx->mlme_cfg->sap_cfg.assoc_sta_limit) {
 		/*
 		 * Maximum number of STAs that AP can handle reached.
 		 * Send Association response to peer MAC entity

+ 0 - 13
core/mac/src/pe/lim/lim_process_cfg_updates.c

@@ -234,14 +234,6 @@ void lim_handle_cf_gparam_update(tpAniSirGlobal pMac, uint32_t cfgId)
 		}
 		break;
 
-	case WNI_CFG_ASSOC_STA_LIMIT:
-		if (wlan_cfg_get_int(pMac, WNI_CFG_ASSOC_STA_LIMIT, &val1) !=
-		    QDF_STATUS_SUCCESS) {
-			pe_err("Unable to get WNI_CFG_ASSOC_STA_LIMIT");
-			break;
-		}
-		pMac->lim.gLimAssocStaLimit = (uint16_t) val1;
-		break;
 	default:
 		break;
 	}
@@ -366,10 +358,5 @@ static void lim_update_config(tpAniSirGlobal pMac, tpPESession psessionEntry)
 		pe_err("cfg get 11d enabled failed");
 	psessionEntry->lim11dEnabled = (val) ? 1 : 0;
 
-	if (wlan_cfg_get_int(pMac, WNI_CFG_ASSOC_STA_LIMIT, &val) != QDF_STATUS_SUCCESS) {
-		pe_err("cfg get assoc sta limit failed");
-	}
-	pMac->lim.gLimAssocStaLimit = (uint16_t) val;
-
 	pe_debug("Updated Lim shadow state based on CFG");
 }

+ 7 - 33
core/mac/src/pe/lim/lim_process_mlm_host_roam.c

@@ -522,9 +522,7 @@ void lim_process_sta_mlm_add_bss_rsp_ft(tpAniSirGlobal pMac,
 					psessionEntry);
 	}
 
-	if (wlan_cfg_get_int(pMac, WNI_CFG_LISTEN_INTERVAL, &listenInterval) !=
-	    QDF_STATUS_SUCCESS)
-		pe_err("Couldn't get LISTEN_INTERVAL");
+	listenInterval = pMac->mlme_cfg->sap_cfg.listen_interval;
 	pAddStaParams->listenInterval = (uint16_t) listenInterval;
 
 	wlan_cfg_get_int(pMac, WNI_CFG_DOT11_MODE, &selfStaDot11Mode);
@@ -660,38 +658,14 @@ void lim_process_mlm_ft_reassoc_req(tpAniSirGlobal pMac, uint32_t *pMsgBuf,
 	pMlmReassocReq->sessionId = psessionEntry->peSessionId;
 
 	/* If telescopic beaconing is enabled, set listen interval
-	   to WNI_CFG_TELE_BCN_MAX_LI
+	   to CFG_TELE_BCN_MAX_LI
 	 */
-	if (wlan_cfg_get_int(pMac, WNI_CFG_TELE_BCN_WAKEUP_EN, &teleBcnEn) !=
-	    QDF_STATUS_SUCCESS) {
-		pe_err("Couldn't get WNI_CFG_TELE_BCN_WAKEUP_EN");
-		qdf_mem_free(pMlmReassocReq);
-		return;
-	}
+	teleBcnEn = pMac->mlme_cfg->sap_cfg.tele_bcn_wakeup_en;
+	if (teleBcnEn)
+		val = pMac->mlme_cfg->sap_cfg.tele_bcn_max_li;
+	else
+		val = pMac->mlme_cfg->sap_cfg.listen_interval;
 
-	if (teleBcnEn) {
-		if (wlan_cfg_get_int(pMac, WNI_CFG_TELE_BCN_MAX_LI, &val) !=
-		    QDF_STATUS_SUCCESS) {
-			/**
-			 * Could not get ListenInterval value
-			 * from CFG. Log error.
-			 */
-			pe_err("could not retrieve ListenInterval");
-			qdf_mem_free(pMlmReassocReq);
-			return;
-		}
-	} else {
-		if (wlan_cfg_get_int(pMac, WNI_CFG_LISTEN_INTERVAL, &val) !=
-		    QDF_STATUS_SUCCESS) {
-			/**
-			 * Could not get ListenInterval value
-			 * from CFG. Log error.
-			 */
-			pe_err("could not retrieve ListenInterval");
-			qdf_mem_free(pMlmReassocReq);
-			return;
-		}
-	}
 	if (lim_set_link_state
 		    (pMac, eSIR_LINK_PREASSOC_STATE, psessionEntry->bssId,
 		    psessionEntry->selfMacAddr, NULL, NULL) != QDF_STATUS_SUCCESS) {

+ 1 - 3
core/mac/src/pe/lim/lim_process_mlm_req_messages.c

@@ -346,9 +346,7 @@ static void mlm_add_sta(tpAniSirGlobal mac_ctx, tpAddStaParams sta_param,
 
 	/* Configuration related parameters to be changed to support BT-AMP */
 
-	if (QDF_STATUS_SUCCESS != wlan_cfg_get_int(mac_ctx, WNI_CFG_LISTEN_INTERVAL,
-					     &val))
-		pe_warn("Couldn't get LISTEN_INTERVAL");
+	val = mac_ctx->mlme_cfg->sap_cfg.listen_interval;
 	sta_param->listenInterval = (uint16_t) val;
 
 	if (QDF_STATUS_SUCCESS != wlan_cfg_get_int(mac_ctx, WNI_CFG_SHORT_PREAMBLE,

+ 14 - 20
core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c

@@ -401,22 +401,14 @@ static void lim_send_mlm_assoc_req(tpAniSirGlobal mac_ctx,
 
 	/*
 	 * If telescopic beaconing is enabled, set listen interval to
-	 * WNI_CFG_TELE_BCN_MAX_LI
+	 * CFG_TELE_BCN_MAX_LI
 	 */
-	if (wlan_cfg_get_int(mac_ctx, WNI_CFG_TELE_BCN_WAKEUP_EN, &tele_bcn)
-		!= QDF_STATUS_SUCCESS)
-		pe_err("Couldn't get WNI_CFG_TELE_BCN_WAKEUP_EN");
-
-	val = WNI_CFG_LISTEN_INTERVAL_STADEF;
-	if (tele_bcn) {
-		if (wlan_cfg_get_int(mac_ctx, WNI_CFG_TELE_BCN_MAX_LI, &val) !=
-			QDF_STATUS_SUCCESS)
-			pe_err("could not retrieve ListenInterval");
-	} else {
-		if (wlan_cfg_get_int(mac_ctx, WNI_CFG_LISTEN_INTERVAL,
-			 &val) != QDF_STATUS_SUCCESS)
-			pe_err("could not retrieve ListenInterval");
-	}
+	tele_bcn = mac_ctx->mlme_cfg->sap_cfg.tele_bcn_wakeup_en;
+	if (tele_bcn)
+		val = mac_ctx->mlme_cfg->sap_cfg.tele_bcn_max_li;
+	else
+		val = mac_ctx->mlme_cfg->sap_cfg.listen_interval;
+
 #ifdef FEATURE_WLAN_DIAG_SUPPORT
 	lim_diag_event_report(mac_ctx, WLAN_PE_DIAG_ASSOC_REQ_EVENT,
 		session_entry, QDF_STATUS_SUCCESS, QDF_STATUS_SUCCESS);
@@ -2121,11 +2113,11 @@ static void lim_process_ap_mlm_add_bss_rsp(tpAniSirGlobal pMac,
 			    || (psessionEntry->gStartBssWPAIe.present))
 				pe_debug("WPA/WPA2 SAP configuration");
 			else {
-				if (pMac->lim.gLimAssocStaLimit >
+				if (pMac->mlme_cfg->sap_cfg.assoc_sta_limit >
 				    MAX_SUPPORTED_PEERS_WEP) {
 					pe_debug("WEP SAP Configuration");
-					pMac->lim.gLimAssocStaLimit =
-						MAX_SUPPORTED_PEERS_WEP;
+					pMac->mlme_cfg->sap_cfg.assoc_sta_limit
+					= MAX_SUPPORTED_PEERS_WEP;
 					isWepEnabled = true;
 				}
 			}
@@ -2145,9 +2137,11 @@ static void lim_process_ap_mlm_add_bss_rsp(tpAniSirGlobal pMac,
 		/* In lim_apply_configuration gLimAssocStaLimit is assigned from cfg.
 		 * So update the value to 16 in case SoftAP is configured in WEP.
 		 */
-		if ((pMac->lim.gLimAssocStaLimit > MAX_SUPPORTED_PEERS_WEP)
+		if ((pMac->mlme_cfg->sap_cfg.assoc_sta_limit >
+		    MAX_SUPPORTED_PEERS_WEP)
 		    && (isWepEnabled))
-			pMac->lim.gLimAssocStaLimit = MAX_SUPPORTED_PEERS_WEP;
+			pMac->mlme_cfg->sap_cfg.assoc_sta_limit =
+			MAX_SUPPORTED_PEERS_WEP;
 		psessionEntry->staId = pAddBssParams->staContext.staIdx;
 		mlmStartCnf.resultCode = eSIR_SME_SUCCESS;
 	} else {

+ 7 - 17
core/mac/src/pe/lim/lim_process_sme_req_messages.c

@@ -983,9 +983,7 @@ __lim_handle_sme_start_bss_request(tpAniSirGlobal mac_ctx, uint32_t *msg_buf)
 			mlm_start_req->wps_state = session->wps_state;
 
 		} else {
-			if (wlan_cfg_get_int(mac_ctx,
-				WNI_CFG_DTIM_PERIOD, &val) != QDF_STATUS_SUCCESS)
-				pe_err("could not retrieve DTIM Period");
+			val = mac_ctx->mlme_cfg->sap_cfg.dtim_interval;
 			mlm_start_req->dtimPeriod = (uint8_t) val;
 		}
 
@@ -1961,23 +1959,15 @@ static void __lim_process_sme_reassoc_req(tpAniSirGlobal mac_ctx,
 
 	/*
 	 * If telescopic beaconing is enabled, set listen interval to
-	 * WNI_CFG_TELE_BCN_MAX_LI
+	 * CFG_TELE_BCN_MAX_LI
 	 */
-	if (wlan_cfg_get_int(mac_ctx, WNI_CFG_TELE_BCN_WAKEUP_EN,
-				&tele_bcn_en) != QDF_STATUS_SUCCESS)
-		pe_err("Couldn't get WNI_CFG_TELE_BCN_WAKEUP_EN");
 
-	val = WNI_CFG_LISTEN_INTERVAL_STADEF;
+	tele_bcn_en = mac_ctx->mlme_cfg->sap_cfg.tele_bcn_wakeup_en;
 
-	if (tele_bcn_en) {
-		if (wlan_cfg_get_int(mac_ctx, WNI_CFG_TELE_BCN_MAX_LI, &val) !=
-		    QDF_STATUS_SUCCESS)
-			pe_err("could not retrieve ListenInterval");
-	} else {
-		if (wlan_cfg_get_int(mac_ctx, WNI_CFG_LISTEN_INTERVAL, &val) !=
-		    QDF_STATUS_SUCCESS)
-			pe_err("could not retrieve ListenInterval");
-	}
+	if (tele_bcn_en)
+		val = mac_ctx->mlme_cfg->sap_cfg.tele_bcn_max_li;
+	else
+		val = mac_ctx->mlme_cfg->sap_cfg.listen_interval;
 
 	mlm_reassoc_req->listenInterval = (uint16_t) val;
 

+ 1 - 7
core/mac/src/pe/lim/lim_send_management_frames.c

@@ -600,13 +600,7 @@ lim_send_probe_rsp_mgmt_frame(tpAniSirGlobal mac_ctx,
 		frm->BeaconInterval.interval =
 			mac_ctx->sch.schObject.gSchBeaconInterval;
 	} else {
-		sir_status = wlan_cfg_get_int(mac_ctx,
-				WNI_CFG_BEACON_INTERVAL, &cfg);
-		if (QDF_STATUS_SUCCESS != sir_status) {
-			pe_err("Failed to get WNI_CFG_BEACON_INTERVAL (%d)",
-				sir_status);
-			goto err_ret;
-		}
+		cfg = mac_ctx->mlme_cfg->sap_cfg.beacon_interval;
 		frm->BeaconInterval.interval = (uint16_t) cfg;
 	}
 

+ 1 - 1
core/mac/src/pe/lim/lim_session.c

@@ -212,7 +212,7 @@ static void pe_reset_protection_callback(void *ptr)
 
 	qdf_mem_zero(&beacon_params, sizeof(tUpdateBeaconParams));
 	/* index 0, is self node, peers start from 1 */
-	for (i = 1 ; i <= mac_ctx->lim.gLimAssocStaLimit ; i++) {
+	for (i = 1 ; i <= mac_ctx->mlme_cfg->sap_cfg.assoc_sta_limit ; i++) {
 		station_hash_node = dph_get_hash_entry(mac_ctx, i,
 					&pe_session_entry->dph.dphHashTable);
 		if (NULL == station_hash_node)

+ 2 - 1
core/mac/src/pe/lim/lim_utils.c

@@ -6649,7 +6649,8 @@ void lim_del_pmf_sa_query_timer(tpAniSirGlobal mac_ctx, tpPESession pe_session)
 	tpDphHashNode sta_ds = NULL;
 
 	for (associated_sta = 1;
-			associated_sta < mac_ctx->lim.gLimAssocStaLimit;
+			associated_sta <
+			mac_ctx->mlme_cfg->sap_cfg.assoc_sta_limit;
 			associated_sta++) {
 		sta_ds = dph_get_hash_entry(mac_ctx, associated_sta,
 				&pe_session->dph.dphHashTable);

+ 5 - 2
core/mac/src/pe/sch/sch_beacon_process.c

@@ -413,8 +413,11 @@ sch_bcn_process_sta(tpAniSirGlobal mac_ctx,
 
 	/* No need to send DTIM Period and Count to HAL/SMAC */
 	/* SMAC already parses TIM bit. */
-	if (bcn->timPresent)
-		cfg_set_int(mac_ctx, WNI_CFG_DTIM_PERIOD, bcn->tim.dtimPeriod);
+	if (bcn->timPresent) {
+		if (cfg_in_range(CFG_DTIM_PERIOD, bcn->tim.dtimPeriod))
+			mac_ctx->mlme_cfg->sap_cfg.dtim_interval =
+						bcn->tim.dtimPeriod;
+	}
 
 	if (mac_ctx->lim.gLimProtectionControl !=
 			WNI_CFG_FORCE_POLICY_PROTECTION_DISABLE)

+ 0 - 6
core/mac/src/pe/sch/sch_message.c

@@ -111,12 +111,6 @@ void sch_process_message(tpAniSirGlobal pMac, struct scheduler_msg *pSchMsg)
 	switch (pSchMsg->type) {
 	case SIR_CFG_PARAM_UPDATE_IND:
 		switch (pSchMsg->bodyval) {
-		case WNI_CFG_BEACON_INTERVAL:
-			/* What to do for IBSS ?? - TBD */
-			if (LIM_IS_AP_ROLE(psessionEntry))
-				sch_set_beacon_interval(pMac, psessionEntry);
-			break;
-
 		case WNI_CFG_COUNTRY_CODE:
 			pe_debug("sch: WNI_CFG_COUNTRY_CODE changed");
 			sch_edca_profile_update_all(pMac);

+ 1 - 1
core/sap/src/sap_fsm.c

@@ -3180,7 +3180,7 @@ static QDF_STATUS sap_get_channel_list(struct sap_context *sap_ctx,
 			  FL("band_start_ch %d, band_end_ch %d"),
 			  band_start_ch, band_end_ch);
 
-	sme_cfg_get_int(hal, WNI_CFG_ENABLE_LTE_COEX, &en_lte_coex);
+	en_lte_coex = mac_ctx->mlme_cfg->sap_cfg.enable_lte_coex;
 
 	/* Check if LTE coex is enabled and 2.4GHz is selected */
 	if (en_lte_coex && (band_start_ch == CHAN_ENUM_1) &&

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

@@ -7179,10 +7179,7 @@ static void csr_roam_process_start_bss_success(tpAniSirGlobal mac_ctx,
 			ibss_log->operatingChannel =
 				bss_desc->channelId;
 		}
-		if (QDF_IS_STATUS_SUCCESS(wlan_cfg_get_int(
-					mac_ctx,
-					WNI_CFG_BEACON_INTERVAL,
-					&bi)))
+		bi = mac_ctx->mlme_cfg->sap_cfg.beacon_interval;
 			/* U8 is not enough for BI */
 			ibss_log->beaconInterval = (uint8_t) bi;
 		WLAN_HOST_DIAG_LOG_REPORT(ibss_log);
@@ -11993,9 +11990,7 @@ csr_roam_diag_joined_new_bss(tpAniSirGlobal mac_ctx,
 			     pNewBss->ssId.length);
 		pIbssLog->operatingChannel = pNewBss->channelNumber;
 	}
-	if (QDF_IS_STATUS_SUCCESS(wlan_cfg_get_int(mac_ctx,
-						   WNI_CFG_BEACON_INTERVAL,
-						   &bi)))
+	bi = mac_ctx->mlme_cfg->sap_cfg.beacon_interval;
 		/* U8 is not enough for beacon interval */
 		pIbssLog->beaconInterval = (uint8_t) bi;
 	WLAN_HOST_DIAG_LOG_REPORT(pIbssLog);

+ 1 - 6
core/wma/src/wma_features.c

@@ -3601,12 +3601,7 @@ QDF_STATUS wma_process_rmc_action_period_ind(tp_wma_handle wma)
 		       WMITLV_GET_STRUCT_TLVLEN
 			       (wmi_rmc_set_action_period_cmd_fixed_param));
 
-	if (wlan_cfg_get_int(mac, WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY,
-			     &periodicity_msec) != QDF_STATUS_SUCCESS) {
-		WMA_LOGE("Failed to get value for RMC action period using default");
-		periodicity_msec = WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY_STADEF;
-	}
-
+	periodicity_msec = mac->mlme_cfg->sap_cfg.rmc_action_period_freq;
 	p_rmc_cmd->vdev_id = vdev_id;
 	p_rmc_cmd->periodicity_msec = periodicity_msec;
 

+ 40 - 52
core/wma/src/wma_mgmt.c

@@ -715,61 +715,49 @@ void wma_set_vdev_mgmt_rate(tp_wma_handle wma, uint8_t vdev_id)
 		return;
 	}
 
-	if (wlan_cfg_get_int(mac, WNI_CFG_RATE_FOR_TX_MGMT,
-			     &cfg_val) == QDF_STATUS_SUCCESS) {
-		band = CDS_BAND_ALL;
-		if ((cfg_val == WNI_CFG_RATE_FOR_TX_MGMT_STADEF) ||
-		    !wma_verify_rate_code(cfg_val, band)) {
-			WMA_LOGD("default WNI_CFG_RATE_FOR_TX_MGMT, ignore");
-		} else {
-			ret = wma_vdev_set_param(
-				wma->wmi_handle,
-				vdev_id,
-				WMI_VDEV_PARAM_MGMT_TX_RATE,
-				cfg_val);
-			if (ret)
-				WMA_LOGE(
-				"Failed to set WMI_VDEV_PARAM_MGMT_TX_RATE"
-				);
-		}
+	cfg_val = mac->mlme_cfg->sap_cfg.rate_tx_mgmt;
+	band = CDS_BAND_ALL;
+	if ((cfg_val == WNI_CFG_RATE_FOR_TX_MGMT_STADEF) ||
+	    !wma_verify_rate_code(cfg_val, band)) {
+		WMA_LOGD("default WNI_CFG_RATE_FOR_TX_MGMT, ignore");
 	} else {
-		WMA_LOGE("Failed to get value of WNI_CFG_RATE_FOR_TX_MGMT");
-	}
-
-	if (wlan_cfg_get_int(mac, WNI_CFG_RATE_FOR_TX_MGMT_2G,
-			     &cfg_val) == QDF_STATUS_SUCCESS) {
-		band = CDS_BAND_2GHZ;
-		if ((cfg_val == WNI_CFG_RATE_FOR_TX_MGMT_2G_STADEF) ||
-		    !wma_verify_rate_code(cfg_val, band)) {
-			WMA_LOGD("use default 2G MGMT rate.");
-			per_band_mgmt_tx_rate &=
-			    ~(1 << TX_MGMT_RATE_2G_ENABLE_OFFSET);
-		} else {
-			per_band_mgmt_tx_rate |=
-			    (1 << TX_MGMT_RATE_2G_ENABLE_OFFSET);
-			per_band_mgmt_tx_rate |=
-			    ((cfg_val & 0x7FF) << TX_MGMT_RATE_2G_OFFSET);
-		}
+		ret = wma_vdev_set_param(
+			wma->wmi_handle,
+			vdev_id,
+			WMI_VDEV_PARAM_MGMT_TX_RATE,
+			cfg_val);
+		if (ret)
+			WMA_LOGE(
+			"Failed to set WMI_VDEV_PARAM_MGMT_TX_RATE"
+			);
+	}
+
+	cfg_val = mac->mlme_cfg->sap_cfg.rate_tx_mgmt_2g;
+	band = CDS_BAND_2GHZ;
+	if ((cfg_val == WNI_CFG_RATE_FOR_TX_MGMT_2G_STADEF) ||
+	    !wma_verify_rate_code(cfg_val, band)) {
+		WMA_LOGD("use default 2G MGMT rate.");
+		per_band_mgmt_tx_rate &=
+		    ~(1 << TX_MGMT_RATE_2G_ENABLE_OFFSET);
 	} else {
-		WMA_LOGE("Failed to get value of WNI_CFG_RATE_FOR_TX_MGMT_2G");
-	}
-
-	if (wlan_cfg_get_int(mac, WNI_CFG_RATE_FOR_TX_MGMT_5G,
-			     &cfg_val) == QDF_STATUS_SUCCESS) {
-		band = CDS_BAND_5GHZ;
-		if ((cfg_val == WNI_CFG_RATE_FOR_TX_MGMT_5G_STADEF) ||
-		    !wma_verify_rate_code(cfg_val, band)) {
-			WMA_LOGD("use default 5G MGMT rate.");
-			per_band_mgmt_tx_rate &=
-			    ~(1 << TX_MGMT_RATE_5G_ENABLE_OFFSET);
-		} else {
-			per_band_mgmt_tx_rate |=
-			    (1 << TX_MGMT_RATE_5G_ENABLE_OFFSET);
-			per_band_mgmt_tx_rate |=
-			    ((cfg_val & 0x7FF) << TX_MGMT_RATE_5G_OFFSET);
-		}
+		per_band_mgmt_tx_rate |=
+		    (1 << TX_MGMT_RATE_2G_ENABLE_OFFSET);
+		per_band_mgmt_tx_rate |=
+		    ((cfg_val & 0x7FF) << TX_MGMT_RATE_2G_OFFSET);
+	}
+
+	cfg_val = mac->mlme_cfg->sap_cfg.rate_tx_mgmt;
+	band = CDS_BAND_5GHZ;
+	if ((cfg_val == WNI_CFG_RATE_FOR_TX_MGMT_5G_STADEF) ||
+	    !wma_verify_rate_code(cfg_val, band)) {
+		WMA_LOGD("use default 5G MGMT rate.");
+		per_band_mgmt_tx_rate &=
+		    ~(1 << TX_MGMT_RATE_5G_ENABLE_OFFSET);
 	} else {
-		WMA_LOGE("Failed to get value of WNI_CFG_RATE_FOR_TX_MGMT_5G");
+		per_band_mgmt_tx_rate |=
+		    (1 << TX_MGMT_RATE_5G_ENABLE_OFFSET);
+		per_band_mgmt_tx_rate |=
+		    ((cfg_val & 0x7FF) << TX_MGMT_RATE_5G_OFFSET);
 	}
 
 	ret = wma_vdev_set_param(

+ 1 - 7
core/wma/src/wma_power.c

@@ -693,13 +693,7 @@ static QDF_STATUS wma_set_force_sleep(tp_wma_handle wma,
 	}
 
 	/* Set Listen Interval */
-	if (wlan_cfg_get_int(mac, WNI_CFG_LISTEN_INTERVAL,
-			     &cfg_data_val) != QDF_STATUS_SUCCESS) {
-		QDF_TRACE(QDF_MODULE_ID_WMA, QDF_TRACE_LEVEL_ERROR,
-			  "Failed to get value for WNI_CFG_LISTEN_INTERVAL");
-		cfg_data_val = POWERSAVE_DEFAULT_LISTEN_INTERVAL;
-	}
-
+	cfg_data_val = mac->mlme_cfg->sap_cfg.listen_interval;
 	ret = wma_vdev_set_param(wma->wmi_handle, vdev_id,
 					      WMI_VDEV_PARAM_LISTEN_INTERVAL,
 					      cfg_data_val);