diff --git a/Kbuild b/Kbuild
index bfd1122..ce0e1d0 100644
--- a/Kbuild
+++ b/Kbuild
@@ -1195,6 +1195,7 @@
 		 $(NAN_CORE_DIR)/nan_api.o \
 		 $(NAN_CORE_DIR)/nan_utils.o \
 		 $(NAN_UCFG_DIR)/nan_ucfg_api.o \
+		 $(NAN_UCFG_DIR)/cfg_nan.o \
 		 $(NAN_TGT_DIR)/target_if_nan.o \
 		 $(NAN_OS_IF_DIR)/os_if_nan.o
 endif
diff --git a/components/cfg/cfg_all.h b/components/cfg/cfg_all.h
index ff668b6..ffe29c9 100644
--- a/components/cfg/cfg_all.h
+++ b/components/cfg/cfg_all.h
@@ -31,7 +31,14 @@
 #define CFG_TDLS_ALL
 #endif
 
+#ifdef WLAN_FEATURE_NAN_CONVERGENCE
+#include "cfg_nan.h"
+#else
+#define CFG_NAN_ALL
+#endif
+
 #define CFG_ALL \
 	CFG_CONVERGED_ALL \
 	CFG_P2P_ALL \
-	CFG_TDLS_ALL
+	CFG_TDLS_ALL \
+	CFG_NAN_ALL
diff --git a/components/pmo/core/inc/wlan_pmo_wow.h b/components/pmo/core/inc/wlan_pmo_wow.h
index ecc2d24..b3a0189 100644
--- a/components/pmo/core/inc/wlan_pmo_wow.h
+++ b/components/pmo/core/inc/wlan_pmo_wow.h
@@ -634,38 +634,6 @@
 }
 #endif
 
-#ifdef WLAN_FEATURE_NAN
-/**
- * pmo_is_nan_enabled() - check if NaN is enabled
- * @vdev: objmgr vdev handle
- *
- * WoW is needed if LPASS or NaN feature is enabled in INI because
- * target can't wake up itself if its put in PDEV suspend when LPASS
- * or NaN features are supported
- *
- * Return: true if NaN is enabled else false
- */
-static inline
-bool pmo_core_is_nan_enabled(struct wlan_objmgr_vdev *vdev)
-{
-	bool nan_enable;
-	struct pmo_vdev_priv_obj *vdev_ctx;
-
-	vdev_ctx = pmo_vdev_get_priv(vdev);
-	qdf_spin_lock_bh(&vdev_ctx->pmo_vdev_lock);
-	nan_enable = vdev_ctx->pmo_psoc_ctx->psoc_cfg.nan_enable;
-	qdf_spin_unlock_bh(&vdev_ctx->pmo_vdev_lock);
-
-	return nan_enable;
-}
-#else
-static inline
-bool pmo_core_is_nan_enabled(struct wlan_objmgr_vdev *vdev)
-{
-	return false;
-}
-#endif
-
 /**
  * pmo_get_event_bitmap_idx() - get indices for extended wow bitmaps
  * @event: wow event
diff --git a/components/pmo/core/src/wlan_pmo_wow.c b/components/pmo/core/src/wlan_pmo_wow.c
index b783a61..fd4f5bb 100644
--- a/components/pmo/core/src/wlan_pmo_wow.c
+++ b/components/pmo/core/src/wlan_pmo_wow.c
@@ -26,6 +26,7 @@
 #include <wlan_scan_ucfg_api.h>
 #include "wlan_pmo_static_config.h"
 #include "wlan_reg_services_api.h"
+#include "cfg_nan_api.h"
 
 void pmo_set_wow_event_bitmap(WOW_WAKE_EVENT_TYPE event,
 			      uint32_t wow_bitmap_size,
@@ -315,7 +316,7 @@
 		} else if (pmo_core_is_lpass_enabled(vdev)) {
 			pmo_debug("LPASS is enabled, enabling WoW");
 			is_wow_applicable = true;
-		} else if (pmo_core_is_nan_enabled(vdev)) {
+		} else if (cfg_nan_get_enable(psoc)) {
 			pmo_debug("NAN is enabled, enabling WoW");
 			is_wow_applicable = true;
 		} else if (pmo_core_get_vdev_op_mode(vdev) == QDF_NDI_MODE) {
diff --git a/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h b/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h
index 9790491..c6a4b9b 100644
--- a/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h
+++ b/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h
@@ -278,7 +278,6 @@
  * @deauth_enable: true when wake up on deauth is enabled else false
  * @disassoc_enable:  true when wake up on disassoc is enabled else false
  * @bmiss_enable: true when wake up on bmiss is enabled else false
- * @nan_enable:  true when nan is enabled else false
  * @lpass_enable: true when lpass is enabled else false
  * @sta_dynamic_dtim: station dynamic DTIM value
  * @sta_mod_dtim: station modulated DTIM value
@@ -305,7 +304,6 @@
 	bool deauth_enable;
 	bool disassoc_enable;
 	bool bmiss_enable;
-	bool nan_enable;
 	bool lpass_enable;
 	uint8_t sta_dynamic_dtim;
 	uint8_t sta_mod_dtim;
diff --git a/core/cds/inc/cds_config.h b/core/cds/inc/cds_config.h
index 69212d0..28c697e 100644
--- a/core/cds/inc/cds_config.h
+++ b/core/cds/inc/cds_config.h
@@ -92,7 +92,6 @@
  * @tx_flow_stop_queue_th: Threshold to stop queue in percentage
  * @tx_flow_start_queue_offset: Start queue offset in percentage
  * @is_lpass_enabled: Indicate whether LPASS is enabled or not
- * @is_nan_enabled: Indicate whether NAN is enabled or not
  * @bool apf_packet_filter_enable; Indicate apf filter enabled or not
  * @tx_chain_mask_cck: Tx chain mask enabled or not
  * @self_gen_frm_pwr: Self gen from power
@@ -150,9 +149,6 @@
 #ifdef WLAN_FEATURE_LPSS
 	bool is_lpass_enabled;
 #endif
-#ifdef WLAN_FEATURE_NAN
-	bool is_nan_enabled;
-#endif
 	bool apf_packet_filter_enable;
 	bool tx_chain_mask_cck;
 	uint16_t self_gen_frm_pwr;
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index 7ed8fcb..5a33b56 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -7489,18 +7489,6 @@
 #define CFG_ENABLE_LPASS_SUPPORT_MAX                      (1)
 #endif
 
-/*
- * NaN feature support configuration
- * gEnableNanSupport = 0 means NaN is not supported
- * gEnableNanSupport = 1 means NaN is supported
- */
-#ifdef WLAN_FEATURE_NAN
-#define CFG_ENABLE_NAN_SUPPORT                          "gEnableNanSupport"
-#define CFG_ENABLE_NAN_SUPPORT_DEFAULT                  (0)
-#define CFG_ENABLE_NAN_SUPPORT_MIN                      (0)
-#define CFG_ENABLE_NAN_SUPPORT_MAX                      (1)
-#endif
-
 #define CFG_ENABLE_SELF_RECOVERY                   "gEnableSelfRecovery"
 #define CFG_ENABLE_SELF_RECOVERY_MIN               (0)
 #define CFG_ENABLE_SELF_RECOVERY_MAX               (1)
@@ -8588,26 +8576,6 @@
 #define CFG_IGNORE_PEER_HT_MODE_MAX        (1)
 #define CFG_IGNORE_PEER_HT_MODE_DEFAULT    (0)
 
-#ifdef WLAN_FEATURE_NAN_DATAPATH
-/*
- * Enable NaN data path feature. NaN data path enables
- * NaN supported devices to exchange data over traditional
- * TCP/UDP network stack.
- */
-#define CFG_ENABLE_NAN_DATAPATH_NAME    "genable_nan_datapath"
-#define CFG_ENABLE_NAN_DATAPATH_MIN     (0)
-#define CFG_ENABLE_NAN_DATAPATH_MAX     (1)
-#define CFG_ENABLE_NAN_DATAPATH_DEFAULT (0)
-
-/*
- * NAN channel on which NAN data interface to start
- */
-#define CFG_ENABLE_NAN_NDI_CHANNEL_NAME    "gnan_datapath_ndi_channel"
-#define CFG_ENABLE_NAN_NDI_CHANNEL_MIN     (6)
-#define CFG_ENABLE_NAN_NDI_CHANNEL_MAX     (149)
-#define CFG_ENABLE_NAN_NDI_CHANNEL_DEFAULT (6)
-#endif
-
 /*
  * Enable/Disable to initiate BUG report in case of fatal event
  * Default: Enable
@@ -11540,30 +11508,6 @@
 #define CFG_ROAM_NUM_DISALLOWED_APS_MAX     (8)
 #define CFG_ROAM_NUM_DISALLOWED_APS_DEFAULT (3)
 
-
-/*
- * <ini>
- * gEnableNDIMacRandomization - When enabled this will randomize NDI Mac
- * @Min: 0
- * @Max: 1
- * @Default: 1
- *
- * When enabled this will randomize NDI Mac
- *
- *
- * Related: None
- *
- * Supported Feature: NAN
- *
- * Usage: External
- *
- * </ini>
- */
-#define CFG_RANDOMIZE_NDI_MAC_NAME      "gEnableNDIMacRandomization"
-#define CFG_RANDOMIZE_NDI_MAC_MIN       (0)
-#define CFG_RANDOMIZE_NDI_MAC_MAX       (1)
-#define CFG_RANDOMIZE_NDI_MAC_DEFAULT   (1)
-
 /*
  * <ini>
  * gEnableLPRx - Enable/Disable LPRx
@@ -14477,9 +14421,6 @@
 #ifdef WLAN_FEATURE_LPSS
 	bool enable_lpass_support;
 #endif
-#ifdef WLAN_FEATURE_NAN
-	bool enable_nan_support;
-#endif
 	bool enableSelfRecovery;
 #ifdef FEATURE_WLAN_FORCE_SAP_SCC
 	uint8_t SapSccChanAvoidance;
@@ -14640,10 +14581,6 @@
 	bool acs_support_for_dfs_ltecoex;
 	bool bug_report_for_no_scan_results;
 	bool bug_on_reinit_failure;
-#ifdef WLAN_FEATURE_NAN_DATAPATH
-	bool enable_nan_datapath;
-	uint8_t nan_datapath_ndi_channel;
-#endif
 	uint32_t iface_change_wait_time;
 	/* parameter to control GTX */
 	uint32_t tgt_gtx_usr_cfg;
@@ -14765,7 +14702,6 @@
 	uint8_t lower_brssi_thresh;
 	bool enable_dtim_1chrx;
 	int8_t rssi_thresh_offset_5g;
-	bool is_ndi_mac_randomized;
 	uint32_t scan_11d_interval;
 	bool chan_switch_hostapd_rate_enabled;
 	bool is_bssid_hint_priority;
diff --git a/core/hdd/inc/wlan_hdd_nan.h b/core/hdd/inc/wlan_hdd_nan.h
index 2550571..50b376e 100644
--- a/core/hdd/inc/wlan_hdd_nan.h
+++ b/core/hdd/inc/wlan_hdd_nan.h
@@ -37,31 +37,6 @@
 				  int data_len);
 
 bool wlan_hdd_nan_is_supported(void);
-/**
- * hdd_nan_populate_cds_config() - Populate NAN cds configuration
- * @cds_cfg: CDS Configuration
- * @hdd_ctx: Pointer to hdd context
- *
- * Return: none
- */
-static inline void hdd_nan_populate_cds_config(struct cds_config_info *cds_cfg,
-			struct hdd_context *hdd_ctx)
-{
-	cds_cfg->is_nan_enabled = hdd_ctx->config->enable_nan_support;
-}
-
-/**
- * hdd_nan_populate_pmo_config() - Populate NAN pmo configuration
- * @pmo_cfg: PMO Configuration
- * @hdd_ctx: Pointer to hdd context
- *
- * Return: none
- */
-static inline void hdd_nan_populate_pmo_config(struct pmo_psoc_cfg *pmo_cfg,
-			struct hdd_context *hdd_ctx)
-{
-	pmo_cfg->nan_enable = hdd_ctx->config->enable_nan_support;
-}
 
 /**
  * wlan_hdd_cfg80211_nan_callback() - cfg80211 NAN event handler
diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c
index 1f202b4..40285a4 100644
--- a/core/hdd/src/wlan_hdd_cfg.c
+++ b/core/hdd/src/wlan_hdd_cfg.c
@@ -2977,15 +2977,6 @@
 		     CFG_ENABLE_LPASS_SUPPORT_MAX),
 #endif
 
-#ifdef WLAN_FEATURE_NAN
-	REG_VARIABLE(CFG_ENABLE_NAN_SUPPORT, WLAN_PARAM_Integer,
-		     struct hdd_config, enable_nan_support,
-		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		     CFG_ENABLE_NAN_SUPPORT_DEFAULT,
-		     CFG_ENABLE_NAN_SUPPORT_MIN,
-		     CFG_ENABLE_NAN_SUPPORT_MAX),
-#endif
-
 	REG_VARIABLE(CFG_ENABLE_SELF_RECOVERY, WLAN_PARAM_Integer,
 		     struct hdd_config, enableSelfRecovery,
 		     VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -3781,22 +3772,6 @@
 			VAR_FLAGS_OPTIONAL,
 			(void *) CFG_ENABLE_TX_SCHED_WRR_BK_DEFAULT),
 
-#ifdef WLAN_FEATURE_NAN_DATAPATH
-	REG_VARIABLE(CFG_ENABLE_NAN_DATAPATH_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, enable_nan_datapath,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ENABLE_NAN_DATAPATH_DEFAULT,
-		CFG_ENABLE_NAN_DATAPATH_MIN,
-		CFG_ENABLE_NAN_DATAPATH_MAX),
-
-	REG_VARIABLE(CFG_ENABLE_NAN_NDI_CHANNEL_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, nan_datapath_ndi_channel,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_ENABLE_NAN_NDI_CHANNEL_DEFAULT,
-		CFG_ENABLE_NAN_NDI_CHANNEL_MIN,
-		CFG_ENABLE_NAN_NDI_CHANNEL_MAX),
-#endif
-
 	REG_VARIABLE(CFG_CREATE_BUG_REPORT_FOR_SCAN, WLAN_PARAM_Integer,
 		struct hdd_config, bug_report_for_no_scan_results,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -4646,13 +4621,6 @@
 		CFG_DTIM_1CHRX_ENABLE_MIN,
 		CFG_DTIM_1CHRX_ENABLE_MAX),
 
-	REG_VARIABLE(CFG_RANDOMIZE_NDI_MAC_NAME, WLAN_PARAM_Integer,
-		struct hdd_config, is_ndi_mac_randomized,
-		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
-		CFG_RANDOMIZE_NDI_MAC_DEFAULT,
-		CFG_RANDOMIZE_NDI_MAC_MIN,
-		CFG_RANDOMIZE_NDI_MAC_MAX),
-
 	REG_VARIABLE(CFG_SCAN_11D_INTERVAL_NAME, WLAN_PARAM_Integer,
 		struct hdd_config, scan_11d_interval,
 		VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
@@ -6962,7 +6930,6 @@
 	hdd_debug("Name = [%s] Value = [%u]",
 		CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME,
 		hdd_ctx->config->sap_max_inactivity_override);
-	hdd_ndp_print_ini_config(hdd_ctx);
 	hdd_debug("Name = [%s] Value = [%s]",
 		CFG_RM_CAPABILITY_NAME,
 		hdd_ctx->config->rm_capability);
@@ -7058,9 +7025,6 @@
 		CFG_DTIM_1CHRX_ENABLE_NAME,
 		hdd_ctx->config->enable_dtim_1chrx);
 	hdd_debug("Name = [%s] value = [%u]",
-		CFG_RANDOMIZE_NDI_MAC_NAME,
-		hdd_ctx->config->is_ndi_mac_randomized);
-	hdd_debug("Name = [%s] value = [%u]",
 		CFG_DOT11P_MODE_NAME,
 		hdd_ctx->config->dot11p_mode);
 	hdd_debug("Name = [%s] value = [%u]",
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index 2f1ed52..6e86046 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -9513,7 +9513,6 @@
 
 	hdd_ra_populate_cds_config(cds_cfg, hdd_ctx);
 	hdd_txrx_populate_cds_config(cds_cfg, hdd_ctx);
-	hdd_nan_populate_cds_config(cds_cfg, hdd_ctx);
 	hdd_lpass_populate_cds_config(cds_cfg, hdd_ctx);
 	cds_init_ini_config(cds_cfg);
 	return 0;
@@ -13380,7 +13379,6 @@
 		hdd_ctx->config->auto_pwr_save_fail_mode;
 
 	hdd_ra_populate_pmo_config(&psoc_cfg, hdd_ctx);
-	hdd_nan_populate_pmo_config(&psoc_cfg, hdd_ctx);
 	hdd_lpass_populate_pmo_config(&psoc_cfg, hdd_ctx);
 
 	status = ucfg_pmo_update_psoc_config(hdd_ctx->hdd_psoc, &psoc_cfg);
diff --git a/core/hdd/src/wlan_hdd_nan.c b/core/hdd/src/wlan_hdd_nan.c
index eb64605..7125683 100644
--- a/core/hdd/src/wlan_hdd_nan.c
+++ b/core/hdd/src/wlan_hdd_nan.c
@@ -32,6 +32,7 @@
 #include "wlan_hdd_main.h"
 #include "wlan_hdd_nan.h"
 #include <qca_vendor.h>
+#include "cfg_nan_api.h"
 
 /**
  * __wlan_hdd_cfg80211_nan_request() - cfg80211 NAN request handler
@@ -68,7 +69,7 @@
 		return -EPERM;
 	}
 
-	if (!hdd_ctx->config->enable_nan_support) {
+	if (!cfg_nan_get_enable(hdd_ctx->hdd_psoc)) {
 		hdd_err("NaN support is not enabled in INI");
 		return -EPERM;
 	}
diff --git a/core/hdd/src/wlan_hdd_nan_datapath.c b/core/hdd/src/wlan_hdd_nan_datapath.c
index 7b892bd..fa8cfd8 100644
--- a/core/hdd/src/wlan_hdd_nan_datapath.c
+++ b/core/hdd/src/wlan_hdd_nan_datapath.c
@@ -36,20 +36,7 @@
 #include "os_if_nan.h"
 #include "wlan_nan_api.h"
 #include "nan_public_structs.h"
-
-/**
- * hdd_ndp_print_ini_config()- Print nan datapath specific INI configuration
- * @hdd_ctx: handle to hdd context
- *
- * Return: None
- */
-void hdd_ndp_print_ini_config(struct hdd_context *hdd_ctx)
-{
-	hdd_debug("Name = [%s] Value = [%u]", CFG_ENABLE_NAN_DATAPATH_NAME,
-		hdd_ctx->config->enable_nan_datapath);
-	hdd_debug("Name = [%s] Value = [%u]", CFG_ENABLE_NAN_NDI_CHANNEL_NAME,
-		hdd_ctx->config->nan_datapath_ndi_channel);
-}
+#include "cfg_nan_api.h"
 
 /**
  * hdd_nan_datapath_target_config() - Configure NAN datapath features
@@ -62,15 +49,15 @@
  * Return: None
  */
 void hdd_nan_datapath_target_config(struct hdd_context *hdd_ctx,
-					struct wma_tgt_cfg *cfg)
+					struct wma_tgt_cfg *tgt_cfg)
 {
 	hdd_ctx->nan_datapath_enabled =
-		hdd_ctx->config->enable_nan_datapath &&
-			cfg->nan_datapath_enabled;
-	hdd_debug("final: %d, host: %d, fw: %d",
+			cfg_nan_get_datapath_enable(hdd_ctx->hdd_psoc) &&
+			tgt_cfg->nan_datapath_enabled;
+	hdd_debug("NAN Datapath Enable: %d (Host: %d FW: %d)",
 		  hdd_ctx->nan_datapath_enabled,
-		  hdd_ctx->config->enable_nan_datapath,
-		  cfg->nan_datapath_enabled);
+		  cfg_nan_get_datapath_enable(hdd_ctx->hdd_psoc),
+		  tgt_cfg->nan_datapath_enabled);
 }
 
 /**
@@ -485,7 +472,7 @@
 		return -EINVAL;
 	}
 
-	if (hdd_ctx->config->is_ndi_mac_randomized) {
+	if (cfg_nan_get_ndi_mac_randomize(hdd_ctx->hdd_psoc)) {
 		if (hdd_get_random_nan_mac_addr(hdd_ctx, &random_ndi_mac)) {
 			hdd_err("get random mac address failed");
 			return -EFAULT;
@@ -524,7 +511,7 @@
 		return -EINVAL;
 	}
 
-	op_channel = hdd_ctx->config->nan_datapath_ndi_channel;
+	op_channel = cfg_nan_get_ndi_channel(hdd_ctx->hdd_psoc);
 	adapter = hdd_get_adapter_by_iface_name(hdd_ctx, iface_name);
 	if (!adapter) {
 		hdd_err("adapter is null");
diff --git a/core/hdd/src/wlan_hdd_nan_datapath.h b/core/hdd/src/wlan_hdd_nan_datapath.h
index 8958361..8504d8a 100644
--- a/core/hdd/src/wlan_hdd_nan_datapath.h
+++ b/core/hdd/src/wlan_hdd_nan_datapath.h
@@ -49,7 +49,6 @@
 #endif /* WLAN_FEATURE_NAN_DATAPATH */
 
 #ifdef WLAN_FEATURE_NAN_DATAPATH
-void hdd_ndp_print_ini_config(struct hdd_context *hdd_ctx);
 void hdd_nan_datapath_target_config(struct hdd_context *hdd_ctx,
 						struct wma_tgt_cfg *cfg);
 void hdd_ndp_event_handler(struct hdd_adapter *adapter,
@@ -61,9 +60,6 @@
 int hdd_init_nan_data_mode(struct hdd_adapter *adapter);
 void hdd_ndp_session_end_handler(struct hdd_adapter *adapter);
 #else
-static inline void hdd_ndp_print_ini_config(struct hdd_context *hdd_ctx)
-{
-}
 static inline void hdd_nan_datapath_target_config(struct hdd_context *hdd_ctx,
 						struct wma_tgt_cfg *cfg)
 {
diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c
index b57caa3..9226cf6 100644
--- a/core/wma/src/wma_main.c
+++ b/core/wma/src/wma_main.c
@@ -89,6 +89,7 @@
 #include "target_if_green_ap.h"
 #include "service_ready_param.h"
 #include "wlan_cp_stats_mc_ucfg_api.h"
+#include "cfg_nan_api.h"
 
 #define WMA_LOG_COMPLETION_TIMER 3000 /* 3 seconds */
 #define WMI_TLV_HEADROOM 128
@@ -1814,7 +1815,7 @@
 static void wma_set_nan_enable(tp_wma_handle wma_handle,
 				struct cds_config_info *cds_cfg)
 {
-	wma_handle->is_nan_enabled = cds_cfg->is_nan_enabled;
+	wma_handle->is_nan_enabled = cfg_nan_get_enable(wma_handle->psoc);
 }
 #else
 static void wma_set_nan_enable(tp_wma_handle wma_handle,
