qcacld-3.0: Clean up usage of con_mode

Separate con_mode from adapter mode definition and clean up usage of
con_mode.

CRs-fixed: 917959
Change-Id: Ia058826cdb873558ab8703fcd4f80d37d3f782df
diff --git a/core/bmi/src/ol_fw.c b/core/bmi/src/ol_fw.c
index 1607010..e01af6f 100644
--- a/core/bmi/src/ol_fw.c
+++ b/core/bmi/src/ol_fw.c
@@ -81,7 +81,7 @@
 		break;
 	case ATH_FIRMWARE_FILE:
 #ifdef QCA_WIFI_FTM
-		if (cds_get_conparam() == CDF_FTM_MODE) {
+		if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE) {
 			hash = fw_hash.utf;
 			break;
 		}
@@ -173,7 +173,7 @@
 			break;
 		}
 #ifdef QCA_WIFI_FTM
-		if (cds_get_conparam() == CDF_FTM_MODE) {
+		if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE) {
 #if defined(CONFIG_CNSS)
 			filename = scn->fw_files.utf_file;
 #else
@@ -201,7 +201,7 @@
 		return 0;
 	case ATH_BOARD_DATA_FILE:
 #ifdef QCA_WIFI_FTM
-		if (cds_get_conparam() == CDF_FTM_MODE) {
+		if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE) {
 #if defined(CONFIG_CNSS)
 			filename = scn->fw_files.utf_board_data;
 #else
@@ -225,7 +225,7 @@
 #endif
 		break;
 	case ATH_SETUP_FILE:
-		if (cds_get_conparam() != CDF_FTM_MODE &&
+		if (cds_get_conparam() != CDF_GLOBAL_FTM_MODE &&
 		    !WLAN_IS_EPPING_ENABLED(cds_get_conparam())) {
 #ifdef CONFIG_CNSS
 			BMI_INFO("%s: no Setup file defined", __func__);
diff --git a/core/cdf/inc/cdf_types.h b/core/cdf/inc/cdf_types.h
index 5c987af..cef5fe4 100644
--- a/core/cdf/inc/cdf_types.h
+++ b/core/cdf/inc/cdf_types.h
@@ -266,7 +266,7 @@
 #define cdf_snprint       __cdf_snprint
 
 /**
- * typedef enum tCDF_CON_MODE - Concurrency role.
+ * enum tCDF_ADAPTER_MODE - adapter role.
  *
  * @CDF_STA_MODE: STA mode
  * @CDF_SAP_MODE: SAP mode
@@ -282,18 +282,35 @@
  * These are generic IDs that identify the various roles
  * in the software system
  */
-typedef enum {
+enum tCDF_ADAPTER_MODE {
 	CDF_STA_MODE = 0,
 	CDF_SAP_MODE = 1,
 	CDF_P2P_CLIENT_MODE,
 	CDF_P2P_GO_MODE,
-	CDF_FTM_MODE = 5,
+	CDF_FTM_MODE,
 	CDF_IBSS_MODE,
 	CDF_P2P_DEVICE_MODE,
 	CDF_EPPING_MODE,
 	CDF_OCB_MODE,
 	CDF_MAX_NO_OF_MODE
-} tCDF_CON_MODE;
+};
+
+/**
+ * enum tCDF_GLOBAL_CON_MODE - global config mode when
+ * driver is loaded.
+ *
+ * @CDF_GLOBAL_MISSION_MODE: mission mode (STA, SAP...)
+ * @CDF_GLOBAL_FTM_MODE: FTM mode
+ * @CDF_GLOBAL_EPPING_MODE: EPPING mode
+ * @CDF_GLOBAL_MAX_MODE: Max place holder
+ */
+enum tCDF_GLOBAL_CON_MODE {
+	CDF_GLOBAL_MISSION_MODE,
+	CDF_GLOBAL_FTM_MODE = 5,
+	CDF_GLOBAL_EPPING_MODE = 8,
+	CDF_GLOBAL_MAX_MODE
+};
+
 
 #ifdef WLAN_OPEN_P2P_INTERFACE
 /* This should match with WLAN_MAX_INTERFACES */
diff --git a/core/cds/inc/cds_api.h b/core/cds/inc/cds_api.h
index 9e7fd5a..d3d327e 100644
--- a/core/cds/inc/cds_api.h
+++ b/core/cds/inc/cds_api.h
@@ -90,7 +90,7 @@
 CDF_STATUS cds_free_context(void *p_cds_context, CDF_MODULE_ID moduleID,
 			    void *pModuleContext);
 
-CDF_STATUS cds_get_vdev_types(tCDF_CON_MODE mode, uint32_t *type,
+CDF_STATUS cds_get_vdev_types(enum tCDF_ADAPTER_MODE mode, uint32_t *type,
 			      uint32_t *subType);
 
 void cds_flush_work(void *work);
diff --git a/core/cds/inc/cds_concurrency.h b/core/cds/inc/cds_concurrency.h
index bb799cb..85af147 100644
--- a/core/cds/inc/cds_concurrency.h
+++ b/core/cds/inc/cds_concurrency.h
@@ -465,9 +465,10 @@
 
 bool cds_is_connection_in_progress(hdd_context_t *hdd_ctx);
 void cds_dump_concurrency_info(hdd_context_t *pHddCtx);
-void cds_set_concurrency_mode(hdd_context_t *pHddCtx, tCDF_CON_MODE mode);
+void cds_set_concurrency_mode(hdd_context_t *hdd_ctx,
+			     enum tCDF_ADAPTER_MODE mode);
 void cds_clear_concurrency_mode(hdd_context_t *pHddCtx,
-				     tCDF_CON_MODE mode);
+			       enum tCDF_ADAPTER_MODE mode);
 uint32_t cds_get_connection_count(hdd_context_t *hdd_ctx);
 /**
  * cds_is_sta_connection_pending() - This function will check if sta connection
@@ -659,12 +660,14 @@
 
 }
 #endif /* FEATURE_WLAN_STA_AP_MODE_DFS_DISABLE */
-void cds_incr_active_session(hdd_context_t *pHddCtx, tCDF_CON_MODE mode,
+void cds_incr_active_session(hdd_context_t *pHddCtx,
+				enum tCDF_ADAPTER_MODE mode,
 				uint8_t sessionId);
-void cds_decr_active_session(hdd_context_t *pHddCtx, tCDF_CON_MODE mode,
+void cds_decr_active_session(hdd_context_t *pHddCtx,
+				enum tCDF_ADAPTER_MODE mode,
 				uint8_t sessionId);
 void cds_decr_session_set_pcl(hdd_context_t *hdd_ctx,
-		tCDF_CON_MODE mode,
+		enum tCDF_ADAPTER_MODE mode,
 		uint8_t session_id);
 CDF_STATUS cds_init_policy_mgr(hdd_context_t *hdd_ctx);
 CDF_STATUS cds_get_pcl(hdd_context_t *hdd_ctx, enum cds_con_mode mode,
@@ -769,11 +772,11 @@
 		uint32_t scan_config,
 		uint32_t fw_mode_config);
 bool cds_map_concurrency_mode(hdd_context_t *hdd_ctx,
-		tCDF_CON_MODE *old_mode, enum cds_con_mode *new_mode);
+		enum tCDF_ADAPTER_MODE *old_mode, enum cds_con_mode *new_mode);
 CDF_STATUS cds_get_channel_from_scan_result(hdd_adapter_t *adapter,
 		tCsrRoamProfile *roam_profile, uint8_t *channel);
 
-tCDF_CON_MODE cds_get_conparam(void);
+enum tCDF_GLOBAL_CON_MODE cds_get_conparam(void);
 bool cds_concurrent_open_sessions_running(void);
 bool cds_max_concurrent_connections_reached(void);
 void cds_clear_concurrent_session_count(void);
diff --git a/core/cds/src/cds_api.c b/core/cds/src/cds_api.c
index 573dd9b..03baf50 100644
--- a/core/cds/src/cds_api.c
+++ b/core/cds/src/cds_api.c
@@ -1548,7 +1548,7 @@
  *
  * Return: WMI vdev type
  */
-CDF_STATUS cds_get_vdev_types(tCDF_CON_MODE mode, uint32_t *type,
+CDF_STATUS cds_get_vdev_types(enum tCDF_ADAPTER_MODE mode, uint32_t *type,
 			      uint32_t *sub_type)
 {
 	CDF_STATUS status = CDF_STATUS_SUCCESS;
diff --git a/core/cds/src/cds_concurrency.c b/core/cds/src/cds_concurrency.c
index 2f97b41..ffb9a05 100644
--- a/core/cds/src/cds_concurrency.c
+++ b/core/cds/src/cds_concurrency.c
@@ -3232,13 +3232,14 @@
 /**
  * cds_set_concurrency_mode() - To set concurrency mode
  * @hdd_ctx: HDD context
- * @mode: Concurrency mode
+ * @mode: adapter mode
  *
  * This routine is called to set the concurrency mode
  *
  * Return: NONE
  */
-void cds_set_concurrency_mode(hdd_context_t *hdd_ctx, tCDF_CON_MODE mode)
+void cds_set_concurrency_mode(hdd_context_t *hdd_ctx,
+				enum tCDF_ADAPTER_MODE mode)
 {
 	switch (mode) {
 	case CDF_STA_MODE:
@@ -3260,14 +3261,14 @@
 /**
  * cds_clear_concurrency_mode() - To clear concurrency mode
  * @hdd_ctx: HDD context
- * @mode: Concurrency mode
+ * @mode: adapter mode
  *
  * This routine is called to clear the concurrency mode
  *
  * Return: NONE
  */
 void cds_clear_concurrency_mode(hdd_context_t *hdd_ctx,
-				     tCDF_CON_MODE mode)
+				     enum tCDF_ADAPTER_MODE mode)
 {
 	switch (mode) {
 	case CDF_STA_MODE:
@@ -3289,7 +3290,7 @@
 /**
  * cds_soc_set_pcl() - Sets PCL to FW
  * @hdd_ctx: HDD context
- * @mode: Connection mode
+ * @mode: adapter mode
  *
  * Fetches the PCL and sends the PCL to SME
  * module which in turn will send the WMI
@@ -3297,7 +3298,7 @@
  *
  * Return: None
  */
-static void cds_soc_set_pcl(hdd_context_t *hdd_ctx, tCDF_CON_MODE mode)
+static void cds_soc_set_pcl(hdd_context_t *hdd_ctx, enum tCDF_ADAPTER_MODE mode)
 {
 	CDF_STATUS status;
 	enum cds_con_mode con_mode;
@@ -3344,7 +3345,7 @@
 /**
  * cds_incr_active_session() - increments the number of active sessions
  * @hdd_ctx:	HDD Context
- * @mode:	Device mode
+ * @mode:	Adapter mode
  * @session_id: session ID for the connection session
  *
  * This function increments the number of active sessions maintained per device
@@ -3353,8 +3354,9 @@
  *
  * Return: None
  */
-void cds_incr_active_session(hdd_context_t *hdd_ctx, tCDF_CON_MODE mode,
-				  uint8_t session_id)
+void cds_incr_active_session(hdd_context_t *hdd_ctx,
+			     enum tCDF_ADAPTER_MODE mode,
+			     uint8_t session_id)
 {
 	/*
 	 * Need to aquire mutex as entire functionality in this function
@@ -3460,7 +3462,7 @@
 		enum cds_con_mode mode)
 {
 	struct cds_conc_connection_info info;
-	tCDF_CON_MODE pcl_mode;
+	enum tCDF_ADAPTER_MODE pcl_mode;
 
 	switch (mode) {
 	case CDS_STA_MODE:
@@ -3499,7 +3501,7 @@
 /**
  * cds_decr_session_set_pcl() - Decrement session count and set PCL
  * @hdd_ctx: HDD context
- * @mode: Connection mode
+ * @mode: Adapter mode
  * @session_id: Session id
  *
  * Decrements the active session count and sets the PCL if a STA connection
@@ -3508,7 +3510,7 @@
  * Return: None
  */
 void cds_decr_session_set_pcl(hdd_context_t *hdd_ctx,
-						tCDF_CON_MODE mode,
+						enum tCDF_ADAPTER_MODE mode,
 						uint8_t session_id)
 {
 	CDF_STATUS cdf_status;
@@ -3549,8 +3551,8 @@
 
 /**
  * cds_decr_active_session() - decrements the number of active sessions
- * @hdd_ctx:	HDD Context
- * @mode:	Device mode
+ * @hdd_ctx: HDD Context
+ * @mode: Adapter mode
  * @session_id: session ID for the connection session
  *
  * This function decrements the number of active sessions maintained per device
@@ -3559,7 +3561,8 @@
  *
  * Return: None
  */
-void cds_decr_active_session(hdd_context_t *hdd_ctx, tCDF_CON_MODE mode,
+void cds_decr_active_session(hdd_context_t *hdd_ctx,
+				enum tCDF_ADAPTER_MODE mode,
 				  uint8_t session_id)
 {
 	/*
@@ -4306,7 +4309,7 @@
 /**
  * cds_map_concurrency_mode() - to map concurrency mode between sme and hdd
  * @hdd_ctx: hdd context
- * @old_mode: sme provided concurrency mode
+ * @old_mode: sme provided adapter mode
  * @new_mode: hdd provided concurrency mode
  *
  * This routine will map concurrency mode between sme and hdd
@@ -4314,7 +4317,7 @@
  * Return: true or false
  */
 bool cds_map_concurrency_mode(hdd_context_t *hdd_ctx,
-	tCDF_CON_MODE *old_mode, enum cds_con_mode *new_mode)
+	enum tCDF_ADAPTER_MODE *old_mode, enum cds_con_mode *new_mode)
 {
 	bool status = true;
 
@@ -5719,7 +5722,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		cds_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -6773,7 +6776,7 @@
 
 	cds_info("UPDATE Beacon Params");
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
+	if (WLAN_HDD_SOFTAP == pHostapdAdapter->device_mode) {
 		hHal = WLAN_HDD_GET_HAL_CTX(pHostapdAdapter);
 		if (NULL == hHal) {
 			cds_err("Hal ctx is null");
@@ -7277,11 +7280,11 @@
  * Return the connection mode parameter set by insmod or set during statically
  * linked driver
  *
- * Return: tCDF_CON_MODE
+ * Return: enum tCDF_GLOBAL_CON_MODE
  */
-tCDF_CON_MODE cds_get_conparam(void)
+enum tCDF_GLOBAL_CON_MODE cds_get_conparam(void)
 {
-	tCDF_CON_MODE con_mode;
+	enum tCDF_GLOBAL_CON_MODE con_mode;
 	con_mode = hdd_get_conparam();
 	return con_mode;
 }
diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h
index dd1e6c6..e464b9c 100644
--- a/core/hdd/inc/wlan_hdd_main.h
+++ b/core/hdd/inc/wlan_hdd_main.h
@@ -530,14 +530,23 @@
 	int dtim_period;
 } beacon_data_t;
 
-/* MAINTAIN 1 - 1 CORRESPONDENCE WITH tCDF_CON_MODE */
+/**
+ * enum device_mode: Maintain one to one correspondence with tCDF_ADAPTER_MODE
+ * @WLAN_HDD_INFRA_STATION: station mode
+ * @WLAN_HDD_SOFTAP: sap mode
+ * @WLAN_HDD_P2P_CLIENT: p2p client mode
+ * @WLAN_HDD_P2P_GO: p2p go mode
+ * @WLAN_HDD_FTM: ftm mode
+ * @WLAN_HDD_IBSS: ibss mode
+ * @WLAN_HDD_P2P_DEVICE: p2p device mode
+ * @WLAN_HDD_OCB: ocb mode
+ */
 typedef enum device_mode {
 	WLAN_HDD_INFRA_STATION,
 	WLAN_HDD_SOFTAP,
 	WLAN_HDD_P2P_CLIENT,
 	WLAN_HDD_P2P_GO,
-	/* Mode 5 is reserved for FTM */
-	WLAN_HDD_FTM = 5,
+	WLAN_HDD_FTM,
 	WLAN_HDD_IBSS,
 	WLAN_HDD_P2P_DEVICE,
 	WLAN_HDD_OCB
@@ -1388,7 +1397,7 @@
 uint8_t hdd_get_operating_channel(hdd_context_t *pHddCtx, device_mode_t mode);
 
 void hdd_set_conparam(uint32_t con_param);
-tCDF_CON_MODE hdd_get_conparam(void);
+enum tCDF_GLOBAL_CON_MODE hdd_get_conparam(void);
 
 void hdd_abort_mac_scan(hdd_context_t *pHddCtx, uint8_t sessionId,
 			eCsrAbortReason reason);
diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c
index b5451f3..33a41f0 100644
--- a/core/hdd/src/wlan_hdd_cfg.c
+++ b/core/hdd/src/wlan_hdd_cfg.c
@@ -6516,9 +6516,7 @@
 	smeConfig->csrConfig.fFirstScanOnly2GChnl =
 		pConfig->enableFirstScan2GOnly;
 
-	/* FIXME 11d config is hardcoded */
-	if (CDF_SAP_MODE != hdd_get_conparam())
-		smeConfig->csrConfig.Csr11dinfo.Channels.numChannels = 0;
+	smeConfig->csrConfig.Csr11dinfo.Channels.numChannels = 0;
 
 	hdd_set_power_save_offload_config(pHddCtx);
 
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index 8d830a3..cd1a486 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -680,7 +680,7 @@
 	struct sk_buff *skb;
 	uint32_t set = 0;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -1115,7 +1115,7 @@
 	if (ret_val)
 		return ret_val;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -1422,7 +1422,7 @@
 	 * [QCA_WLAN_VENDOR_ATTR_ACS_CH_LIST] = { .type = NLA_NESTED },
 	 */
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -1811,7 +1811,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -1952,7 +1952,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -2077,7 +2077,7 @@
 	if (ret_val)
 		return ret_val;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -2196,7 +2196,7 @@
 	uint32_t buf_len = 0;
 	int ret;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -2726,7 +2726,7 @@
 	hdd_context_t *hdd_ctx_ptr;
 	int status;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -2815,7 +2815,7 @@
 	int status;
 	struct sk_buff *reply_skb = NULL;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -2912,7 +2912,7 @@
 	uint32_t features;
 	struct sk_buff *reply_skb = NULL;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3146,7 +3146,7 @@
 	u32 guard_time;
 	CDF_STATUS status;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3265,7 +3265,7 @@
 	struct nlattr *tb[QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_START_MAX + 1];
 	struct sir_wifi_start_log start_log;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3389,7 +3389,7 @@
 	struct nlattr *tb
 		[QCA_WLAN_VENDOR_ATTR_WIFI_LOGGER_GET_RING_DATA_MAX + 1];
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3783,7 +3783,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -4336,7 +4336,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -4519,7 +4519,7 @@
 	CDF_STATUS status;
 	uint32_t current_roam_state;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -5208,7 +5208,7 @@
 #endif /*FEATURE_WLAN_SCAN_PNO */
 
 #if  defined QCA_WIFI_FTM
-	if (cds_get_conparam() != CDF_FTM_MODE) {
+	if (cds_get_conparam() != CDF_GLOBAL_FTM_MODE) {
 #endif
 
 	/* even with WIPHY_FLAG_CUSTOM_REGULATORY,
@@ -5313,7 +5313,7 @@
 	wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM;
 	wiphy->max_remain_on_channel_duration = MAX_REMAIN_ON_CHANNEL_DURATION;
 
-	if (cds_get_conparam() != CDF_FTM_MODE) {
+	if (cds_get_conparam() != CDF_GLOBAL_FTM_MODE) {
 		wiphy->n_vendor_commands =
 				ARRAY_SIZE(hdd_wiphy_vendor_commands);
 		wiphy->vendor_commands = hdd_wiphy_vendor_commands;
@@ -5698,7 +5698,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -5790,9 +5790,6 @@
 			WLAN_HDD_INFRA_STATION : WLAN_HDD_P2P_CLIENT;
 	}
 
-	/* set con_mode to STA only when no SAP concurrency mode */
-	if (!(cds_get_concurrency_mode() & (CDF_SAP_MASK | CDF_P2P_GO_MASK)))
-		hdd_set_conparam(0);
 	memset(&pAdapter->sessionCtx, 0, sizeof(pAdapter->sessionCtx));
 	hdd_set_station_ops(pAdapter->dev);
 	status = hdd_init_station_mode(pAdapter);
@@ -5850,7 +5847,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -5969,7 +5966,6 @@
 					       ("Error initializing the ap mode"));
 				return -EINVAL;
 			}
-			hdd_set_conparam(1);
 
 			hdd_register_tx_flow_control(pAdapter,
 				hdd_softap_tx_resume_timer_expired_handler,
@@ -6140,7 +6136,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -6423,7 +6419,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -6757,7 +6753,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -6909,7 +6905,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -8630,7 +8626,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -8891,7 +8887,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -9126,7 +9122,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -9337,7 +9333,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -9434,7 +9430,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -9650,7 +9646,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -9870,7 +9866,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -9950,7 +9946,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -10031,7 +10027,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -10111,7 +10107,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -10183,7 +10179,7 @@
 	if (status)
 		return status;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -10316,7 +10312,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -10428,7 +10424,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -10820,7 +10816,7 @@
 	tSmeConfigParams sme_config;
 	bool cbModeChange;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
diff --git a/core/hdd/src/wlan_hdd_driver_ops.c b/core/hdd/src/wlan_hdd_driver_ops.c
index 82c9148..8a45f4f 100644
--- a/core/hdd/src/wlan_hdd_driver_ops.c
+++ b/core/hdd/src/wlan_hdd_driver_ops.c
@@ -316,7 +316,7 @@
 	/* this is for cases, where shutdown invoked from CNSS */
 	cds_set_logp_in_progress(true);
 
-	if (cds_get_conparam() != CDF_FTM_MODE &&
+	if (cds_get_conparam() != CDF_GLOBAL_FTM_MODE &&
 	    !WLAN_IS_EPPING_ENABLED(cds_get_conparam()))
 		hif_pktlogmod_exit(hif_ctx);
 
diff --git a/core/hdd/src/wlan_hdd_ext_scan.c b/core/hdd/src/wlan_hdd_ext_scan.c
index 4247636..f33a6e2 100644
--- a/core/hdd/src/wlan_hdd_ext_scan.c
+++ b/core/hdd/src/wlan_hdd_ext_scan.c
@@ -1718,7 +1718,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -1852,7 +1852,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -2000,7 +2000,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -2197,7 +2197,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -2479,7 +2479,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3144,7 +3144,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3354,7 +3354,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3481,7 +3481,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3606,7 +3606,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3822,7 +3822,7 @@
 	if (ret_val)
 		return ret_val;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -4028,7 +4028,7 @@
 	if (ret)
 		return ret;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -4144,7 +4144,7 @@
 	if (ret)
 		return ret;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -4270,7 +4270,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -4490,7 +4490,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
diff --git a/core/hdd/src/wlan_hdd_hostapd.c b/core/hdd/src/wlan_hdd_hostapd.c
index a7113f5..02a6492 100644
--- a/core/hdd/src/wlan_hdd_hostapd.c
+++ b/core/hdd/src/wlan_hdd_hostapd.c
@@ -7774,7 +7774,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -8003,7 +8003,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -8161,7 +8161,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
diff --git a/core/hdd/src/wlan_hdd_ioctl.c b/core/hdd/src/wlan_hdd_ioctl.c
index 2a76897..0efca0f 100644
--- a/core/hdd/src/wlan_hdd_ioctl.c
+++ b/core/hdd/src/wlan_hdd_ioctl.c
@@ -6137,7 +6137,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -6275,7 +6275,7 @@
 		goto exit;
 	}
 #if  defined(QCA_WIFI_FTM) && defined(LINUX_QCMBR)
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		if (SIOCIOCTLTX99 == cmd) {
 			ret = wlan_hdd_qcmbr_unified_ioctl(adapter, ifr);
 			goto exit;
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index 7d75707..6f58aac 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -1619,7 +1619,7 @@
 	static const uint8_t ipv6_router_solicitation[]
 			= {0x33, 0x33, 0x00, 0x00, 0x00, 0x02};
 
-	if (CDF_FTM_MODE == hdd_get_conparam())
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam())
 		return;
 
 	ENTER();
@@ -2117,12 +2117,6 @@
 
 		hdd_unregister_hostapd(adapter, rtnl_held);
 
-		/* set con_mode to STA only when no SAP concurrency mode */
-		if (!
-		    (cds_get_concurrency_mode() &
-		     (CDF_SAP_MASK | CDF_P2P_GO_MASK)))
-			hdd_set_conparam(0);
-
 		break;
 	}
 
@@ -2343,8 +2337,6 @@
 					   WLAN_NETIF_TX_DISABLE_N_CARRIER,
 					   WLAN_CONTROL_PATH);
 
-		hdd_set_conparam(1);
-
 		break;
 	}
 	case WLAN_HDD_FTM:
@@ -2431,7 +2423,7 @@
 		cds_check_and_restart_sap_with_non_dfs_acs(hdd_ctx);
 	}
 
-	if ((cds_get_conparam() != CDF_FTM_MODE)
+	if ((cds_get_conparam() != CDF_GLOBAL_FTM_MODE)
 	    && (!hdd_ctx->config->enable2x2)) {
 #define HDD_DTIM_1CHAIN_RX_ID 0x5
 #define HDD_SMPS_PARAM_VALUE_S 29
@@ -2477,7 +2469,7 @@
 #undef HDD_SMPS_PARAM_VALUE_S
 	}
 
-	if (CDF_FTM_MODE != cds_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE != cds_get_conparam()) {
 		ret = wma_cli_set_command(adapter->sessionId,
 					  WMI_PDEV_PARAM_HYST_EN,
 					  hdd_ctx->config->enableMemDeepSleep,
@@ -2494,7 +2486,7 @@
 #ifdef CONFIG_FW_LOGS_BASED_ON_INI
 
 	/* Enable FW logs based on INI configuration */
-	if ((CDF_FTM_MODE != cds_get_conparam()) &&
+	if ((CDF_GLOBAL_FTM_MODE != cds_get_conparam()) &&
 	    (hdd_ctx->config->enablefwlog)) {
 		uint8_t count = 0;
 		uint32_t value = 0;
@@ -3389,7 +3381,7 @@
 
 	hdd_unregister_wext_all_adapters(hdd_ctx);
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(CDF_TRACE_LEVEL_INFO, FL("FTM MODE"));
 #if  defined(QCA_WIFI_FTM)
 		if (hdd_ftm_stop(hdd_ctx)) {
@@ -4877,7 +4869,7 @@
 
 	hdd_cfg_print(hdd_ctx);
 
-	if (CDF_FTM_MODE == hdd_get_conparam())
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam())
 		goto ftm_processing;
 
 	hdd_ctx->isLogpInProgress = false;
@@ -5028,7 +5020,7 @@
 #endif /* QCA_PKT_PROTO_TRACE */
 
 ftm_processing:
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		if (CDF_STATUS_SUCCESS != wlan_hdd_ftm_open(hdd_ctx)) {
 			hddLog(CDF_TRACE_LEVEL_FATAL,
 			       FL("wlan_hdd_ftm_open Failed"));
@@ -5250,13 +5242,11 @@
 	if (cds_is_multicast_logging())
 		wlan_logging_set_log_level();
 
-	if (CDF_SAP_MODE != hdd_get_conparam()) {
-		/*
-		 * Action frame registered in one adapter which will
-		 * applicable to all interfaces
-		 */
-		wlan_hdd_cfg80211_register_frames(adapter);
-	}
+	/*
+	 * Action frame registered in one adapter which will
+	 * applicable to all interfaces
+	 */
+	wlan_hdd_cfg80211_register_frames(adapter);
 
 	mutex_init(&hdd_ctx->sap_lock);
 
@@ -5485,7 +5475,7 @@
 
 err_cds_open:
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 #if  defined(QCA_WIFI_FTM)
 err_free_ftm_open:
 		wlan_hdd_ftm_close(hdd_ctx);
@@ -5876,7 +5866,7 @@
 	int ret = 0;
 	struct wlan_status_data data;
 
-	if (CDF_FTM_MODE == hdd_get_conparam())
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam())
 		return;
 
 	memset(&data, 0, sizeof(struct wlan_status_data));
@@ -5908,7 +5898,7 @@
 		return;
 #endif
 
-	if (CDF_FTM_MODE == hdd_get_conparam())
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam())
 		return;
 
 	memset(&data, 0, sizeof(struct wlan_version_data));
@@ -6297,6 +6287,11 @@
 		return;
 	}
 
+	if (WLAN_HDD_SOFTAP != ap_adapter->device_mode) {
+		hdd_err("SoftAp role has not been enabled");
+		return;
+	}
+
 	hdd_ctx = WLAN_HDD_GET_CTX(ap_adapter);
 	hdd_ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(ap_adapter);
 	hostapd_state = WLAN_HDD_GET_HOSTAP_STATE_PTR(ap_adapter);
@@ -6611,11 +6606,11 @@
  *
  * This is the driver exit point (invoked when module is unloaded using rmmod)
  *
- * Return: tCDF_CON_MODE
+ * Return: enum tCDF_GLOBAL_CON_MODE
  */
-tCDF_CON_MODE hdd_get_conparam(void)
+enum tCDF_GLOBAL_CON_MODE hdd_get_conparam(void)
 {
-	return (tCDF_CON_MODE) curr_con_mode;
+	return (enum tCDF_GLOBAL_CON_MODE) curr_con_mode;
 }
 
 void hdd_set_conparam(uint32_t con_param)
diff --git a/core/hdd/src/wlan_hdd_memdump.c b/core/hdd/src/wlan_hdd_memdump.c
index 21f398e..9013e81 100644
--- a/core/hdd/src/wlan_hdd_memdump.c
+++ b/core/hdd/src/wlan_hdd_memdump.c
@@ -548,7 +548,7 @@
 		return -EINVAL;
 	}
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Not initializing memdump in FTM mode"));
 		return -EINVAL;
 	}
@@ -602,7 +602,7 @@
 		return;
 	}
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Not deinitializing memdump in FTM mode"));
 		return;
 	}
diff --git a/core/hdd/src/wlan_hdd_nan.c b/core/hdd/src/wlan_hdd_nan.c
index 4fff12b..eb06a16 100644
--- a/core/hdd/src/wlan_hdd_nan.c
+++ b/core/hdd/src/wlan_hdd_nan.c
@@ -65,7 +65,7 @@
 	if (ret_val)
 		return ret_val;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
diff --git a/core/hdd/src/wlan_hdd_p2p.c b/core/hdd/src/wlan_hdd_p2p.c
index 9018af8..f8d7acb 100644
--- a/core/hdd/src/wlan_hdd_p2p.c
+++ b/core/hdd/src/wlan_hdd_p2p.c
@@ -950,7 +950,7 @@
 	if (0 != ret)
 		return ret;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -1094,7 +1094,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -1255,7 +1255,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -1952,7 +1952,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return ERR_PTR(-EINVAL);
 	}
@@ -2048,7 +2048,7 @@
 	int status;
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c
index 2c00f1f..0acc47b 100644
--- a/core/hdd/src/wlan_hdd_power.c
+++ b/core/hdd/src/wlan_hdd_power.c
@@ -1742,7 +1742,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -1878,7 +1878,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -2098,7 +2098,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -2191,7 +2191,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -2283,7 +2283,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
diff --git a/core/hdd/src/wlan_hdd_scan.c b/core/hdd/src/wlan_hdd_scan.c
index 0a13bf6..46c0cfc 100644
--- a/core/hdd/src/wlan_hdd_scan.c
+++ b/core/hdd/src/wlan_hdd_scan.c
@@ -1241,7 +1241,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -2027,7 +2027,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -2302,7 +2302,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
diff --git a/core/hdd/src/wlan_hdd_stats.c b/core/hdd/src/wlan_hdd_stats.c
index 8f50005..3617d1b 100644
--- a/core/hdd/src/wlan_hdd_stats.c
+++ b/core/hdd/src/wlan_hdd_stats.c
@@ -1144,7 +1144,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -1270,7 +1270,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -1401,7 +1401,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -1546,7 +1546,7 @@
 	if (ret_val)
 		return ret_val;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -1723,7 +1723,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -2230,7 +2230,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
diff --git a/core/hdd/src/wlan_hdd_tdls.c b/core/hdd/src/wlan_hdd_tdls.c
index 368fa31..10b3a86 100644
--- a/core/hdd/src/wlan_hdd_tdls.c
+++ b/core/hdd/src/wlan_hdd_tdls.c
@@ -3049,7 +3049,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3228,7 +3228,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3347,7 +3347,7 @@
 	struct nlattr *tb[QCA_WLAN_VENDOR_ATTR_TDLS_DISABLE_MAX + 1];
 	CDF_STATUS status;
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EPERM;
 	}
@@ -3668,7 +3668,7 @@
 #endif
 #endif
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
@@ -4148,7 +4148,7 @@
 
 	ENTER();
 
-	if (CDF_FTM_MODE == hdd_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hddLog(LOGE, FL("Command not allowed in FTM mode"));
 		return -EINVAL;
 	}
diff --git a/core/hdd/src/wlan_hdd_tx_rx.c b/core/hdd/src/wlan_hdd_tx_rx.c
index c7ed41d..7479870 100644
--- a/core/hdd/src/wlan_hdd_tx_rx.c
+++ b/core/hdd/src/wlan_hdd_tx_rx.c
@@ -305,7 +305,7 @@
 #endif /* QCA_PKT_PROTO_TRACE */
 
 #ifdef QCA_WIFI_FTM
-	if (hdd_get_conparam() == CDF_FTM_MODE) {
+	if (hdd_get_conparam() == CDF_GLOBAL_FTM_MODE) {
 		kfree_skb(skb);
 		return NETDEV_TX_OK;
 	}
diff --git a/core/hif/src/ce/ce_main.c b/core/hif/src/ce/ce_main.c
index 9ade278..80379cf 100644
--- a/core/hif/src/ce/ce_main.c
+++ b/core/hif/src/ce/ce_main.c
@@ -1806,17 +1806,13 @@
 	cfg.num_shadow_reg_cfg = shadow_cfg_sz / sizeof(struct shadow_reg_cfg);
 	cfg.shadow_reg_cfg = (struct icnss_shadow_reg_cfg *) target_shadow_reg_cfg;
 
-	switch (con_mode) {
-	case CDF_FTM_MODE:
+	if (CDF_GLOBAL_FTM_MODE == con_mode)
 		mode = ICNSS_FTM;
-		break;
-	case CDF_EPPING_MODE:
+	else if (WLAN_IS_EPPING_ENABLED(cds_get_conparam()))
 		mode = ICNSS_EPPING;
-		break;
-	default:
+	else
 		mode = ICNSS_MISSION;
-		break;
-	}
+
 	return icnss_wlan_enable(&cfg, mode, QWLAN_VERSIONSTR);
 }
 
diff --git a/core/hif/src/hif_main.c b/core/hif/src/hif_main.c
index 100805f..90544f3 100644
--- a/core/hif/src/hif_main.c
+++ b/core/hif/src/hif_main.c
@@ -652,7 +652,7 @@
 {
 	struct ol_softc *scn = hif_ctx;
 
-	if (scn && cds_get_conparam() != CDF_FTM_MODE &&
+	if (scn && cds_get_conparam() != CDF_GLOBAL_FTM_MODE &&
 	    !WLAN_IS_EPPING_ENABLED(cds_get_conparam()) && scn->pkt_log_init) {
 		pktlogmod_exit(scn);
 		scn->pkt_log_init = false;
@@ -684,17 +684,12 @@
 	enum icnss_driver_mode mode;
 	uint32_t con_mode = cds_get_conparam();
 
-	switch (con_mode) {
-	case CDF_FTM_MODE:
+	if (CDF_GLOBAL_FTM_MODE == con_mode)
 		mode = ICNSS_FTM;
-		break;
-	case CDF_EPPING_MODE:
+	else if (WLAN_IS_EPPING_ENABLED(cds_get_conparam()))
 		mode = ICNSS_EPPING;
-		break;
-	default:
+	else
 		mode = ICNSS_MISSION;
-		break;
-	}
 
 	icnss_wlan_disable(mode);
 }
diff --git a/core/hif/src/pcie/if_pci_internal.h b/core/hif/src/pcie/if_pci_internal.h
index e5f28d2..5ea8e31 100644
--- a/core/hif/src/pcie/if_pci_internal.h
+++ b/core/hif/src/pcie/if_pci_internal.h
@@ -97,7 +97,7 @@
 { \
 	ol_txrx_pdev_handle pdev_txrx_handle; \
 	pdev_txrx_handle = cds_get_context(CDF_MODULE_ID_TXRX); \
-	if (cds_get_conparam() != CDF_FTM_MODE && \
+	if (cds_get_conparam() != CDF_GLOBAL_FTM_MODE && \
 	    !WLAN_IS_EPPING_ENABLED(cds_get_conparam())) { \
 		ol_pl_sethandle(&pdev_txrx_handle->pl_dev, ol_sc); \
 		if (pktlogmod_init(ol_sc)) \
diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h
index 8ad8c1f..219c5ec 100644
--- a/core/mac/inc/sir_api.h
+++ b/core/mac/inc/sir_api.h
@@ -586,7 +586,7 @@
 	uint32_t dtimPeriod;
 	uint8_t wps_state;
 	uint8_t isCoalesingInIBSSAllowed;       /* Coalesing on/off knob */
-	tCDF_CON_MODE bssPersona;
+	enum tCDF_ADAPTER_MODE bssPersona;
 
 	uint8_t txLdpcIniFeatureEnabled;
 
@@ -914,7 +914,7 @@
 #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
 	uint8_t cc_switch_mode;
 #endif
-	tCDF_CON_MODE staPersona;       /* Persona */
+	enum tCDF_ADAPTER_MODE staPersona;       /* Persona */
 	ePhyChanBondState cbMode;       /* Pass CB mode value in Join. */
 
 	/*This contains the UAPSD Flag for all 4 AC
@@ -3695,7 +3695,7 @@
 typedef struct sSirRateUpdateInd {
 	uint8_t nss;            /* 0: 1x1, 1: 2x2 */
 	struct cdf_mac_addr bssid;
-	tCDF_CON_MODE dev_mode;
+	enum tCDF_ADAPTER_MODE dev_mode;
 	int32_t bcastDataRate;  /* bcast rate unit Mbpsx10, -1:not used */
 	/*
 	 * 0 implies RA, positive value implies fixed rate, -1 implies ignore
diff --git a/core/mac/src/pe/include/lim_session.h b/core/mac/src/pe/include/lim_session.h
index 4b0ebe7..14cee56 100644
--- a/core/mac/src/pe/include/lim_session.h
+++ b/core/mac/src/pe/include/lim_session.h
@@ -276,7 +276,7 @@
 	uint32_t lim11hEnable;
 
 	tPowerdBm maxTxPower;   /* MIN (Regulatory and local power constraint) */
-	tCDF_CON_MODE pePersona;
+	enum tCDF_ADAPTER_MODE pePersona;
 #if defined WLAN_FEATURE_VOWIFI
 	tPowerdBm txMgmtPower;
 #endif
diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c
index af61ed3..bd22106 100644
--- a/core/mac/src/pe/lim/lim_api.c
+++ b/core/mac/src/pe/lim/lim_api.c
@@ -655,7 +655,7 @@
 
 	struct mgmt_frm_reg_info *pLimMgmtRegistration = NULL;
 
-	if (CDF_FTM_MODE != cds_get_conparam()) {
+	if (CDF_GLOBAL_FTM_MODE != cds_get_conparam()) {
 		cdf_mutex_acquire(&pMac->lim.lim_frame_register_lock);
 		while (cdf_list_remove_front(
 			&pMac->lim.gLimMgmtFrameRegistratinQueue,
diff --git a/core/sap/inc/sap_api.h b/core/sap/inc/sap_api.h
index 50a4239..75f92b5 100644
--- a/core/sap/inc/sap_api.h
+++ b/core/sap/inc/sap_api.h
@@ -539,7 +539,7 @@
 	uint32_t ap_table_max_size;
 	uint32_t ap_table_expiration_time;
 	uint32_t ht_op_mode_fixed;
-	tCDF_CON_MODE persona; /* Tells us which persona its GO or AP for now */
+	enum tCDF_ADAPTER_MODE persona; /* Tells us which persona, GO or AP */
 	uint8_t disableDFSChSwitch;
 	bool enOverLapCh;
 #ifdef WLAN_FEATURE_11W
@@ -671,7 +671,7 @@
 typedef struct tagSapCtxList {
 	uint8_t sessionID;
 	void *pSapContext;
-	tCDF_CON_MODE sapPersona;
+	enum tCDF_ADAPTER_MODE sapPersona;
 } tSapCtxList, tpSapCtxList;
 
 typedef struct tagSapStruct {
diff --git a/core/sap/src/sap_module.c b/core/sap/src/sap_module.c
index fb84e66..8365830 100644
--- a/core/sap/src/sap_module.c
+++ b/core/sap/src/sap_module.c
@@ -526,9 +526,7 @@
 	 */
 	psap_ctx->csr_roamProfile.BSSIDs.numOfBSSIDs = 1;
 
-	/*
-	 * Save a copy to SAP context
-	 */
+	/* Save a copy to SAP context */
 	cdf_mem_copy(psap_ctx->csr_roamProfile.BSSIDs.bssid,
 		pconfig->self_macaddr.bytes, CDF_MAC_ADDR_SIZE);
 	cdf_mem_copy(psap_ctx->self_mac_addr,
@@ -540,11 +538,11 @@
 			"%s: Invalid MAC context from pvosGCtx", __func__);
 	} else {
 		/*
-		* If concurrent session is running that is already associated
-		* then we just follow that sessions country info (whether
-		* present or not doesn't maater as we have to follow whatever
-		* STA session does)
-		*/
+		 * If concurrent session is running that is already associated
+		 * then we just follow that sessions country info (whether
+		 * present or not doesn't maater as we have to follow whatever
+		 * STA session does)
+		 */
 		if ((0 == sme_get_concurrent_operation_channel(h_hal)) &&
 			pconfig->ieee80211d) {
 			/* Setting the region/country  information */
@@ -660,106 +658,102 @@
 	    Sanity check
 	    Extract SAP control block
 	   ------------------------------------------------------------------------*/
-	if (CDF_SAP_MODE == cds_get_conparam()) {
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
 
+	CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH,
+		  "wlansap_start_bss: sapContext=%p", pSapCtx);
+
+	if (NULL == pSapCtx) {
 		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH,
-			  "wlansap_start_bss: sapContext=%p", pSapCtx);
-
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-		pSapCtx->sapsMachine = eSAP_DISCONNECTED;
-
-		/* Channel selection is auto or configured */
-		pSapCtx->channel = pConfig->channel;
-		pSapCtx->ch_params.ch_width = pConfig->ch_params.ch_width;
-		pSapCtx->ch_params.center_freq_seg0 =
-			pConfig->ch_params.center_freq_seg0;
-		pSapCtx->ch_params.center_freq_seg1 =
-			pConfig->ch_params.center_freq_seg1;
-		pSapCtx->ch_params.sec_ch_offset =
-			pConfig->ch_params.sec_ch_offset;
-		pSapCtx->ch_width_orig = pConfig->ch_width_orig;
-#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
-		pSapCtx->cc_switch_mode = pConfig->cc_switch_mode;
-#endif
-		pSapCtx->pUsrContext = pUsrContext;
-		pSapCtx->enableOverLapCh = pConfig->enOverLapCh;
-		pSapCtx->acs_cfg = &pConfig->acs_cfg;
-		/* Set the BSSID to your "self MAC Addr" read the mac address from Configuation ITEM received from HDD */
-		pSapCtx->csr_roamProfile.BSSIDs.numOfBSSIDs = 1;
-		cdf_mem_copy(pSapCtx->csr_roamProfile.BSSIDs.bssid,
-			     pSapCtx->self_mac_addr, sizeof(struct cdf_mac_addr));
-
-		/* Save a copy to SAP context */
-		cdf_mem_copy(pSapCtx->csr_roamProfile.BSSIDs.bssid,
-			     pConfig->self_macaddr.bytes, CDF_MAC_ADDR_SIZE);
-		cdf_mem_copy(pSapCtx->self_mac_addr,
-			     pConfig->self_macaddr.bytes, CDF_MAC_ADDR_SIZE);
-
-		/* copy the configuration items to csrProfile */
-		sapconvert_to_csr_profile(pConfig, eCSR_BSS_TYPE_INFRA_AP,
-				       &pSapCtx->csr_roamProfile);
-		hHal = (tHalHandle) CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
-		if (NULL == hHal) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH,
-				  "%s: Invalid MAC context from p_cds_gctx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		} else {
-			/* If concurrent session is running that is already associated */
-			/* then we just follow that sessions country info (whether */
-			/* present or not doesn't maater as we have to follow whatever */
-			/* STA session does) */
-			if ((0 == sme_get_concurrent_operation_channel(hHal)) &&
-			    pConfig->ieee80211d) {
-				/* Setting the region/country  information */
-				sme_set_reg_info(hHal, pConfig->countryCode);
-				sme_apply_channel_power_info_to_fw(hHal);
-			}
-		}
-
-		pmac = PMAC_STRUCT(hHal);
-		if (NULL == pmac) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH,
-				  "%s: Invalid MAC context from p_cds_gctx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-		/*
-		 * Copy the DFS Test Mode setting to pmac for
-		 * access in lower layers
-		 */
-		pmac->sap.SapDfsInfo.disable_dfs_ch_switch =
-					pConfig->disableDFSChSwitch;
-
-		/* Copy MAC filtering settings to sap context */
-		pSapCtx->eSapMacAddrAclMode = pConfig->SapMacaddr_acl;
-		cdf_mem_copy(pSapCtx->acceptMacList, pConfig->accept_mac,
-			     sizeof(pConfig->accept_mac));
-		pSapCtx->nAcceptMac = pConfig->num_accept_mac;
-		sap_sort_mac_list(pSapCtx->acceptMacList, pSapCtx->nAcceptMac);
-		cdf_mem_copy(pSapCtx->denyMacList, pConfig->deny_mac,
-			     sizeof(pConfig->deny_mac));
-		pSapCtx->nDenyMac = pConfig->num_deny_mac;
-		sap_sort_mac_list(pSapCtx->denyMacList, pSapCtx->nDenyMac);
-		/* Fill in the event structure for FSM */
-		sapEvent.event = eSAP_HDD_START_INFRA_BSS;
-		sapEvent.params = 0;    /* pSapPhysLinkCreate */
-
-		/* Store the HDD callback in SAP context */
-		pSapCtx->pfnSapEventCallback = pSapEventCallback;
-
-		/* Handle event */
-		cdf_status = sap_fsm(pSapCtx, &sapEvent);
-	} else {
-		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-			  "SoftAp role has not been enabled");
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
 	}
+	pSapCtx->sapsMachine = eSAP_DISCONNECTED;
+
+	/* Channel selection is auto or configured */
+	pSapCtx->channel = pConfig->channel;
+	pSapCtx->ch_params.ch_width = pConfig->ch_params.ch_width;
+	pSapCtx->ch_params.center_freq_seg0 =
+		pConfig->ch_params.center_freq_seg0;
+	pSapCtx->ch_params.center_freq_seg1 =
+		pConfig->ch_params.center_freq_seg1;
+	pSapCtx->ch_params.sec_ch_offset =
+		pConfig->ch_params.sec_ch_offset;
+	pSapCtx->ch_width_orig = pConfig->ch_width_orig;
+#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
+	pSapCtx->cc_switch_mode = pConfig->cc_switch_mode;
+#endif
+	pSapCtx->pUsrContext = pUsrContext;
+	pSapCtx->enableOverLapCh = pConfig->enOverLapCh;
+	pSapCtx->acs_cfg = &pConfig->acs_cfg;
+	/* Set the BSSID to your "self MAC Addr" read the mac address
+		from Configuation ITEM received from HDD */
+	pSapCtx->csr_roamProfile.BSSIDs.numOfBSSIDs = 1;
+	cdf_mem_copy(pSapCtx->csr_roamProfile.BSSIDs.bssid,
+		     pSapCtx->self_mac_addr, sizeof(struct cdf_mac_addr));
+
+	/* Save a copy to SAP context */
+	cdf_mem_copy(pSapCtx->csr_roamProfile.BSSIDs.bssid,
+		     pConfig->self_macaddr.bytes, CDF_MAC_ADDR_SIZE);
+	cdf_mem_copy(pSapCtx->self_mac_addr,
+		     pConfig->self_macaddr.bytes, CDF_MAC_ADDR_SIZE);
+
+	/* copy the configuration items to csrProfile */
+	sapconvert_to_csr_profile(pConfig, eCSR_BSS_TYPE_INFRA_AP,
+			       &pSapCtx->csr_roamProfile);
+	hHal = (tHalHandle) CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
+	if (NULL == hHal) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH,
+			  "%s: Invalid MAC context from p_cds_gctx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	} else {
+		/* If concurrent session is running that is already associated
+		 * then we just follow that sessions country info (whether
+		 * present or not doesn't maater as we have to follow whatever
+		 * STA session does) */
+		if ((0 == sme_get_concurrent_operation_channel(hHal)) &&
+		    pConfig->ieee80211d) {
+			/* Setting the region/country  information */
+			sme_set_reg_info(hHal, pConfig->countryCode);
+			sme_apply_channel_power_info_to_fw(hHal);
+		}
+	}
+
+	pmac = PMAC_STRUCT(hHal);
+	if (NULL == pmac) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH,
+			  "%s: Invalid MAC context from p_cds_gctx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
+	/*
+	 * Copy the DFS Test Mode setting to pmac for
+	 * access in lower layers
+	 */
+	pmac->sap.SapDfsInfo.disable_dfs_ch_switch =
+				pConfig->disableDFSChSwitch;
+
+	/* Copy MAC filtering settings to sap context */
+	pSapCtx->eSapMacAddrAclMode = pConfig->SapMacaddr_acl;
+	cdf_mem_copy(pSapCtx->acceptMacList, pConfig->accept_mac,
+		     sizeof(pConfig->accept_mac));
+	pSapCtx->nAcceptMac = pConfig->num_accept_mac;
+	sap_sort_mac_list(pSapCtx->acceptMacList, pSapCtx->nAcceptMac);
+	cdf_mem_copy(pSapCtx->denyMacList, pConfig->deny_mac,
+		     sizeof(pConfig->deny_mac));
+	pSapCtx->nDenyMac = pConfig->num_deny_mac;
+	sap_sort_mac_list(pSapCtx->denyMacList, pSapCtx->nDenyMac);
+	/* Fill in the event structure for FSM */
+	sapEvent.event = eSAP_HDD_START_INFRA_BSS;
+	sapEvent.params = 0;    /* pSapPhysLinkCreate */
+
+	/* Store the HDD callback in SAP context */
+	pSapCtx->pfnSapEventCallback = pSapEventCallback;
+
+	/* Handle event */
+	cdf_status = sap_fsm(pSapCtx, &sapEvent);
 
 	return cdf_status;
 } /* wlansap_start_bss */
@@ -787,36 +781,30 @@
 	CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH,
 		  "wlansap_set_mac_acl");
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-		/* Copy MAC filtering settings to sap context */
-		pSapCtx->eSapMacAddrAclMode = pConfig->SapMacaddr_acl;
-
-		if (eSAP_DENY_UNLESS_ACCEPTED == pSapCtx->eSapMacAddrAclMode) {
-			cdf_mem_copy(pSapCtx->acceptMacList,
-				     pConfig->accept_mac,
-				     sizeof(pConfig->accept_mac));
-			pSapCtx->nAcceptMac = pConfig->num_accept_mac;
-			sap_sort_mac_list(pSapCtx->acceptMacList,
-				       pSapCtx->nAcceptMac);
-		} else if (eSAP_ACCEPT_UNLESS_DENIED ==
-			   pSapCtx->eSapMacAddrAclMode) {
-			cdf_mem_copy(pSapCtx->denyMacList, pConfig->deny_mac,
-				     sizeof(pConfig->deny_mac));
-			pSapCtx->nDenyMac = pConfig->num_deny_mac;
-			sap_sort_mac_list(pSapCtx->denyMacList, pSapCtx->nDenyMac);
-		}
-	} else {
-		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-			  "%s : SoftAp role has not been enabled", __func__);
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
+	if (NULL == pSapCtx) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO_HIGH,
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
 		return CDF_STATUS_E_FAULT;
 	}
+	/* Copy MAC filtering settings to sap context */
+	pSapCtx->eSapMacAddrAclMode = pConfig->SapMacaddr_acl;
+
+	if (eSAP_DENY_UNLESS_ACCEPTED == pSapCtx->eSapMacAddrAclMode) {
+		cdf_mem_copy(pSapCtx->acceptMacList,
+			     pConfig->accept_mac,
+			     sizeof(pConfig->accept_mac));
+		pSapCtx->nAcceptMac = pConfig->num_accept_mac;
+		sap_sort_mac_list(pSapCtx->acceptMacList,
+			       pSapCtx->nAcceptMac);
+	} else if (eSAP_ACCEPT_UNLESS_DENIED ==
+		   pSapCtx->eSapMacAddrAclMode) {
+		cdf_mem_copy(pSapCtx->denyMacList, pConfig->deny_mac,
+			     sizeof(pConfig->deny_mac));
+		pSapCtx->nDenyMac = pConfig->num_deny_mac;
+		sap_sort_mac_list(pSapCtx->denyMacList, pSapCtx->nDenyMac);
+	}
 
 	return cdf_status;
 } /* wlansap_set_mac_acl */
@@ -1727,31 +1715,27 @@
 	CDF_STATUS cdf_ret_status = CDF_STATUS_E_FAILURE;
 	uint32_t roamId = 0xFF;
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-		hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
-		if (NULL == hHal) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid HAL pointer from p_cds_gctx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-		cdf_ret_status =
-			sme_roam_set_key(hHal, pSapCtx->sessionId, pSetKeyInfo,
-					 &roamId);
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
+	if (NULL == pSapCtx) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
+	hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
+	if (NULL == hHal) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid HAL pointer from p_cds_gctx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
+	cdf_ret_status =
+		sme_roam_set_key(hHal, pSapCtx->sessionId, pSetKeyInfo,
+				 &roamId);
 
-		if (cdf_ret_status == CDF_STATUS_SUCCESS) {
-			cdf_status = CDF_STATUS_SUCCESS;
-		} else {
-			cdf_status = CDF_STATUS_E_FAULT;
-		}
-	} else
+	if (cdf_ret_status == CDF_STATUS_SUCCESS)
+		cdf_status = CDF_STATUS_SUCCESS;
+	else
 		cdf_status = CDF_STATUS_E_FAULT;
 
 	return cdf_status;
@@ -1775,15 +1759,6 @@
 	CDF_STATUS cdf_status = CDF_STATUS_E_FAILURE;
 	ptSapContext sap_ctx = NULL;
 	uint32_t ie_len = 0;
-	tCDF_CON_MODE mode;
-
-	mode = cds_get_conparam();
-	if (CDF_SAP_MODE != mode) {
-		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-			"%d: called in wrong mode ",
-			mode);
-		return CDF_STATUS_E_FAULT;
-	}
 
 	sap_ctx = CDS_GET_SAP_CB(ctx);
 	if (NULL == sap_ctx) {
@@ -1831,44 +1806,41 @@
 	CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO,
 		  "%s, %d", __func__, __LINE__);
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
+	if (NULL == pSapCtx) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
 
-		hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
-		if (NULL == hHal) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid HAL pointer from p_cds_gctx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
+	hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
+	if (NULL == hHal) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid HAL pointer from p_cds_gctx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
 
-		if (sap_acquire_global_lock(pSapCtx) == CDF_STATUS_SUCCESS) {
-			if (pSap_WPSIe->sapWPSIECode == eSAP_WPS_BEACON_IE) {
-				cdf_mem_copy(&pSapCtx->APWPSIEs.SirWPSBeaconIE,
-					     &pSap_WPSIe->sapwpsie.
-					     sapWPSBeaconIE,
-					     sizeof(tSap_WPSBeaconIE));
-			} else if (pSap_WPSIe->sapWPSIECode ==
-				   eSAP_WPS_PROBE_RSP_IE) {
-				cdf_mem_copy(&pSapCtx->APWPSIEs.
-					     SirWPSProbeRspIE,
-					     &pSap_WPSIe->sapwpsie.
-					     sapWPSProbeRspIE,
-					     sizeof(tSap_WPSProbeRspIE));
-			} else {
-				sap_release_global_lock(pSapCtx);
-				return CDF_STATUS_E_FAULT;
-			}
+	if (sap_acquire_global_lock(pSapCtx) == CDF_STATUS_SUCCESS) {
+		if (pSap_WPSIe->sapWPSIECode == eSAP_WPS_BEACON_IE) {
+			cdf_mem_copy(&pSapCtx->APWPSIEs.SirWPSBeaconIE,
+				     &pSap_WPSIe->sapwpsie.
+				     sapWPSBeaconIE,
+				     sizeof(tSap_WPSBeaconIE));
+		} else if (pSap_WPSIe->sapWPSIECode ==
+			   eSAP_WPS_PROBE_RSP_IE) {
+			cdf_mem_copy(&pSapCtx->APWPSIEs.
+				     SirWPSProbeRspIE,
+				     &pSap_WPSIe->sapwpsie.
+				     sapWPSProbeRspIE,
+				     sizeof(tSap_WPSProbeRspIE));
+		} else {
 			sap_release_global_lock(pSapCtx);
-			return CDF_STATUS_SUCCESS;
-		} else
 			return CDF_STATUS_E_FAULT;
+		}
+		sap_release_global_lock(pSapCtx);
+		return CDF_STATUS_SUCCESS;
 	} else
 		return CDF_STATUS_E_FAULT;
 }
@@ -1894,35 +1866,31 @@
 	CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
 		  "%s, %d", __func__, __LINE__);
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-
-		hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
-		if (NULL == hHal) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid HAL pointer from p_cds_gctx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-
-		cdf_ret_status =
-			sme_roam_update_apwpsie(hHal, pSapCtx->sessionId,
-						&pSapCtx->APWPSIEs);
-
-		if (cdf_ret_status == CDF_STATUS_SUCCESS) {
-			cdf_status = CDF_STATUS_SUCCESS;
-		} else {
-			cdf_status = CDF_STATUS_E_FAULT;
-		}
-
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
+	if (NULL == pSapCtx) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
 	}
 
+	hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
+	if (NULL == hHal) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid HAL pointer from p_cds_gctx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
+
+	cdf_ret_status =
+		sme_roam_update_apwpsie(hHal, pSapCtx->sessionId,
+					&pSapCtx->APWPSIEs);
+
+	if (cdf_ret_status == CDF_STATUS_SUCCESS)
+		cdf_status = CDF_STATUS_SUCCESS;
+	else
+		cdf_status = CDF_STATUS_E_FAULT;
+
 	return cdf_status;
 }
 
@@ -1947,37 +1915,33 @@
 	CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_INFO,
 		  "%s, %d", __func__, __LINE__);
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
+	if (NULL == pSapCtx) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
 
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
+	hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
+	if (NULL == hHal) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid HAL pointer from p_cds_gctx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
 
-		hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
-		if (NULL == hHal) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid HAL pointer from p_cds_gctx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
+	if (sap_acquire_global_lock(pSapCtx) == CDF_STATUS_SUCCESS) {
+		if (pSapCtx->APWPSIEs.SirWPSProbeRspIE.
+		    FieldPresent &
+		    SIR_WPS_PROBRSP_SELECTEDREGISTRA_PRESENT)
+			*bWPSState = true;
+		else
+			*bWPSState = false;
 
-		if (sap_acquire_global_lock(pSapCtx) == CDF_STATUS_SUCCESS) {
-			if (pSapCtx->APWPSIEs.SirWPSProbeRspIE.
-			    FieldPresent &
-			    SIR_WPS_PROBRSP_SELECTEDREGISTRA_PRESENT)
-				*bWPSState = true;
-			else
-				*bWPSState = false;
+		sap_release_global_lock(pSapCtx);
 
-			sap_release_global_lock(pSapCtx);
-
-			return CDF_STATUS_SUCCESS;
-		} else
-			return CDF_STATUS_E_FAULT;
+		return CDF_STATUS_SUCCESS;
 	} else
 		return CDF_STATUS_E_FAULT;
 
@@ -2025,38 +1989,35 @@
 	CDF_STATUS cdf_ret_status = CDF_STATUS_E_FAILURE;
 	void *hHal = NULL;
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-
-		hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
-		if (NULL == hHal) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid HAL pointer from p_cds_gctx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-
-		pSapCtx->APWPARSNIEs.length = (uint16_t) WPARSNIEsLen;
-		cdf_mem_copy(pSapCtx->APWPARSNIEs.rsnIEdata, pWPARSNIEs,
-			     WPARSNIEsLen);
-
-		cdf_ret_status =
-			sme_roam_update_apwparsni_es(hHal, pSapCtx->sessionId,
-						     &pSapCtx->APWPARSNIEs);
-
-		if (cdf_ret_status == CDF_STATUS_SUCCESS) {
-			return CDF_STATUS_SUCCESS;
-		} else {
-			return CDF_STATUS_E_FAULT;
-		}
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
+	if (NULL == pSapCtx) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
 	}
 
+	hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
+	if (NULL == hHal) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid HAL pointer from p_cds_gctx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
+
+	pSapCtx->APWPARSNIEs.length = (uint16_t) WPARSNIEsLen;
+	cdf_mem_copy(pSapCtx->APWPARSNIEs.rsnIEdata, pWPARSNIEs,
+		     WPARSNIEsLen);
+
+	cdf_ret_status =
+		sme_roam_update_apwparsni_es(hHal, pSapCtx->sessionId,
+					     &pSapCtx->APWPARSNIEs);
+
+	if (cdf_ret_status == CDF_STATUS_SUCCESS)
+		return CDF_STATUS_SUCCESS;
+	else
+		return CDF_STATUS_E_FAULT;
+
 	return CDF_STATUS_E_FAULT;
 }
 
@@ -2080,29 +2041,27 @@
 	void *hHal = NULL;
 	CDF_STATUS cdf_ret_status = CDF_STATUS_E_FAILURE;
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-		hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
-		if ((NULL == hHal) || (eSAP_TRUE != pSapCtx->isSapSessionOpen)) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: HAL pointer (%p) NULL OR SME session is not open (%d)",
-				  __func__, hHal, pSapCtx->isSapSessionOpen);
-			return CDF_STATUS_E_FAULT;
-		}
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
+	if (NULL == pSapCtx) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
+	hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
+	if ((NULL == hHal) || (eSAP_TRUE != pSapCtx->isSapSessionOpen)) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: HAL pointer (%p) NULL OR SME session is not open (%d)",
+			  __func__, hHal, pSapCtx->isSapSessionOpen);
+		return CDF_STATUS_E_FAULT;
+	}
 
-		cdf_ret_status =
-			sme_send_action(hHal, pSapCtx->sessionId, pBuf, len, 0,
-			0, channel_freq);
+	cdf_ret_status =
+		sme_send_action(hHal, pSapCtx->sessionId, pBuf, len, 0,
+		0, channel_freq);
 
-		if (CDF_STATUS_SUCCESS == cdf_ret_status) {
-			return CDF_STATUS_SUCCESS;
-		}
+	if (CDF_STATUS_SUCCESS == cdf_ret_status) {
+		return CDF_STATUS_SUCCESS;
 	}
 
 	CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
@@ -2136,29 +2095,27 @@
 	void *hHal = NULL;
 	CDF_STATUS cdf_ret_status = CDF_STATUS_E_FAILURE;
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-		hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
-		if ((NULL == hHal) || (eSAP_TRUE != pSapCtx->isSapSessionOpen)) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: HAL pointer (%p) NULL OR SME session is not open (%d)",
-				  __func__, hHal, pSapCtx->isSapSessionOpen);
-			return CDF_STATUS_E_FAULT;
-		}
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
+	if (NULL == pSapCtx) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
+	hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
+	if ((NULL == hHal) || (eSAP_TRUE != pSapCtx->isSapSessionOpen)) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: HAL pointer (%p) NULL OR SME session is not open (%d)",
+			  __func__, hHal, pSapCtx->isSapSessionOpen);
+		return CDF_STATUS_E_FAULT;
+	}
 
-		cdf_ret_status = sme_remain_on_channel(hHal, pSapCtx->sessionId,
-					channel, duration, callback, pContext,
-					true, scan_id);
+	cdf_ret_status = sme_remain_on_channel(hHal, pSapCtx->sessionId,
+				channel, duration, callback, pContext,
+				true, scan_id);
 
-		if (CDF_STATUS_SUCCESS == cdf_ret_status) {
-			return CDF_STATUS_SUCCESS;
-		}
+	if (CDF_STATUS_SUCCESS == cdf_ret_status) {
+		return CDF_STATUS_SUCCESS;
 	}
 
 	CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
@@ -2185,30 +2142,28 @@
 	void *hHal = NULL;
 	CDF_STATUS cdf_ret_status = CDF_STATUS_E_FAILURE;
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-		hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
-		if ((NULL == hHal) ||
-			(eSAP_TRUE != pSapCtx->isSapSessionOpen)) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: HAL pointer (%p) NULL OR SME session is not open (%d)",
-				  __func__, hHal, pSapCtx->isSapSessionOpen);
-			return CDF_STATUS_E_FAULT;
-		}
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
+	if (NULL == pSapCtx) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
+	hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
+	if ((NULL == hHal) ||
+		(eSAP_TRUE != pSapCtx->isSapSessionOpen)) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: HAL pointer (%p) NULL OR SME session is not open (%d)",
+			  __func__, hHal, pSapCtx->isSapSessionOpen);
+		return CDF_STATUS_E_FAULT;
+	}
 
-		cdf_ret_status =
-			sme_cancel_remain_on_channel(hHal, pSapCtx->sessionId,
-			scan_id);
+	cdf_ret_status =
+		sme_cancel_remain_on_channel(hHal, pSapCtx->sessionId,
+		scan_id);
 
-		if (CDF_STATUS_SUCCESS == cdf_ret_status) {
-			return CDF_STATUS_SUCCESS;
-		}
+	if (CDF_STATUS_SUCCESS == cdf_ret_status) {
+		return CDF_STATUS_SUCCESS;
 	}
 
 	CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
@@ -2238,29 +2193,27 @@
 	void *hHal = NULL;
 	CDF_STATUS cdf_ret_status = CDF_STATUS_E_FAILURE;
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-		hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
-		if ((NULL == hHal) || (eSAP_TRUE != pSapCtx->isSapSessionOpen)) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: HAL pointer (%p) NULL OR SME session is not open (%d)",
-				  __func__, hHal, pSapCtx->isSapSessionOpen);
-			return CDF_STATUS_E_FAULT;
-		}
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
+	if (NULL == pSapCtx) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
+	hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
+	if ((NULL == hHal) || (eSAP_TRUE != pSapCtx->isSapSessionOpen)) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: HAL pointer (%p) NULL OR SME session is not open (%d)",
+			  __func__, hHal, pSapCtx->isSapSessionOpen);
+		return CDF_STATUS_E_FAULT;
+	}
 
-		cdf_ret_status = sme_register_mgmt_frame(hHal, pSapCtx->sessionId,
-							 frameType, matchData,
-							 matchLen);
+	cdf_ret_status = sme_register_mgmt_frame(hHal, pSapCtx->sessionId,
+						 frameType, matchData,
+						 matchLen);
 
-		if (CDF_STATUS_SUCCESS == cdf_ret_status) {
-			return CDF_STATUS_SUCCESS;
-		}
+	if (CDF_STATUS_SUCCESS == cdf_ret_status) {
+		return CDF_STATUS_SUCCESS;
 	}
 
 	CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
@@ -2290,29 +2243,27 @@
 	void *hHal = NULL;
 	CDF_STATUS cdf_ret_status = CDF_STATUS_E_FAILURE;
 
-	if (CDF_SAP_MODE == cds_get_conparam()) {
-		pSapCtx = CDS_GET_SAP_CB(pCtx);
-		if (NULL == pSapCtx) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: Invalid SAP pointer from pCtx",
-				  __func__);
-			return CDF_STATUS_E_FAULT;
-		}
-		hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
-		if ((NULL == hHal) || (eSAP_TRUE != pSapCtx->isSapSessionOpen)) {
-			CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
-				  "%s: HAL pointer (%p) NULL OR SME session is not open (%d)",
-				  __func__, hHal, pSapCtx->isSapSessionOpen);
-			return CDF_STATUS_E_FAULT;
-		}
+	pSapCtx = CDS_GET_SAP_CB(pCtx);
+	if (NULL == pSapCtx) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: Invalid SAP pointer from pCtx",
+			  __func__);
+		return CDF_STATUS_E_FAULT;
+	}
+	hHal = CDS_GET_HAL_CB(pSapCtx->p_cds_gctx);
+	if ((NULL == hHal) || (eSAP_TRUE != pSapCtx->isSapSessionOpen)) {
+		CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
+			  "%s: HAL pointer (%p) NULL OR SME session is not open (%d)",
+			  __func__, hHal, pSapCtx->isSapSessionOpen);
+		return CDF_STATUS_E_FAULT;
+	}
 
-		cdf_ret_status =
-			sme_deregister_mgmt_frame(hHal, pSapCtx->sessionId, frameType,
-						  matchData, matchLen);
+	cdf_ret_status =
+		sme_deregister_mgmt_frame(hHal, pSapCtx->sessionId, frameType,
+					  matchData, matchLen);
 
-		if (CDF_STATUS_SUCCESS == cdf_ret_status) {
-			return CDF_STATUS_SUCCESS;
-		}
+	if (CDF_STATUS_SUCCESS == cdf_ret_status) {
+		return CDF_STATUS_SUCCESS;
 	}
 
 	CDF_TRACE(CDF_MODULE_ID_SAP, CDF_TRACE_LEVEL_ERROR,
diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h
index 954458e..af46ebc 100644
--- a/core/sme/inc/csr_api.h
+++ b/core/sme/inc/csr_api.h
@@ -408,7 +408,7 @@
 	 */
 	uint8_t scan_filter_for_roam;
 	struct sCsrChannel_ pcl_channels;
-	tCDF_CON_MODE csrPersona;
+	enum tCDF_ADAPTER_MODE csrPersona;
 } tCsrScanResultFilter;
 
 typedef struct sCsrChnPower_ {
@@ -951,7 +951,7 @@
 #ifdef WLAN_FEATURE_VOWIFI_11R
 	tCsrMobilityDomainInfo MDID;
 #endif
-	tCDF_CON_MODE csrPersona;
+	enum tCDF_ADAPTER_MODE csrPersona;
 	uint8_t disableDFSChSwitch;
 	/* addIe params */
 	tSirAddIeParams addIeParams;
diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h
index 89abb9d..bc82612 100644
--- a/core/sme/inc/csr_internal.h
+++ b/core/sme/inc/csr_internal.h
@@ -346,7 +346,7 @@
 	uint8_t ApUapsdEnable;
 	uint8_t ssidHidden;
 	uint8_t wps_state;
-	tCDF_CON_MODE bssPersona;
+	enum tCDF_ADAPTER_MODE bssPersona;
 	uint16_t nRSNIELength;  /* If 0, pRSNIE is ignored. */
 	uint8_t *pRSNIE;        /* If not null, it has IE byte stream for RSN */
 	/* Flag used to indicate update beaconInterval */
@@ -429,7 +429,7 @@
 typedef struct tagAddStaForSessionCmd {
 	/* Session self mac addr */
 	tSirMacAddr selfMacAddr;
-	tCDF_CON_MODE currDeviceMode;
+	enum tCDF_ADAPTER_MODE currDeviceMode;
 	uint32_t type;
 	uint32_t subType;
 	uint8_t sessionId;
@@ -1405,4 +1405,6 @@
 
 bool csr_wait_for_connection_update(tpAniSirGlobal mac,
 		bool do_release_reacquire_lock);
+enum tCDF_ADAPTER_MODE csr_get_session_persona(tpAniSirGlobal pmac,
+						uint32_t session_id);
 #endif
diff --git a/core/sme/inc/csr_support.h b/core/sme/inc/csr_support.h
index f62c5a2..58d62f9 100644
--- a/core/sme/inc/csr_support.h
+++ b/core/sme/inc/csr_support.h
@@ -356,11 +356,11 @@
 		uint32_t *pRoamId, bool fForce);
 
 CDF_STATUS csr_isconcurrentsession_valid(tpAniSirGlobal pMac,
-		uint32_t cursessionId, tCDF_CON_MODE currBssPersona);
+		uint32_t cursessionId, enum tCDF_ADAPTER_MODE currBssPersona);
 /* BeaconInterval validation for MCC support */
 CDF_STATUS csr_validate_mcc_beacon_interval(tpAniSirGlobal pMac, uint8_t channelId,
 		uint16_t *beaconInterval, uint32_t cursessionId,
-		tCDF_CON_MODE currBssPersona);
+		enum tCDF_ADAPTER_MODE currBssPersona);
 #ifdef WLAN_FEATURE_VOWIFI_11R
 bool csr_is_profile11r(tCsrRoamProfile *pProfile);
 bool csr_is_auth_type11r(eCsrAuthType AuthType, uint8_t mdiePresent);
diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h
index 9e8c40e..a00d847 100644
--- a/core/sme/inc/sme_api.h
+++ b/core/sme/inc/sme_api.h
@@ -233,7 +233,8 @@
 		void *pContext, uint8_t *pSelfMacAddr,
 		uint8_t *pbSessionId, uint32_t type,
 		uint32_t subType);
-void sme_set_curr_device_mode(tHalHandle hHal, tCDF_CON_MODE currDeviceMode);
+void sme_set_curr_device_mode(tHalHandle hHal,
+		enum tCDF_ADAPTER_MODE currDeviceMode);
 CDF_STATUS sme_close_session(tHalHandle hHal, uint8_t sessionId,
 		csr_roamSessionCloseCallback callback,
 		void *pContext);
@@ -558,7 +559,7 @@
 CDF_STATUS sme_set_max_tx_power_per_band(eCsrBand band, int8_t db);
 CDF_STATUS sme_set_tx_power(tHalHandle hHal, uint8_t sessionId,
 		struct cdf_mac_addr bssid,
-		tCDF_CON_MODE dev_mode, int power);
+		enum tCDF_ADAPTER_MODE dev_mode, int power);
 CDF_STATUS sme_set_custom_mac_addr(tSirMacAddr customMacAddr);
 CDF_STATUS sme_hide_ssid(tHalHandle hHal, uint8_t sessionId,
 		uint8_t ssidHidden);
diff --git a/core/sme/inc/sme_internal.h b/core/sme/inc/sme_internal.h
index eb1915f..9c0437b 100644
--- a/core/sme/inc/sme_internal.h
+++ b/core/sme/inc/sme_internal.h
@@ -148,7 +148,7 @@
 	tDblLinkList smeCmdActiveList;
 	tDblLinkList smeCmdPendingList;
 	tDblLinkList smeCmdFreeList;    /* preallocated roam cmd list */
-	tCDF_CON_MODE currDeviceMode;
+	enum tCDF_ADAPTER_MODE currDeviceMode;
 #ifdef FEATURE_WLAN_LPHB
 	void (*pLphbIndCb)(void *pHddCtx, tSirLPHBInd *indParam);
 #endif /* FEATURE_WLAN_LPHB */
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c
index a6c4126..5178a8d 100644
--- a/core/sme/src/common/sme_api.c
+++ b/core/sme/src/common/sme_api.c
@@ -7822,8 +7822,8 @@
    \- return CDF_STATUS
    ---------------------------------------------------------------------------*/
 CDF_STATUS sme_set_tx_power(tHalHandle hHal, uint8_t sessionId,
-			    struct cdf_mac_addr pBSSId,
-			    tCDF_CON_MODE dev_mode, int dBm)
+			   struct cdf_mac_addr pBSSId,
+			   enum tCDF_ADAPTER_MODE dev_mode, int dBm)
 {
 	cds_msg_t msg;
 	tpMaxTxPowerParams pTxParams = NULL;
@@ -10428,7 +10428,8 @@
    \param currDeviceMode - Current operating device mode.
    --------------------------------------------------------------------------*/
 
-void sme_set_curr_device_mode(tHalHandle hHal, tCDF_CON_MODE currDeviceMode)
+void sme_set_curr_device_mode(tHalHandle hHal,
+				enum tCDF_ADAPTER_MODE currDeviceMode)
 {
 	tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
 	pMac->sme.currDeviceMode = currDeviceMode;
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index eb32509..f22cf8d 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -263,7 +263,8 @@
 tListElem *csr_roam_find_in_pe_stats_req_list(tpAniSirGlobal pMac, uint32_t statsMask);
 CDF_STATUS csr_roam_dereg_statistics_req(tpAniSirGlobal pMac);
 static uint32_t csr_find_ibss_session(tpAniSirGlobal pMac);
-static uint32_t csr_find_session_by_type(tpAniSirGlobal, tCDF_CON_MODE);
+static uint32_t csr_find_session_by_type(tpAniSirGlobal,
+					enum tCDF_ADAPTER_MODE);
 static bool csr_is_conn_allow_2g_band(tpAniSirGlobal pMac, uint32_t chnl);
 static bool csr_is_conn_allow_5g_band(tpAniSirGlobal pMac, uint32_t chnl);
 static CDF_STATUS csr_roam_start_wds(tpAniSirGlobal pMac, uint32_t sessionId,
@@ -4162,8 +4163,11 @@
 	/* Make sure we have the domain info for the BSS we try to connect to. */
 	/* Do we need to worry about sequence for OSs that are not Windows?? */
 	if (pBssDesc) {
-		if (csr_learn_11dcountry_information(pMac, pBssDesc, pIes, true)) {
-				csr_apply_country_information(pMac);
+		if ((CDF_SAP_MODE !=
+			csr_get_session_persona(pMac, sessionId)) &&
+			csr_learn_11dcountry_information(
+					pMac, pBssDesc, pIes, true)) {
+			csr_apply_country_information(pMac);
 		}
 		if ((csr_is11d_supported(pMac)) && pIes) {
 			if (!pIes->Country.present) {
@@ -18545,7 +18549,7 @@
  * Return: session id for give session type.
  **/
 static uint32_t
-csr_find_session_by_type(tpAniSirGlobal mac_ctx, tCDF_CON_MODE type)
+csr_find_session_by_type(tpAniSirGlobal mac_ctx, enum tCDF_ADAPTER_MODE type)
 {
 	uint32_t i, session_id = CSR_SESSION_ID_INVALID;
 	tCsrRoamSession *session_ptr;
diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c
index 9386611..95da9e7 100644
--- a/core/sme/src/csr/csr_api_scan.c
+++ b/core/sme/src/csr/csr_api_scan.c
@@ -3559,9 +3559,6 @@
 	tDot11fBeaconIEs *pIesLocal = pIes;
 	bool useVoting = false;
 
-	if (CDF_SAP_MODE == cds_get_conparam())
-		return CDF_STATUS_SUCCESS;
-
 	if ((NULL == pSirBssDesc) && (NULL == pIes))
 		useVoting = true;
 
diff --git a/core/sme/src/csr/csr_util.c b/core/sme/src/csr/csr_util.c
index 8b32fe9..527c4d4 100644
--- a/core/sme/src/csr/csr_util.c
+++ b/core/sme/src/csr/csr_util.c
@@ -451,7 +451,7 @@
 {
 	tCsrRoamSession *session = NULL;
 	uint8_t i = 0;
-	tCDF_CON_MODE persona;
+	enum tCDF_ADAPTER_MODE persona;
 
 	for (i = 0; i < CSR_ROAM_SESSION_MAX; i++) {
 		if (!CSR_IS_SESSION_VALID(mac_ctx, i))
@@ -855,7 +855,7 @@
 {
 	uint32_t i;
 	tCsrRoamSession *pSession = NULL;
-	tCDF_CON_MODE persona;
+	enum tCDF_ADAPTER_MODE persona;
 
 	for (i = 0; i < CSR_ROAM_SESSION_MAX; i++) {
 		if (CSR_IS_SESSION_VALID(pMac, i)
@@ -1888,10 +1888,10 @@
  */
 CDF_STATUS
 csr_isconcurrentsession_valid(tpAniSirGlobal mac_ctx, uint32_t cur_sessionid,
-			      tCDF_CON_MODE cur_bss_persona)
+			      enum tCDF_ADAPTER_MODE cur_bss_persona)
 {
 	uint32_t sessionid = 0;
-	tCDF_CON_MODE bss_persona;
+	enum tCDF_ADAPTER_MODE bss_persona;
 	eCsrConnectState connect_state, temp;
 	tCsrRoamSession *roam_session;
 
@@ -2096,10 +2096,11 @@
 	return go_fbi;
 }
 
-CDF_STATUS csr_validate_mcc_beacon_interval(tpAniSirGlobal pMac, uint8_t channelId,
-					    uint16_t *beaconInterval,
-					    uint32_t cursessionId,
-					    tCDF_CON_MODE currBssPersona)
+CDF_STATUS csr_validate_mcc_beacon_interval(tpAniSirGlobal pMac,
+					uint8_t channelId,
+					uint16_t *beaconInterval,
+					uint32_t cursessionId,
+					enum tCDF_ADAPTER_MODE currBssPersona)
 {
 	uint32_t sessionId = 0;
 	uint16_t new_beaconInterval = 0;
@@ -5717,3 +5718,24 @@
 
 	return true;
 }
+
+/**
+ * csr_get_session_persona() - get persona of a session
+ * @pmac: pointer to global MAC context
+ * @session_id: session id
+ *
+ * This function is to return the persona of a session
+ *
+ * Reture: enum tCDF_ADAPTER_MODE persona
+ */
+enum tCDF_ADAPTER_MODE csr_get_session_persona(tpAniSirGlobal pmac,
+						uint32_t session_id)
+{
+	tCsrRoamSession *session = NULL;
+
+	session = CSR_GET_SESSION(pmac, session_id);
+	if (NULL == session || NULL == session->pCurRoamProfile)
+		return CDF_MAX_NO_OF_MODE;
+
+	return session->pCurRoamProfile->csrPersona;
+}
diff --git a/core/utils/epping/inc/epping_internal.h b/core/utils/epping/inc/epping_internal.h
index ee32b4c..ab68c2b 100644
--- a/core/utils/epping/inc/epping_internal.h
+++ b/core/utils/epping/inc/epping_internal.h
@@ -135,7 +135,7 @@
 
 typedef struct epping_adapter_s {
 	epping_context_t *pEpping_ctx;
-	tCDF_CON_MODE device_mode;
+	enum tCDF_ADAPTER_MODE device_mode;
 	/** Handle to the network device */
 	struct net_device *dev;
 	struct cdf_mac_addr macAddressCurrent;
@@ -183,7 +183,7 @@
 /* epping_txrx signatures */
 epping_adapter_t *epping_add_adapter(epping_context_t *pEpping_ctx,
 				     tSirMacAddr macAddr,
-				     tCDF_CON_MODE device_mode);
+				     enum tCDF_ADAPTER_MODE device_mode);
 void epping_destroy_adapter(epping_adapter_t *pAdapter);
 int epping_connect_service(epping_context_t *pEpping_ctx);
 #ifdef HIF_PCI
diff --git a/core/utils/epping/src/epping_txrx.c b/core/utils/epping/src/epping_txrx.c
index 240d43a..6cb3192 100644
--- a/core/utils/epping/src/epping_txrx.c
+++ b/core/utils/epping/src/epping_txrx.c
@@ -342,7 +342,7 @@
 
 epping_adapter_t *epping_add_adapter(epping_context_t *pEpping_ctx,
 				     tSirMacAddr macAddr,
-				     tCDF_CON_MODE device_mode)
+				     enum tCDF_ADAPTER_MODE device_mode)
 {
 	struct net_device *dev;
 	epping_adapter_t *pAdapter;
diff --git a/core/wma/inc/wma_if.h b/core/wma/inc/wma_if.h
index 3428297..482b800 100644
--- a/core/wma/inc/wma_if.h
+++ b/core/wma/inc/wma_if.h
@@ -1161,7 +1161,7 @@
 	 * power == tx power used for management frames.
 	 */
 	tPowerdBm power;
-	tCDF_CON_MODE dev_mode;
+	enum tCDF_ADAPTER_MODE dev_mode;
 } tMaxTxPowerParams, *tpMaxTxPowerParams;
 
 /**
@@ -1185,7 +1185,7 @@
  */
 struct add_sta_self_params {
 	tSirMacAddr self_mac_addr;
-	tCDF_CON_MODE curr_device_mode;
+	enum tCDF_ADAPTER_MODE curr_device_mode;
 	uint32_t type;
 	uint32_t sub_type;
 	uint8_t session_id;
diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c
index 59253b8..0726310 100644
--- a/core/wma/src/wma_main.c
+++ b/core/wma/src/wma_main.c
@@ -1558,7 +1558,7 @@
 
 	cdf_mem_zero(wma_handle, sizeof(t_wma_handle));
 
-	if (cds_get_conparam() != CDF_FTM_MODE) {
+	if (cds_get_conparam() != CDF_GLOBAL_FTM_MODE) {
 #ifdef FEATURE_WLAN_SCAN_PNO
 		cdf_wake_lock_init(&wma_handle->pno_wake_lock, "wlan_pno_wl");
 #endif /* FEATURE_WLAN_SCAN_PNO */
@@ -1645,7 +1645,7 @@
 		goto err_wmi_handle;
 	}
 #if defined(QCA_WIFI_FTM)
-	if (cds_get_conparam() == CDF_FTM_MODE)
+	if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE)
 		wma_utf_attach(wma_handle);
 #endif /* QCA_WIFI_FTM */
 
@@ -1951,7 +1951,7 @@
 
 err_wma_handle:
 
-	if (cds_get_conparam() != CDF_FTM_MODE) {
+	if (cds_get_conparam() != CDF_GLOBAL_FTM_MODE) {
 #ifdef FEATURE_WLAN_SCAN_PNO
 		cdf_wake_lock_destroy(&wma_handle->pno_wake_lock);
 #endif /* FEATURE_WLAN_SCAN_PNO */
@@ -2676,7 +2676,7 @@
 	 * Tx mgmt attach requires TXRX context which is not created
 	 * in FTM mode. So skip the TX mgmt attach.
 	 */
-	if (cds_get_conparam() == CDF_FTM_MODE)
+	if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE)
 		goto end;
 #endif /* QCA_WIFI_FTM */
 
@@ -2779,7 +2779,7 @@
 	 * Tx mgmt detach requires TXRX context which is not created
 	 * in FTM mode. So skip the TX mgmt detach.
 	 */
-	if (cds_get_conparam() == CDF_FTM_MODE) {
+	if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE) {
 		cdf_status = CDF_STATUS_SUCCESS;
 		goto end;
 	}
@@ -3044,7 +3044,7 @@
 		wma_handle->saved_wmi_init_cmd.buf = NULL;
 	}
 
-	if (cds_get_conparam() != CDF_FTM_MODE) {
+	if (cds_get_conparam() != CDF_GLOBAL_FTM_MODE) {
 #ifdef FEATURE_WLAN_SCAN_PNO
 		cdf_wake_lock_destroy(&wma_handle->pno_wake_lock);
 #endif /* FEATURE_WLAN_SCAN_PNO */
@@ -3083,7 +3083,7 @@
 
 #if defined(QCA_WIFI_FTM)
 	/* Detach UTF and unregister the handler */
-	if (cds_get_conparam() == CDF_FTM_MODE)
+	if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE)
 		wma_utf_detach(wma_handle);
 #endif /* QCA_WIFI_FTM */
 
diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c
index 2373f92..9d4d402 100644
--- a/core/wma/src/wma_mgmt.c
+++ b/core/wma/src/wma_mgmt.c
@@ -3297,7 +3297,7 @@
 	tp_wma_handle wma_handle;
 
 #ifdef QCA_WIFI_FTM
-	if (cds_get_conparam() == CDF_FTM_MODE)
+	if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE)
 		return CDF_STATUS_SUCCESS;
 #endif
 
diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c
index bb02753..5ab1341 100644
--- a/core/wma/src/wma_utils.c
+++ b/core/wma/src/wma_utils.c
@@ -2550,7 +2550,7 @@
 	if (!msg_buffer)
 		return CDF_STATUS_E_INVAL;
 
-	if (cds_get_conparam() != CDF_FTM_MODE) {
+	if (cds_get_conparam() != CDF_GLOBAL_FTM_MODE) {
 		WMA_LOGE("FTM command issued in non-FTM mode");
 		cdf_mem_free(msg_buffer->data);
 		cdf_mem_free(msg_buffer);