Merge "qcacld-3.0: Add support to configure candidate min roam score delta" into wlan-cld3.driver.lnx.2.0.c2
diff --git a/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h b/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h
index af37295..50851d6 100644
--- a/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h
+++ b/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h
@@ -3302,4 +3302,17 @@
 bool policy_mgr_get_5g_scc_prefer(
 	struct wlan_objmgr_psoc *psoc, enum policy_mgr_con_mode mode);
 
+/**
+ * policy_mgr_dump_channel_list() - Print channel list
+ * @len: Length of pcl list
+ * @pcl_channels: pcl channels list
+ * @pcl_weight: pcl weight list
+ *
+ *
+ * Return: True or false
+ */
+bool policy_mgr_dump_channel_list(uint32_t len,
+				  uint32_t *pcl_channels,
+				  uint8_t *pcl_weight);
+
 #endif /* __WLAN_POLICY_MGR_API_H */
diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c
index b44bb32..e03bb3f 100644
--- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c
+++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c
@@ -1304,10 +1304,8 @@
 	}
 
 
-	if (pm_ctx->unsafe_channel_count == 0) {
-		policy_mgr_debug("There are no unsafe channels");
+	if (pm_ctx->unsafe_channel_count == 0)
 		return is_safe;
-	}
 
 	for (j = 0; j < pm_ctx->unsafe_channel_count; j++) {
 		if (ch_freq == pm_ctx->unsafe_channel_list[j]) {
@@ -2426,10 +2424,8 @@
 	if (!policy_mgr_is_hw_dbs_capable(psoc) ||
 	    (!policy_mgr_is_hw_dbs_2x2_capable(psoc) &&
 	    !policy_mgr_is_hw_dbs_required_for_band(
-					psoc, HW_MODE_MAC_BAND_2G))) {
-		policy_mgr_debug("2x2 DBS is not enabled");
+					psoc, HW_MODE_MAC_BAND_2G)))
 		return QDF_STATUS_E_NOSUPPORT;
-	}
 
 	/*
 	 * Stop opportunistic timer as current connection info will change once
@@ -2443,10 +2439,8 @@
 		return QDF_STATUS_E_ALREADY;
 	}
 
-	if (wlan_reg_freq_to_band(ch_freq) != REG_BAND_2G) {
-		policy_mgr_debug("DBS is not required for 5Ghz chan");
+	if (wlan_reg_freq_to_band(ch_freq) != REG_BAND_2G)
 		return QDF_STATUS_E_NOSUPPORT;
-	}
 
 	qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock);
 	/*
diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c
index 4149abd..cfc3165 100644
--- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c
+++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c
@@ -2010,11 +2010,11 @@
 				(channel_state == CHANNEL_STATE_INVALID))
 			/* Set weight of inactive channels to 0 */
 			weight_list[i] = 0;
-
-		policy_mgr_debug("ch freq: [%d] - %d, weight[%d] - %d",
-				 i, pcl_channels[i], i, weight_list[i]);
 	}
 
+	policy_mgr_dump_channel_list(orig_channel_count,
+				     pcl_channels, weight_list);
+
 	return;
 }
 
@@ -2172,7 +2172,6 @@
 	 */
 	sta_sap_scc_on_dfs_chan =
 		policy_mgr_is_sta_sap_scc_allowed_on_dfs_chan(psoc);
-	policy_mgr_debug("sta_sap_scc_on_dfs_chan %u", sta_sap_scc_on_dfs_chan);
 	if ((mode == PM_SAP_MODE) || (mode == PM_P2P_GO_MODE)) {
 		if ((policy_mgr_mode_specific_connection_count(psoc,
 							       PM_STA_MODE,
@@ -2813,7 +2812,7 @@
 		    WLAN_REG_IS_5GHZ_CH_FREQ(ch_freq) &&
 		    (ch_freq != pm_conc_connection_list[list[index]].freq)) {
 			qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
-			policy_mgr_err("don't allow MCC if SAP/GO on DFS channel");
+			policy_mgr_rl_debug("don't allow MCC if SAP/GO on DFS channel");
 			return false;
 		}
 		index++;
diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c
index de8fefb..ca8d0df 100644
--- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c
+++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c
@@ -874,8 +874,6 @@
 	dbs_support =
 	wmi_service_enabled(wmi_handle,
 			    wmi_service_dual_band_simultaneous_support);
-	policy_mgr_debug("is DBS supported by FW/HW: %s",
-			 dbs_support ? "yes" : "no");
 
 	/* The agreement with FW is that: To know if the target is DBS
 	 * capable, DBS needs to be supported both in the HW mode list
@@ -900,9 +898,7 @@
 	}
 	for (i = 0; i < pm_ctx->num_dbs_hw_modes; i++) {
 		param = pm_ctx->hw_mode.hw_mode_list[i];
-		policy_mgr_debug("HW param: %x", param);
 		if (POLICY_MGR_HW_MODE_DBS_MODE_GET(param)) {
-			policy_mgr_debug("HW (%d) is DBS capable", i);
 			found = 1;
 			break;
 		}
@@ -926,9 +922,7 @@
 	}
 	for (i = 0; i < pm_ctx->num_dbs_hw_modes; i++) {
 		param = pm_ctx->hw_mode.hw_mode_list[i];
-		policy_mgr_debug("HW param: %x", param);
 		if (POLICY_MGR_HW_MODE_SBS_MODE_GET(param)) {
-			policy_mgr_debug("HW (%d) is SBS capable", i);
 			found = 1;
 			break;
 		}
@@ -972,27 +966,32 @@
 
 bool policy_mgr_is_hw_dbs_capable(struct wlan_objmgr_psoc *psoc)
 {
-	if (!policy_mgr_is_dbs_enable(psoc)) {
-		policy_mgr_debug("DBS is disabled");
+	if (!policy_mgr_is_dbs_enable(psoc))
+		return false;
+
+	if (!policy_mgr_find_if_fw_supports_dbs(psoc))
+		return false;
+
+	if (!policy_mgr_find_if_hwlist_has_dbs(psoc)) {
+		policymgr_nofl_debug("HW mode list has no DBS");
 		return false;
 	}
 
-	if (!policy_mgr_find_if_fw_supports_dbs(psoc)) {
-		policy_mgr_debug("HW mode list has no DBS");
-		return false;
-	}
-
-	return policy_mgr_find_if_hwlist_has_dbs(psoc);
+	return true;
 }
 
 bool policy_mgr_is_hw_sbs_capable(struct wlan_objmgr_psoc *psoc)
 {
 	if (!policy_mgr_find_if_fw_supports_dbs(psoc)) {
-		policy_mgr_debug("HW mode list has no DBS");
 		return false;
 	}
 
-	return policy_mgr_find_if_hwlist_has_sbs(psoc);
+	if (!policy_mgr_find_if_hwlist_has_sbs(psoc)) {
+		policymgr_nofl_debug("HW mode list has no SBS");
+		return false;
+	}
+
+	return true;
 }
 
 QDF_STATUS policy_mgr_get_dbs_hw_modes(struct wlan_objmgr_psoc *psoc,
@@ -1086,8 +1085,6 @@
 	QDF_STATUS status;
 	uint32_t old_hw_index = 0, new_hw_index = 0;
 
-	policy_mgr_debug("Get the current hw mode");
-
 	status = policy_mgr_get_old_and_new_hw_index(psoc, &old_hw_index,
 			&new_hw_index);
 	if (QDF_STATUS_SUCCESS != status) {
@@ -1127,7 +1124,7 @@
 	struct policy_mgr_psoc_priv_obj *pm_ctx;
 
 	if (policy_mgr_is_dual_mac_disabled_in_ini(psoc)) {
-		policy_mgr_debug("DBS is disabled from ini");
+		policy_mgr_rl_debug("DBS is disabled from ini");
 		return false;
 	}
 
@@ -1137,10 +1134,6 @@
 		return false;
 	}
 
-	policy_mgr_debug("DBS=%d",
-		WMI_DBS_FW_MODE_CFG_DBS_GET(
-			pm_ctx->dual_mac_cfg.cur_fw_mode_config));
-
 	if (WMI_DBS_FW_MODE_CFG_DBS_GET(
 			pm_ctx->dual_mac_cfg.cur_fw_mode_config))
 		return true;
@@ -2041,9 +2034,7 @@
 	count = policy_mgr_mode_specific_connection_count(
 				psoc, mode, list);
 	qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock);
-	if (count == 0) {
-		policy_mgr_debug("No mode:[%d] connection", mode);
-	} else if (count == 1) {
+	if (count == 1) {
 		*ch_freq_list = pm_conc_connection_list[list[index]].freq;
 		*vdev_id =
 			pm_conc_connection_list[list[index]].vdev_id;
@@ -2055,7 +2046,6 @@
 			vdev_id[index] =
 			pm_conc_connection_list[list[index]].vdev_id;
 		}
-		policy_mgr_debug("Multiple mode:[%d] connections", mode);
 	}
 	qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
 
@@ -2331,8 +2321,6 @@
 
 		sta_sap_scc_on_dfs_chan =
 			policy_mgr_is_sta_sap_scc_allowed_on_dfs_chan(psoc);
-		policy_mgr_debug("sta_sap_scc_on_dfs_chan %u",
-				 sta_sap_scc_on_dfs_chan);
 
 		if (!sta_sap_scc_on_dfs_chan && ((mode == PM_P2P_GO_MODE) ||
 		    (mode == PM_SAP_MODE))) {
@@ -2348,7 +2336,7 @@
 		    num_connections) {
 			if (WLAN_REG_IS_24GHZ_CH_FREQ(ch_freq)) {
 				if (policy_mgr_is_sap_p2pgo_on_dfs(psoc)) {
-					policy_mgr_err("MCC not allowed: SAP/P2PGO on DFS");
+					policy_mgr_rl_debug("MCC not allowed: SAP/P2PGO on DFS");
 					goto done;
 				}
 			}
@@ -3498,8 +3486,8 @@
 
 	roffchan = wlan_vdev_mlme_cap_get(vdev, WLAN_VDEV_C_RESTRICT_OFFCHAN);
 
-	policy_mgr_debug("Restrict offchannel:%s",
-			 roffchan  ? "set" : "clear");
+	if (roffchan)
+		policy_mgr_debug("Restrict offchannel is set");
 
 	return roffchan;
 }
@@ -3520,15 +3508,13 @@
 	cc_count = policy_mgr_get_mode_specific_conn_info(
 			psoc, &op_ch_freq_list[cc_count],
 			&vdev_id[cc_count], PM_SAP_MODE);
-	policy_mgr_debug("Number of SAP modes: %d", cc_count);
 
 	if (cc_count < MAX_NUMBER_OF_CONC_CONNECTIONS)
 		cc_count = cc_count +
 			   policy_mgr_get_mode_specific_conn_info(
 					psoc, &op_ch_freq_list[cc_count],
 					&vdev_id[cc_count], PM_P2P_GO_MODE);
-	policy_mgr_debug("Number of beaconing entities (SAP + GO):%d",
-							cc_count);
+
 	if (!cc_count) {
 		*ok = true;
 		return QDF_STATUS_SUCCESS;
@@ -3596,7 +3582,6 @@
 			wlan_objmgr_vdev_release_ref(vdev, WLAN_POLICY_MGR_ID);
 		}
 	}
-	policy_mgr_debug("freq: %d ok %d", ch_freq, *ok);
 
 	return QDF_STATUS_SUCCESS;
 }
diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h
index b616676..3ccb32f 100644
--- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h
+++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -181,6 +181,9 @@
 #define policymgr_nofl_debug(params...) \
 	QDF_TRACE_DEBUG_NO_FL(QDF_MODULE_ID_POLICY_MGR, params)
 
+#define policy_mgr_rl_debug(params...) \
+	QDF_TRACE_DEBUG_RL(QDF_MODULE_ID_POLICY_MGR, params)
+
 #define PM_CONC_CONNECTION_LIST_VALID_INDEX(index) \
 		((MAX_NUMBER_OF_CONC_CONNECTIONS > index) && \
 			(pm_conc_connection_list[index].in_use))
diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c
index fa3cef1..98cfb14 100644
--- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c
+++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -30,6 +30,7 @@
 #include "wlan_policy_mgr_i.h"
 #include "qdf_types.h"
 #include "qdf_trace.h"
+#include "qdf_str.h"
 #include "wlan_objmgr_global_obj.h"
 #include "wlan_utility.h"
 #include "wlan_mlme_ucfg_api.h"
@@ -559,7 +560,10 @@
 			uint32_t *len)
 {
 	QDF_STATUS status = QDF_STATUS_E_FAILURE;
-	uint32_t i;
+	bool mandatory_modified_pcl = false;
+	bool nol_modified_pcl = false;
+	bool dfs_modified_pcl = false;
+	bool modified_final_pcl = false;
 
 	if (policy_mgr_is_sap_mandatory_channel_set(psoc)) {
 		status = policy_mgr_modify_sap_pcl_based_on_mandatory_channel(
@@ -569,10 +573,7 @@
 				"failed to get mandatory modified pcl for SAP");
 			return status;
 		}
-		policy_mgr_debug("mandatory modified pcl len:%d", *len);
-		for (i = 0; i < *len; i++)
-			policy_mgr_debug("chan:%d weight:%d",
-				pcl_channels[i], pcl_weight[i]);
+		mandatory_modified_pcl = true;
 	}
 
 	status = policy_mgr_modify_sap_pcl_based_on_nol(
@@ -581,10 +582,7 @@
 		policy_mgr_err("failed to get nol modified pcl for SAP");
 		return status;
 	}
-	policy_mgr_debug("nol modified pcl len:%d", *len);
-	for (i = 0; i < *len; i++)
-		policy_mgr_debug("chan:%d weight:%d",
-			pcl_channels[i], pcl_weight[i]);
+	nol_modified_pcl = true;
 
 	status = policy_mgr_modify_sap_pcl_based_on_dfs(
 			psoc, pcl_channels, pcl_weight, len);
@@ -592,10 +590,7 @@
 		policy_mgr_err("failed to get dfs modified pcl for SAP");
 		return status;
 	}
-	policy_mgr_debug("dfs modified pcl len:%d", *len);
-	for (i = 0; i < *len; i++)
-		policy_mgr_debug("chan:%d weight:%d",
-				 pcl_channels[i], pcl_weight[i]);
+	dfs_modified_pcl = true;
 
 	status = policy_mgr_modify_pcl_based_on_srd
 			(psoc, pcl_channels, pcl_weight, len);
@@ -603,10 +598,12 @@
 		policy_mgr_err("failed to get srd modified pcl for SAP");
 		return status;
 	}
-	policy_mgr_debug("modified final pcl len:%d", *len);
-	for (i = 0; i < *len; i++)
-		policy_mgr_debug("chan:%d weight:%d",
-				 pcl_channels[i], pcl_weight[i]);
+	modified_final_pcl = true;
+	policy_mgr_debug(" %d %d %d %d",
+			 mandatory_modified_pcl,
+			 nol_modified_pcl,
+			 dfs_modified_pcl,
+			 modified_final_pcl);
 
 	return QDF_STATUS_SUCCESS;
 }
@@ -618,7 +615,6 @@
 {
 	QDF_STATUS status = QDF_STATUS_E_FAILURE;
 	struct policy_mgr_psoc_priv_obj *pm_ctx;
-	uint32_t i;
 
 	pm_ctx = policy_mgr_get_context(psoc);
 	if (!pm_ctx) {
@@ -639,10 +635,7 @@
 		policy_mgr_err("failed to get srd modified pcl for P2P-GO");
 		return status;
 	}
-	policy_mgr_debug("modified pcl len:%d", *len);
-	for (i = 0; i < *len; i++)
-		policy_mgr_debug("ch freq:%d weight:%d",
-				 pcl_channels[i], pcl_weight[i]);
+	policy_mgr_dump_channel_list(*len, pcl_channels, pcl_weight);
 
 	return QDF_STATUS_SUCCESS;
 }
@@ -726,7 +719,7 @@
 			      uint8_t *pcl_weight, uint32_t weight_len)
 {
 	QDF_STATUS status = QDF_STATUS_E_FAILURE;
-	uint32_t num_connections = 0, i;
+	uint32_t num_connections = 0;
 	enum policy_mgr_conc_priority_mode first_index = 0;
 	enum policy_mgr_one_connection_mode second_index = 0;
 	enum policy_mgr_two_connection_mode third_index = 0;
@@ -819,10 +812,6 @@
 		break;
 	}
 
-	policy_mgr_debug("index1:%d index2:%d index3:%d pcl:%d dbs:%d",
-		first_index, second_index, third_index,
-		pcl, policy_mgr_is_hw_dbs_capable(psoc));
-
 	/* once the PCL enum is obtained find out the exact channel list with
 	 * help from sme_get_cfg_valid_channels
 	 */
@@ -833,11 +822,7 @@
 		return status;
 	}
 
-	policy_mgr_debug("pcl len:%d", *len);
-	for (i = 0; i < *len; i++) {
-		policy_mgr_debug("chan:%d weight:%d",
-				pcl_channels[i], pcl_weight[i]);
-	}
+	policy_mgr_dump_channel_list(*len, pcl_channels, pcl_weight);
 
 	policy_mgr_mode_specific_modification_on_pcl(
 		psoc, pcl_channels, pcl_weight, len, mode);
@@ -2418,3 +2403,72 @@
 	return ch_freq;
 }
 
+/*
+ * Buffer len size to consider the 4 char freq, 3 char weight, 2 char
+ * for open close brackets and space and a space, Total 10
+ */
+#define CHAN_WEIGHT_CHAR_LEN 10
+#define MAX_CHAN_TO_PRINT 39
+
+bool policy_mgr_dump_channel_list(uint32_t len, uint32_t *pcl_channels,
+				  uint8_t *pcl_weight)
+{
+	uint32_t idx, buff_len, num = 0, count = 0, count_6G = 0;
+	char *chan_buff = NULL;
+
+	buff_len = (QDF_MIN(len, MAX_CHAN_TO_PRINT) * CHAN_WEIGHT_CHAR_LEN) + 1;
+	chan_buff = qdf_mem_malloc(buff_len);
+	if (!chan_buff)
+		return false;
+
+	policymgr_nofl_debug("Total PCL Chan Freq %d", len);
+	for (idx = 0; idx < len; idx++) {
+		if (!WLAN_REG_IS_6GHZ_CHAN_FREQ(pcl_channels[idx])) {
+			num += qdf_scnprintf(chan_buff + num, buff_len - num,
+					     " %d[%d]", pcl_channels[idx],
+					     pcl_weight[idx]);
+			count++;
+			if (count >= MAX_CHAN_TO_PRINT) {
+				/* Print the MAX_CHAN_TO_PRINT channels */
+				policymgr_nofl_debug("2G+5G Freq[weight]:%s",
+						     chan_buff);
+				count = 0;
+				num = 0;
+			}
+		} else {
+			count_6G++;
+		}
+	}
+	/* Print any pending channels */
+	if (num)
+		policymgr_nofl_debug("2G+5G Freq[weight]:%s", chan_buff);
+
+	if (!count_6G)
+		goto free;
+
+	count = 0;
+	num = 0;
+	for (idx = 0; idx < len; idx++) {
+		if (WLAN_REG_IS_6GHZ_CHAN_FREQ(pcl_channels[idx])) {
+			num += qdf_scnprintf(chan_buff + num, buff_len - num,
+					     " %d[%d]", pcl_channels[idx],
+					     pcl_weight[idx]);
+			count++;
+			if (count >= MAX_CHAN_TO_PRINT) {
+				/* Print the MAX_CHAN_TO_PRINT channels */
+				policymgr_nofl_debug("6G Freq[weight]:%s",
+						     chan_buff);
+				count = 0;
+				num = 0;
+			}
+		}
+	}
+	/* Print any pending channels */
+	if (num)
+		policymgr_nofl_debug("6G Freq[weight]:%s", chan_buff);
+
+free:
+	qdf_mem_free(chan_buff);
+
+	return true;
+}
diff --git a/components/p2p/core/src/wlan_p2p_main.c b/components/p2p/core/src/wlan_p2p_main.c
index 968e07e..ce5f9ba 100644
--- a/components/p2p/core/src/wlan_p2p_main.c
+++ b/components/p2p/core/src/wlan_p2p_main.c
@@ -1397,10 +1397,8 @@
 	}
 
 	mode = wlan_vdev_mlme_get_opmode(vdev);
-	if (mode != QDF_P2P_CLIENT_MODE) {
-		p2p_debug("this is not P2P CLIENT, mode:%d", mode);
+	if (mode != QDF_P2P_CLIENT_MODE)
 		return QDF_STATUS_SUCCESS;
-	}
 
 	p2p_debug("connection status:%d", p2p_soc_obj->connection_status);
 	switch (p2p_soc_obj->connection_status) {
@@ -1439,10 +1437,8 @@
 	}
 
 	mode = wlan_vdev_mlme_get_opmode(vdev);
-	if (mode != QDF_P2P_CLIENT_MODE) {
-		p2p_debug("this is not P2P CLIENT, mode:%d", mode);
+	if (mode != QDF_P2P_CLIENT_MODE)
 		return QDF_STATUS_SUCCESS;
-	}
 
 	p2p_debug("connection status:%d", p2p_soc_obj->connection_status);
 	switch (p2p_soc_obj->connection_status) {
diff --git a/components/p2p/core/src/wlan_p2p_off_chan_tx.c b/components/p2p/core/src/wlan_p2p_off_chan_tx.c
index 4edea17..4a8e8b0 100644
--- a/components/p2p/core/src/wlan_p2p_off_chan_tx.c
+++ b/components/p2p/core/src/wlan_p2p_off_chan_tx.c
@@ -1200,8 +1200,6 @@
 	struct tx_action_context *cur_tx_ctx;
 	QDF_STATUS status;
 
-	p2p_debug("move tx context to wait for roc queue, %pK", tx_ctx);
-
 	cur_tx_ctx = p2p_find_tx_ctx(p2p_soc_obj, (uintptr_t)tx_ctx,
 					&is_roc_q, &is_ack_q);
 	if (cur_tx_ctx) {
@@ -1225,8 +1223,6 @@
 				&tx_ctx->node);
 	if (status != QDF_STATUS_SUCCESS)
 		p2p_err("Failed to insert off chan tx context to wait ack req queue");
-	p2p_debug("insert tx context to wait for ack queue, status:%d",
-		status);
 
 	return status;
 }
@@ -1419,20 +1415,18 @@
 {
 	QDF_STATUS status;
 
-	p2p_debug("tx context:%pK", tx_ctx);
-
 	status = qdf_mc_timer_init(&tx_ctx->tx_timer,
 				   QDF_TIMER_TYPE_SW, p2p_tx_timeout,
 				   tx_ctx->p2p_soc_obj);
 	if (status != QDF_STATUS_SUCCESS) {
-		p2p_err("failed to init tx timer");
+		p2p_err("failed to init tx timer tx_ctx:%pK", tx_ctx);
 		return status;
 	}
 
 	status = qdf_mc_timer_start(&tx_ctx->tx_timer,
 				    P2P_ACTION_FRAME_TX_TIMEOUT);
 	if (status != QDF_STATUS_SUCCESS)
-		p2p_err("tx timer start failed");
+		p2p_err("tx timer start failed tx_ctx:%pK", tx_ctx);
 
 	return status;
 }
@@ -2920,8 +2914,6 @@
 		return QDF_STATUS_SUCCESS;
 	}
 
-	p2p_debug("cookie:0x%llx", cancel_tx->cookie);
-
 	cur_tx_ctx = p2p_find_tx_ctx(cancel_tx->p2p_soc_obj,
 			cancel_tx->cookie, &is_roc_q, &is_ack_q);
 	if (cur_tx_ctx) {
diff --git a/components/p2p/core/src/wlan_p2p_roc.c b/components/p2p/core/src/wlan_p2p_roc.c
index 3d3b4a2..3435780 100644
--- a/components/p2p/core/src/wlan_p2p_roc.c
+++ b/components/p2p/core/src/wlan_p2p_roc.c
@@ -295,11 +295,7 @@
 	QDF_STATUS status;
 	struct p2p_soc_priv_obj *p2p_soc_obj = roc_ctx->p2p_soc_obj;
 
-	p2p_debug("p2p soc obj:%pK, roc ctx:%pK, vdev_id:%d, scan_id:%d, tx ctx:%pK, chan:%d, phy_mode:%d, duration:%d, roc_type:%d, roc_state:%d",
-		p2p_soc_obj, roc_ctx, roc_ctx->vdev_id,
-		roc_ctx->scan_id, roc_ctx->tx_ctx, roc_ctx->chan,
-		roc_ctx->phy_mode, roc_ctx->duration,
-		roc_ctx->roc_type, roc_ctx->roc_state);
+	p2p_debug("p2p execute cancel roc req");
 
 	roc_ctx->roc_state = ROC_STATE_CANCEL_IN_PROG;
 	qdf_event_reset(&p2p_soc_obj->cancel_roc_done);
@@ -523,11 +519,7 @@
 	uint32_t size;
 	struct p2p_soc_priv_obj *p2p_soc_obj = roc_ctx->p2p_soc_obj;
 
-	p2p_debug("p2p soc obj:%pK, roc ctx:%pK, vdev_id:%d, scan_id:%d, tx ctx:%pK, chan:%d, phy_mode:%d, duration:%d, roc_type:%d, roc_state:%d",
-		p2p_soc_obj, roc_ctx, roc_ctx->vdev_id,
-		roc_ctx->scan_id, roc_ctx->tx_ctx, roc_ctx->chan,
-		roc_ctx->phy_mode, roc_ctx->duration,
-		roc_ctx->roc_type, roc_ctx->roc_state);
+	p2p_debug("vdev_id:%d scan_id:%d", roc_ctx->vdev_id, roc_ctx->scan_id);
 
 	/* allow runtime suspend */
 	qdf_runtime_pm_allow_suspend(&p2p_soc_obj->roc_runtime_lock);
@@ -554,7 +546,7 @@
 	qdf_event_set(&p2p_soc_obj->cancel_roc_done);
 
 	size = qdf_list_size(&p2p_soc_obj->roc_q);
-	p2p_debug("P2P roc queue size is %d", status);
+
 	if (size > 0) {
 		status = qdf_list_peek_front(&p2p_soc_obj->roc_q,
 				&next_node);
@@ -870,15 +862,16 @@
 	curr_roc_ctx = p2p_find_roc_ctx(p2p_soc_obj,
 				cancel_roc_ctx->cookie);
 
-	p2p_debug("p2p soc obj:%pK, cookie:%llx, roc ctx:%pK",
-		p2p_soc_obj, cancel_roc_ctx->cookie, curr_roc_ctx);
-
 	if (!curr_roc_ctx) {
 		p2p_debug("Failed to find roc req by cookie, cookie %llx",
 				cancel_roc_ctx->cookie);
 		return QDF_STATUS_E_INVAL;
 	}
 
+	p2p_debug("roc ctx:%pK vdev_id:%d, scan_id:%d, roc_type:%d, roc_state:%d",
+		curr_roc_ctx, curr_roc_ctx->vdev_id, curr_roc_ctx->scan_id,
+		curr_roc_ctx->roc_type, curr_roc_ctx->roc_state);
+
 	if (curr_roc_ctx->roc_state == ROC_STATE_IDLE) {
 		status = p2p_destroy_roc_ctx(curr_roc_ctx, true, true);
 	} else if (curr_roc_ctx->roc_state ==
diff --git a/components/pmo/core/src/wlan_pmo_mc_addr_filtering.c b/components/pmo/core/src/wlan_pmo_mc_addr_filtering.c
index 059327c..29d1dd3 100644
--- a/components/pmo/core/src/wlan_pmo_mc_addr_filtering.c
+++ b/components/pmo/core/src/wlan_pmo_mc_addr_filtering.c
@@ -46,7 +46,6 @@
 	qdf_spin_unlock_bh(&temp_ctx->pmo_vdev_lock);
 
 	for (i = 0; i < ip->count; i++) {
-		pmo_debug("%pM", ip->mc_addr[i].bytes);
 		/*
 		 * Skip following addresses:
 		 * 1)IPv6 router solicitation address
@@ -71,8 +70,7 @@
 		qdf_mem_copy(&op_list->mc_addr[j].bytes,
 			     ip->mc_addr[i].bytes, QDF_MAC_ADDR_SIZE);
 		qdf_spin_unlock_bh(&temp_ctx->pmo_vdev_lock);
-		pmo_debug("Index = %d, mlist[%pM]",
-			  j, op_list->mc_addr[i].bytes);
+		pmo_debug("Index = %d, mac[%pM]", j, op_list->mc_addr[i].bytes);
 		j++;
 	}
 }
@@ -108,8 +106,6 @@
 {
 	QDF_STATUS status;
 
-	pmo_enter();
-
 	status = pmo_vdev_get_ref(vdev);
 	if (QDF_IS_STATUS_ERROR(status))
 		goto exit_with_status;
@@ -119,7 +115,6 @@
 	pmo_vdev_put_ref(vdev);
 
 exit_with_status:
-	pmo_exit();
 
 	return status;
 }
@@ -400,7 +395,6 @@
 	struct wlan_objmgr_vdev *vdev;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 
-	pmo_enter();
 	if (!psoc) {
 		pmo_err("psoc is NULL");
 		status = QDF_STATUS_E_NULL_VALUE;
@@ -433,7 +427,6 @@
 dec_ref:
 	pmo_vdev_put_ref(vdev);
 out:
-	pmo_exit();
 
 	return status;
 }
diff --git a/components/pmo/core/src/wlan_pmo_wow.c b/components/pmo/core/src/wlan_pmo_wow.c
index 988b166..2c32c9a 100644
--- a/components/pmo/core/src/wlan_pmo_wow.c
+++ b/components/pmo/core/src/wlan_pmo_wow.c
@@ -51,7 +51,6 @@
 	uint8_t pattern_count;
 	struct pmo_vdev_priv_obj *vdev_ctx;
 
-	pmo_enter();
 	status = pmo_vdev_get_ref(vdev);
 	if (QDF_IS_STATUS_ERROR(status))
 		goto out;
@@ -69,7 +68,6 @@
 
 	pmo_vdev_put_ref(vdev);
 out:
-	pmo_exit();
 	return status;
 }
 
diff --git a/components/pmo/dispatcher/src/wlan_pmo_obj_mgmt_api.c b/components/pmo/dispatcher/src/wlan_pmo_obj_mgmt_api.c
index bdc8488..8250f7f 100644
--- a/components/pmo/dispatcher/src/wlan_pmo_obj_mgmt_api.c
+++ b/components/pmo/dispatcher/src/wlan_pmo_obj_mgmt_api.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -301,8 +301,6 @@
 	struct pmo_vdev_priv_obj *vdev_ctx = NULL;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 
-	pmo_enter();
-
 	vdev_ctx = pmo_vdev_get_priv(vdev);
 
 	status = wlan_objmgr_vdev_component_obj_detach(vdev,
@@ -314,8 +312,6 @@
 	qdf_spinlock_destroy(&vdev_ctx->pmo_vdev_lock);
 	qdf_mem_free(vdev_ctx);
 
-	pmo_exit();
-
 	return status;
 }
 
diff --git a/components/pmo/dispatcher/src/wlan_pmo_tgt_static_config.c b/components/pmo/dispatcher/src/wlan_pmo_tgt_static_config.c
index 99d1b97..04e6377 100644
--- a/components/pmo/dispatcher/src/wlan_pmo_tgt_static_config.c
+++ b/components/pmo/dispatcher/src/wlan_pmo_tgt_static_config.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017-2018, 2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -33,7 +33,6 @@
 	struct wlan_objmgr_psoc *psoc;
 	struct wlan_pmo_tx_ops pmo_tx_ops;
 
-	pmo_enter();
 	psoc = pmo_vdev_get_psoc(vdev);
 
 	pmo_tx_ops = GET_PMO_TX_OPS_FROM_PSOC(psoc);
@@ -47,7 +46,6 @@
 	if (status != QDF_STATUS_SUCCESS)
 		pmo_err("Failed to config enhance multicast offload");
 out:
-	pmo_exit();
 
 	return status;
 }
diff --git a/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c b/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c
index d527be0..312cfd8 100644
--- a/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c
+++ b/components/pmo/dispatcher/src/wlan_pmo_tgt_wow.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017-2018, 2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -34,8 +34,6 @@
 	struct wlan_pmo_tx_ops pmo_tx_ops;
 	int vdev_id;
 
-	pmo_enter();
-
 	psoc = pmo_vdev_get_psoc(vdev);
 	vdev_id = pmo_vdev_get_id(vdev);
 
@@ -53,7 +51,6 @@
 	if (status != QDF_STATUS_SUCCESS)
 		pmo_err("Failed to enable wow wakeup event");
 out:
-	pmo_exit();
 
 	return status;
 }
@@ -102,7 +99,6 @@
 	struct wlan_objmgr_psoc *psoc;
 	struct wlan_pmo_tx_ops pmo_tx_ops;
 
-	pmo_enter();
 	psoc = pmo_vdev_get_psoc(vdev);
 
 	vdev_ctx = pmo_vdev_get_priv(vdev);
@@ -127,7 +123,6 @@
 	if (user)
 		pmo_increment_wow_user_ptrn(vdev_ctx);
 out:
-	pmo_exit();
 
 	return status;
 }
@@ -141,7 +136,6 @@
 	struct wlan_objmgr_psoc *psoc;
 	struct wlan_pmo_tx_ops pmo_tx_ops;
 
-	pmo_enter();
 	psoc = pmo_vdev_get_psoc(vdev);
 	vdev_ctx = pmo_vdev_get_priv(vdev);
 
@@ -160,7 +154,6 @@
 	if (user)
 		pmo_decrement_wow_user_ptrn(vdev_ctx);
 out:
-	pmo_exit();
 
 	return status;
 }
diff --git a/configs/default_defconfig b/configs/default_defconfig
index ed96444..e8d5080 100644
--- a/configs/default_defconfig
+++ b/configs/default_defconfig
@@ -620,6 +620,9 @@
 CONFIG_WLAN_CUSTOM_DSCP_UP_MAP := y
 CONFIG_WLAN_SEND_DSCP_UP_MAP_TO_FW := y
 endif
+ifeq ($(CONFIG_LITHIUM), y)
+CONFIG_WLAN_CUSTOM_DSCP_UP_MAP := y
+endif
 
 ifeq ($(CONFIG_ROME_IF), sdio)
 CONFIG_PKTLOG_LEGACY := y
diff --git a/core/cds/src/cds_api.c b/core/cds/src/cds_api.c
index bf5c2cf..33245a5 100644
--- a/core/cds/src/cds_api.c
+++ b/core/cds/src/cds_api.c
@@ -2301,7 +2301,7 @@
 		  is_fatal, indicator, reason_code);
 
 	if (dump_mac_trace)
-		qdf_trace_dump_all(p_cds_context->mac_context, 0, 0, 500, 0);
+		qdf_trace_dump_all(p_cds_context->mac_context, 0, 0, 100, 0);
 
 	if (WLAN_LOG_INDICATOR_HOST_ONLY == indicator) {
 		cds_wlan_flush_host_logs_for_fatal();
diff --git a/core/dp/txrx3.0/dp_fisa_rx.c b/core/dp/txrx3.0/dp_fisa_rx.c
index fcad79d3..c271ae2 100644
--- a/core/dp/txrx3.0/dp_fisa_rx.c
+++ b/core/dp/txrx3.0/dp_fisa_rx.c
@@ -502,9 +502,12 @@
 
 	flow_idx_valid = is_flow_idx_valid(flow_invalid, flow_timeout);
 	if (flow_idx_valid) {
-		qdf_assert_always(flow_idx < fisa_hdl->max_entries);
 		dp_fisa_debug("flow_idx is valid 0x%x", flow_idx);
-		return &sw_ft_base[flow_idx];
+		qdf_assert_always(flow_idx < fisa_hdl->max_entries);
+		sw_ft_entry = &sw_ft_base[flow_idx];
+		sw_ft_entry->vdev = vdev;
+
+		return sw_ft_entry;
 	}
 
 	/* else new flow, add entry to FT */
@@ -1019,6 +1022,9 @@
 		next_nbuf = head_nbuf->next;
 		qdf_nbuf_set_next(head_nbuf, NULL);
 
+		qdf_nbuf_push_head(head_nbuf, RX_PKT_TLVS_LEN +
+				   QDF_NBUF_CB_RX_PACKET_L3_HDR_PAD(head_nbuf));
+
 		/* Add new flow if the there is no ongoing flow */
 		fisa_flow = dp_rx_get_fisa_flow(dp_fisa_rx_hdl, vdev,
 						head_nbuf);
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index 32f1aae..cdfb7d8 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -244,7 +244,7 @@
 	bool enable_sar_safety;
 	bool config_sar_safety_sleep_index;
 #endif
-
+	bool get_roam_chan_from_fw;
 	uint32_t fisa_enable;
 };
 
diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h
index 750cd4e..a4c5513 100644
--- a/core/hdd/inc/wlan_hdd_main.h
+++ b/core/hdd/inc/wlan_hdd_main.h
@@ -1901,6 +1901,7 @@
 	/* value for packet capturte mode */
 	uint8_t val_pkt_capture_mode;
 #endif
+	bool roam_ch_from_fw_supported;
 };
 
 /**
diff --git a/core/hdd/src/wlan_hdd_apf.c b/core/hdd/src/wlan_hdd_apf.c
index 456fff9..15302a1 100644
--- a/core/hdd/src/wlan_hdd_apf.c
+++ b/core/hdd/src/wlan_hdd_apf.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -227,8 +227,6 @@
 	int prog_len;
 	int ret = 0;
 
-	hdd_enter();
-
 	if (!hdd_conn_is_connected(
 	    WLAN_HDD_GET_STATION_CTX_PTR(adapter))) {
 		hdd_err("Not in Connected state!");
@@ -246,7 +244,7 @@
 	apf_set_offload.total_length = nla_get_u32(tb[APF_PACKET_SIZE]);
 
 	if (!apf_set_offload.total_length) {
-		hdd_debug("APF reset packet filter received");
+		hdd_debug("APF reset packet");
 		goto post_sme;
 	}
 
@@ -268,10 +266,6 @@
 	apf_set_offload.current_length = prog_len;
 	nla_memcpy(apf_set_offload.program, tb[APF_PROGRAM], prog_len);
 
-	hdd_debug("APF set instructions");
-	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD, QDF_TRACE_LEVEL_DEBUG,
-			   apf_set_offload.program, prog_len);
-
 	/* Parse and fetch filter Id */
 	if (!tb[APF_FILTER_ID]) {
 		hdd_err("attr filter id failed");
@@ -289,7 +283,7 @@
 	apf_set_offload.current_offset = nla_get_u32(tb[APF_CURRENT_OFFSET]);
 
 post_sme:
-	hdd_debug("Posting APF SET/RESET to SME, session_id: %d APF Version: %d filter ID: %d total_length: %d current_length: %d current offset: %d",
+	hdd_debug("Posting, session_id: %d APF Version: %d filter ID: %d total_len: %d current_len: %d offset: %d",
 		  apf_set_offload.session_id, apf_set_offload.version,
 		  apf_set_offload.filter_id, apf_set_offload.total_length,
 		  apf_set_offload.current_length,
@@ -326,8 +320,6 @@
 {
 	QDF_STATUS status;
 
-	hdd_enter();
-
 	status = sme_set_apf_enable_disable(hdd_adapter_get_mac_handle(adapter),
 					    adapter->vdev_id, apf_enable);
 	if (!QDF_IS_STATUS_SUCCESS(status)) {
@@ -338,7 +330,6 @@
 
 	adapter->apf_context.apf_enabled = apf_enable;
 
-	hdd_exit();
 	return 0;
 }
 
@@ -360,9 +351,6 @@
 	QDF_STATUS status;
 	int ret = 0;
 
-	hdd_enter();
-
-
 	write_mem_params.vdev_id = adapter->vdev_id;
 	if (adapter->apf_context.apf_enabled) {
 		hdd_err("Cannot get/set when APF interpreter is enabled");
@@ -419,7 +407,6 @@
 	if (write_mem_params.buf)
 		qdf_mem_free(write_mem_params.buf);
 
-	hdd_exit();
 	return ret;
 }
 
@@ -509,8 +496,6 @@
 	struct sk_buff *skb = NULL;
 	uint8_t *bufptr;
 
-	hdd_enter();
-
 	if (context->apf_enabled) {
 		hdd_err("Cannot get/set while interpreter is enabled");
 		return -EINVAL;
@@ -596,7 +581,6 @@
 		context->buf = NULL;
 	}
 
-	hdd_exit();
 	return ret;
 }
 
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c
index 003159c..68c976c 100644
--- a/core/hdd/src/wlan_hdd_assoc.c
+++ b/core/hdd/src/wlan_hdd_assoc.c
@@ -1643,41 +1643,28 @@
  */
 static void hdd_print_bss_info(struct hdd_station_ctx *hdd_sta_ctx)
 {
-	uint32_t *cap_info;
+	uint32_t *ht_cap_info;
+	uint32_t *vht_cap_info;
+	struct hdd_connection_info *conn_info;
 
-	hdd_debug("WIFI DATA LOGGER");
-	hdd_debug("chan_freq: %d",
-		  hdd_sta_ctx->conn_info.chan_freq);
-	hdd_debug("dot11mode: %d",
-		 hdd_sta_ctx->conn_info.dot11mode);
-	hdd_debug("AKM: %d",
-		  hdd_sta_ctx->conn_info.last_auth_type);
-	hdd_debug("ssid: %.*s",
-		 hdd_sta_ctx->conn_info.last_ssid.SSID.length,
-		 hdd_sta_ctx->conn_info.last_ssid.SSID.ssId);
-	hdd_debug("roam count: %d",
-		 hdd_sta_ctx->conn_info.roam_count);
-	hdd_debug("ant_info: %d",
-		 hdd_sta_ctx->conn_info.txrate.nss);
-	hdd_debug("datarate legacy %d",
-		 hdd_sta_ctx->conn_info.txrate.legacy);
-	hdd_debug("datarate mcs: %d",
-		 hdd_sta_ctx->conn_info.txrate.mcs);
-	if (hdd_sta_ctx->conn_info.conn_flag.ht_present) {
-		cap_info = (uint32_t *)&hdd_sta_ctx->conn_info.ht_caps;
-		hdd_debug("ht caps: %x", *cap_info);
-	}
-	if (hdd_sta_ctx->conn_info.conn_flag.vht_present) {
-		cap_info = (uint32_t *)&hdd_sta_ctx->conn_info.vht_caps;
-		hdd_debug("vht caps: %x", *cap_info);
-	}
-	if (hdd_sta_ctx->conn_info.conn_flag.hs20_present)
-		hdd_debug("hs20 info: %x",
-			 hdd_sta_ctx->conn_info.hs20vendor_ie.release_num);
-	hdd_debug("signal: %d",
-		 hdd_sta_ctx->conn_info.signal);
-	hdd_debug("noise: %d",
-		 hdd_sta_ctx->conn_info.noise);
+	conn_info = &hdd_sta_ctx->conn_info;
+
+	hdd_nofl_debug("*********** WIFI DATA LOGGER **************");
+	hdd_nofl_debug("freq: %d dot11mode %d AKM %d ssid: \"%.*s\" ,roam_count %d nss %d legacy %d mcs %d signal %d noise: %d",
+		       conn_info->chan_freq, conn_info->dot11mode,
+		       conn_info->last_auth_type,
+		       conn_info->last_ssid.SSID.length,
+		       conn_info->last_ssid.SSID.ssId, conn_info->roam_count,
+		       conn_info->txrate.nss, conn_info->txrate.legacy,
+		       conn_info->txrate.mcs, conn_info->signal,
+		       conn_info->noise);
+	ht_cap_info = (uint32_t *)&conn_info->ht_caps;
+	vht_cap_info = (uint32_t *)&conn_info->vht_caps;
+	hdd_nofl_debug("HT 0x%x VHT 0x%x ht20 info 0x%x",
+		       conn_info->conn_flag.ht_present ? *ht_cap_info : 0,
+		       conn_info->conn_flag.vht_present ? *vht_cap_info : 0,
+		       conn_info->conn_flag.hs20_present ?
+		       conn_info->hs20vendor_ie.release_num : 0);
 }
 
 /**
@@ -1758,7 +1745,6 @@
 
 	hdd_clear_roam_profile_ie(adapter);
 	hdd_wmm_init(adapter);
-	hdd_debug("Invoking packetdump deregistration API");
 	wlan_deregister_txrx_packetdump(OL_TXRX_PDEV_ID);
 
 	/* indicate 'disconnect' status to wpa_supplicant... */
@@ -1794,9 +1780,6 @@
 							reason,
 							disconnect_ies.data,
 							disconnect_ies.len);
-
-			hdd_debug("sent disconnected event to nl80211, reason code %d",
-				  reason);
 		}
 
 		/* update P2P connection status */
@@ -1813,8 +1796,7 @@
 	mac_handle = hdd_ctx->mac_handle;
 	sme_ft_reset(mac_handle, adapter->vdev_id);
 	sme_reset_key(mac_handle, adapter->vdev_id);
-	if (!hdd_remove_beacon_filter(adapter))
-		hdd_debug("hdd_remove_beacon_filter() failed");
+	hdd_remove_beacon_filter(adapter);
 
 	if (sme_is_beacon_report_started(mac_handle, adapter->vdev_id)) {
 		hdd_debug("Sending beacon pause indication to userspace");
@@ -1827,14 +1809,8 @@
 
 		vstatus = hdd_roam_deregister_sta(adapter,
 						  sta_ctx->conn_info.bssid);
-		if (!QDF_IS_STATUS_SUCCESS(vstatus)) {
-			hdd_err("hdd_roam_deregister_sta() failed for sta"
-				QDF_MAC_ADDR_STR " Status: %d [0x%x]",
-				QDF_MAC_ADDR_ARRAY(
-				sta_ctx->conn_info.bssid.bytes),
-				status, status);
+		if (QDF_IS_STATUS_ERROR(vstatus))
 			status = QDF_STATUS_E_FAILURE;
-		}
 
 		/* Clear all the peer sta register with TL. */
 		for (i = 0; i < MAX_PEERS; i++) {
@@ -1849,13 +1825,8 @@
 
 			vstatus = hdd_roam_deregister_sta(adapter, mac_addr);
 
-			if (!QDF_IS_STATUS_SUCCESS(vstatus)) {
-				hdd_err("hdd_roam_deregister_sta() failed sta "
-					QDF_MAC_ADDR_STR " Status: %d [0x%x]",
-					QDF_MAC_ADDR_ARRAY(mac_addr.bytes),
-					status, status);
+			if (QDF_IS_STATUS_ERROR(vstatus))
 				status = QDF_STATUS_E_FAILURE;
-			}
 			/* set the peer mac as 0, all other
 			 * reset are done in hdd_conn_remove_connect_info.
 			 */
@@ -1864,8 +1835,6 @@
 
 		}
 	} else {
-		hdd_debug("roam_result: %d", roam_result);
-
 		/* clear scan cache for Link Lost */
 		if (eCSR_ROAM_LOSTLINK == roam_status) {
 			wlan_hdd_cfg80211_unlink_bss(adapter,
@@ -1900,7 +1869,6 @@
 	}
 	wlan_hdd_clear_link_layer_stats(adapter);
 
-	hdd_debug("check for SAP restart");
 	policy_mgr_check_concurrent_intf_and_restart_sap(hdd_ctx->psoc);
 	adapter->hdd_stats.tx_rx_stats.cont_txtimeout_cnt = 0;
 
@@ -2412,9 +2380,6 @@
 	qdf_mem_copy(buf_ptr, &roam_profile.SSID.ssId[0],
 			roam_profile.SSID.length);
 	ssid_ie_len = 2 + roam_profile.SSID.length;
-	hdd_debug("SSIDIE:");
-	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD, QDF_TRACE_LEVEL_DEBUG,
-			   buf_ssid_ie, ssid_ie_len);
 	final_req_ie = qdf_mem_malloc(IW_GENERIC_IE_MAX);
 	if (!final_req_ie) {
 		if (bss)
@@ -3158,10 +3123,6 @@
 					FT_ASSOC_RSP_IES_OFFSET;
 
 				hdd_debug("assoc_rsp_len %d", assoc_rsp_len);
-				QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD,
-						   QDF_TRACE_LEVEL_DEBUG,
-						   assoc_rsp,
-						   assoc_rsp_len);
 			} else {
 				hdd_debug("AssocRsp is NULL");
 				assoc_rsp_len = 0;
@@ -3178,11 +3139,6 @@
 					 */
 					assoc_req +=
 						FT_ASSOC_REQ_IES_OFFSET;
-					hdd_debug("assoc_req is now at %02x%02x",
-						 (unsigned int)
-						 assoc_req[0],
-						 (unsigned int)
-						 assoc_req[1]);
 					assoc_req_len =
 					    roam_info->nAssocReqLength -
 						FT_ASSOC_REQ_IES_OFFSET;
@@ -3194,12 +3150,7 @@
 					assoc_req_len =
 					    roam_info->nAssocReqLength;
 				}
-
 				hdd_debug("assoc_req_len %d", assoc_req_len);
-				QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_HDD,
-						   QDF_TRACE_LEVEL_DEBUG,
-						   assoc_req,
-						   assoc_req_len);
 			} else {
 				hdd_debug("AssocReq is NULL");
 				assoc_req_len = 0;
@@ -3528,6 +3479,9 @@
 						(u8 *)(roam_info->pbFrames +
 						      roam_info->nBeaconLength +
 						    roam_info->nAssocReqLength);
+					hdd_debug("assoc_req_len %d assoc resp len %d",
+						  roam_info->nAssocReqLength,
+						  roam_info->nAssocRspLength);
 				}
 				hdd_err("send connect failure to nl80211: for bssid "
 					QDF_MAC_ADDR_STR
@@ -4580,9 +4534,6 @@
 	struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
 	mac_handle_t mac_handle = hdd_adapter_get_mac_handle(adapter);
 
-	hdd_debug("channel switch for session:%d to channel freq:%d",
-		adapter->vdev_id, roam_info->chan_info.mhz);
-
 	/* Enable Roaming on STA interface which was disabled before CSA */
 	if (adapter->device_mode == QDF_STA_MODE)
 		sme_start_roaming(mac_handle, adapter->vdev_id,
@@ -4615,7 +4566,6 @@
 	if (QDF_IS_STATUS_ERROR(status))
 		hdd_debug("set hw mode change not done");
 
-	hdd_debug("check for SAP restart");
 	policy_mgr_check_concurrent_intf_and_restart_sap(hdd_ctx->psoc);
 }
 
@@ -4730,7 +4680,6 @@
 		break;
 	case eCSR_ROAM_LOSTLINK:
 		if (roam_result == eCSR_ROAM_RESULT_LOSTLINK) {
-			hdd_debug("Roaming started due to connection lost");
 			hdd_debug("Disabling queues");
 			wlan_hdd_netif_queue_control(adapter,
 					WLAN_STOP_ALL_NETIF_QUEUE_N_CARRIER,
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index d4dcb44..92c463b 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -1584,7 +1584,10 @@
 		.vendor_id = QCA_NL80211_VENDOR_ID,
 		.subcmd = QCA_NL80211_VENDOR_SUBCMD_GET_SAR_LIMITS_EVENT,
 	},
-
+	[QCA_NL80211_VENDOR_SUBCMD_UPDATE_STA_INFO_INDEX] = {
+		.vendor_id = QCA_NL80211_VENDOR_ID,
+		.subcmd = QCA_NL80211_VENDOR_SUBCMD_UPDATE_STA_INFO,
+	}
 };
 
 /**
@@ -3174,12 +3177,7 @@
 	sap_config->acs_cfg.is_ht_enabled = ht_enabled;
 	sap_config->acs_cfg.is_vht_enabled = vht_enabled;
 
-	if (sap_config->acs_cfg.ch_list_count) {
-		hdd_nofl_debug("ACS freq list: len: %d",
-			       sap_config->acs_cfg.ch_list_count);
-		for (i = 0; i < sap_config->acs_cfg.ch_list_count; i++)
-			hdd_nofl_debug("%d ", sap_config->acs_cfg.freq_list[i]);
-	}
+	sap_dump_acs_channel(&sap_config->acs_cfg);
 
 	qdf_status = ucfg_mlme_get_vendor_acs_support(hdd_ctx->psoc,
 						&is_vendor_acs_support);
@@ -6211,6 +6209,41 @@
 #endif
 
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
+void hdd_send_roam_scan_ch_list_event(struct hdd_context *hdd_ctx,
+				      uint16_t buf_len, uint8_t *buf)
+{
+	struct sk_buff *vendor_event;
+	uint32_t len, ret;
+
+	if (!hdd_ctx) {
+		hdd_err_rl("hdd context is null");
+		return;
+	}
+
+	len = nla_total_size(buf_len) + NLMSG_HDRLEN;
+	vendor_event =
+		cfg80211_vendor_event_alloc(
+			hdd_ctx->wiphy, NULL, len,
+			QCA_NL80211_VENDOR_SUBCMD_UPDATE_STA_INFO_INDEX,
+			GFP_KERNEL);
+
+	if (!vendor_event) {
+		hdd_err("cfg80211_vendor_event_alloc failed");
+		return;
+	}
+
+	ret = nla_put(vendor_event,
+		      QCA_WLAN_VENDOR_ATTR_UPDATE_STA_INFO_CONNECT_CHANNELS,
+		      buf_len, buf);
+	if (ret) {
+		hdd_err("OEM event put fails status %d", ret);
+		kfree_skb(vendor_event);
+		return;
+	}
+
+	cfg80211_vendor_event(vendor_event, GFP_KERNEL);
+}
+
 /**
  * wlan_hdd_send_roam_auth_event() - Send the roamed and authorized event
  * @adapter: Pointer to adapter struct
@@ -9087,7 +9120,7 @@
 		status = cds_flush_logs(WLAN_LOG_TYPE_NON_FATAL,
 				WLAN_LOG_INDICATOR_FRAMEWORK,
 				WLAN_LOG_REASON_CODE_UNUSED,
-				true, false);
+				false, false);
 		if (QDF_STATUS_SUCCESS != status) {
 			hdd_err("Failed to trigger bug report");
 			return -EINVAL;
@@ -20291,7 +20324,6 @@
 	/* Sending disconnect event to userspace for kernel version < 3.11
 	 * is handled by __cfg80211_disconnect call to __cfg80211_disconnected
 	 */
-	hdd_debug("Send disconnected event to userspace");
 	wlan_hdd_cfg80211_indicate_disconnect(adapter->dev, true,
 					      WLAN_REASON_UNSPECIFIED, NULL, 0);
 #endif
@@ -20384,8 +20416,6 @@
 	struct wlan_objmgr_vdev *vdev;
 	bool enable_deauth_to_disassoc_map;
 
-	hdd_enter();
-
 	if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam()) {
 		hdd_err("Command not allowed in FTM mode");
 		return -EINVAL;
@@ -20399,10 +20429,6 @@
 		   adapter->vdev_id, reason);
 
 	hdd_print_netdev_txq_status(dev);
-	hdd_debug("Device_mode %s(%d) reason code(%d)",
-		  qdf_opmode_str(adapter->device_mode),
-		  adapter->device_mode, reason);
-
 	status = wlan_hdd_validate_context(hdd_ctx);
 
 	if (0 != status)
@@ -20465,13 +20491,11 @@
 		vdev = hdd_objmgr_get_vdev(adapter);
 		if (!vdev)
 			return -EINVAL;
-		if (ucfg_scan_get_vdev_status(vdev) !=
-				SCAN_NOT_IN_PROGRESS) {
-			hdd_debug("Disconnect is in progress, Aborting Scan");
+		if (ucfg_scan_get_vdev_status(vdev) != SCAN_NOT_IN_PROGRESS)
 			wlan_abort_scan(hdd_ctx->pdev, INVAL_PDEV_ID,
 					adapter->vdev_id, INVALID_SCAN_ID,
 					false);
-		}
+
 		wlan_hdd_cleanup_remain_on_channel_ctx(adapter);
 		/* First clean up the tdls peers if any */
 		hdd_notify_sta_disconnect(adapter->vdev_id,
@@ -20479,7 +20503,8 @@
 		hdd_objmgr_put_vdev(vdev);
 
 		hdd_info("%s(vdevid-%d): Disconnect from userspace; reason:%d (%s)",
-			 dev->name, adapter->vdev_id, reason, hdd_ieee80211_reason_code_to_str(reason));
+			 dev->name, adapter->vdev_id, reason,
+			 hdd_ieee80211_reason_code_to_str(reason));
 		status = wlan_hdd_disconnect(adapter, reasonCode);
 		if (0 != status) {
 			hdd_err("wlan_hdd_disconnect failed, status: %d", status);
@@ -21415,8 +21440,11 @@
 	/* Delete the PMKID CSR cache */
 	if (QDF_STATUS_SUCCESS !=
 	    wlan_hdd_del_pmksa_cache(adapter, pmk_cache)) {
-		hdd_err("Failed to delete PMKSA for " QDF_MAC_ADDR_STR,
-		       QDF_MAC_ADDR_ARRAY(pmksa->bssid));
+		if (!pmksa->bssid)
+			hdd_err("Failed to delete PMKSA for null bssid");
+		else
+			hdd_err("Failed to delete PMKSA for " QDF_MAC_ADDR_STR,
+				QDF_MAC_ADDR_ARRAY(pmksa->bssid));
 		status = -EINVAL;
 	}
 
diff --git a/core/hdd/src/wlan_hdd_cfg80211.h b/core/hdd/src/wlan_hdd_cfg80211.h
index 9897e1a..163d62a 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.h
+++ b/core/hdd/src/wlan_hdd_cfg80211.h
@@ -397,6 +397,17 @@
 void wlan_hdd_cfg80211_acs_ch_select_evt(struct hdd_adapter *adapter);
 
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
+/**
+ * hdd_send_roam_scan_ch_list_event() - roam scan ch list event to user space
+ * @hdd_ctx: HDD context
+ * @buf_len: length of frequency list
+ * @buf: pointer to buffer of frequency list
+ *
+ * Return: None
+ */
+void hdd_send_roam_scan_ch_list_event(struct hdd_context *hdd_ctx,
+				      uint16_t buf_len, uint8_t *buf);
+
 int wlan_hdd_send_roam_auth_event(struct hdd_adapter *adapter, uint8_t *bssid,
 		uint8_t *req_rsn_ie, uint32_t req_rsn_length, uint8_t
 		*rsp_rsn_ie, uint32_t rsp_rsn_length, struct csr_roam_info
@@ -409,6 +420,12 @@
 {
 	return 0;
 }
+
+static inline void
+hdd_send_roam_scan_ch_list_event(struct hdd_context *hdd_ctx,
+				 uint16_t buf_len, uint8_t *buf)
+{
+}
 #endif
 
 int wlan_hdd_cfg80211_update_apies(struct hdd_adapter *adapter);
diff --git a/core/hdd/src/wlan_hdd_green_ap.c b/core/hdd/src/wlan_hdd_green_ap.c
index 77ee425..cd37c10 100644
--- a/core/hdd/src/wlan_hdd_green_ap.c
+++ b/core/hdd/src/wlan_hdd_green_ap.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2018, 2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -50,14 +50,14 @@
 
 		status = policy_mgr_mode_specific_num_active_sessions(
 					hdd_ctx->psoc, mode, &num_sessions);
-		hdd_debug("No. of active sessions for mode: %d is %d",
-			  mode, num_sessions);
 		if (status != QDF_STATUS_SUCCESS) {
 			hdd_err("Failed to get num sessions for mode: %d",
 				mode);
 			return -EINVAL;
 		} else if (num_sessions) {
 			*enable_green_ap = false;
+			hdd_debug("active sessions for mode: %d is %d disable green AP",
+				  mode, num_sessions);
 			return 0;
 		}
 	}
diff --git a/core/hdd/src/wlan_hdd_hostapd.c b/core/hdd/src/wlan_hdd_hostapd.c
index b7cd5ae..f8c64db 100644
--- a/core/hdd/src/wlan_hdd_hostapd.c
+++ b/core/hdd/src/wlan_hdd_hostapd.c
@@ -836,18 +836,13 @@
 		return QDF_STATUS_E_FAILURE;
 	}
 
-	hdd_debug("chan_freq:%d width:%d sec_ch_offset:%d seg0:%d seg1:%d",
-		chan_change.chan_freq, chan_change.chan_params.ch_width,
-		chan_change.chan_params.sec_ch_offset,
-		chan_change.chan_params.center_freq_seg0,
-		chan_change.chan_params.center_freq_seg1);
-
 	freq = chan_change.chan_freq;
 
 	chan = ieee80211_get_channel(adapter->wdev.wiphy, freq);
 
 	if (!chan) {
-		hdd_err("Invalid input frequency for channel conversion");
+		hdd_err("Invalid input frequency %d for channel conversion",
+			freq);
 		return QDF_STATUS_E_FAILURE;
 	}
 
@@ -2461,7 +2456,6 @@
 		return QDF_STATUS_SUCCESS;
 
 	case eSAP_CHANNEL_CHANGE_EVENT:
-		hdd_debug("Received eSAP_CHANNEL_CHANGE_EVENT event");
 		if (hostapd_state->bss_state != BSS_STOP) {
 			/* Allow suspend for old channel */
 			hdd_hostapd_channel_allow_suspend(adapter,
@@ -2514,7 +2508,6 @@
 
 		phy_mode = wlan_sap_get_phymode(
 				WLAN_HDD_GET_SAP_CTX_PTR(adapter));
-		hdd_debug("phy_mode:%d", phy_mode);
 
 		switch (phy_mode) {
 		case eCSR_DOT11_MODE_11n:
diff --git a/core/hdd/src/wlan_hdd_ioctl.c b/core/hdd/src/wlan_hdd_ioctl.c
index 0df4af7..525d19d 100644
--- a/core/hdd/src/wlan_hdd_ioctl.c
+++ b/core/hdd/src/wlan_hdd_ioctl.c
@@ -3978,6 +3978,137 @@
 	return hdd_parse_set_roam_scan_channels(adapter, command);
 }
 
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+static bool is_roam_ch_from_fw_supported(struct hdd_context *hdd_ctx)
+{
+	return hdd_ctx->roam_ch_from_fw_supported;
+}
+
+struct roam_ch_priv {
+	struct roam_scan_ch_resp roam_ch;
+};
+
+void hdd_get_roam_scan_ch_cb(hdd_handle_t hdd_handle,
+			     struct roam_scan_ch_resp *roam_ch,
+			     void *context)
+{
+	struct osif_request *request;
+	struct roam_ch_priv *priv;
+	uint8_t *event = NULL, i = 0;
+	uint32_t  *freq = NULL, len;
+	struct hdd_context *hdd_ctx = hdd_handle_to_context(hdd_handle);
+
+	hdd_debug("roam scan ch list event received : vdev_id:%d command resp: %d",
+		  roam_ch->vdev_id, roam_ch->command_resp);
+	/**
+	 * If command response is set in the response message, then it is
+	 * getroamscanchannels command response else this event is asyncronous
+	 * event raised by firmware.
+	 */
+	if (!roam_ch->command_resp) {
+		len = roam_ch->num_channels * sizeof(roam_ch->chan_list[0]);
+		event = (uint8_t *)qdf_mem_malloc(len);
+		if (!event) {
+			hdd_err("Failed to alloc event response buf vdev_id: %d",
+				roam_ch->vdev_id);
+			return;
+		}
+		freq = (uint32_t *)event;
+		for (i = 0; i < roam_ch->num_channels &&
+		     i < WNI_CFG_VALID_CHANNEL_LIST_LEN; i++) {
+			freq[i] = roam_ch->chan_list[i];
+		}
+
+		hdd_send_roam_scan_ch_list_event(hdd_ctx, len, event);
+		qdf_mem_free(event);
+		return;
+	}
+
+	request = osif_request_get(context);
+	if (!request) {
+		hdd_err("Obsolete request");
+		return;
+	}
+	priv = osif_request_priv(request);
+
+	priv->roam_ch.num_channels = roam_ch->num_channels;
+	for (i = 0; i < priv->roam_ch.num_channels &&
+	     i < WNI_CFG_VALID_CHANNEL_LIST_LEN; i++)
+		priv->roam_ch.chan_list[i] = roam_ch->chan_list[i];
+
+	osif_request_complete(request);
+	osif_request_put(request);
+}
+
+static uint32_t
+hdd_get_roam_chan_from_fw(struct hdd_adapter *adapter, uint32_t *chan_list,
+			  uint8_t *num_channels)
+{
+	QDF_STATUS status = QDF_STATUS_E_INVAL;
+	struct hdd_context *hdd_ctx;
+	int ret, i;
+	void *cookie;
+	struct osif_request *request;
+	struct roam_ch_priv *priv;
+	struct roam_scan_ch_resp *p_roam_ch;
+	static const struct osif_request_params params = {
+		.priv_size = sizeof(*priv) +
+			     sizeof(priv->roam_ch.chan_list[0]) *
+			     WNI_CFG_VALID_CHANNEL_LIST_LEN,
+		.timeout_ms = WLAN_WAIT_TIME_STATS,
+	};
+
+	hdd_ctx = WLAN_HDD_GET_CTX(adapter);
+	request = osif_request_alloc(&params);
+	if (!request) {
+		hdd_err("Request allocation failure");
+		return -ENOMEM;
+	}
+
+	priv = osif_request_priv(request);
+	p_roam_ch = &priv->roam_ch;
+	/** channel list starts after response structure*/
+	priv->roam_ch.chan_list = (uint32_t *)(p_roam_ch + 1);
+	cookie = osif_request_cookie(request);
+	status = sme_get_roam_scan_ch(hdd_ctx->mac_handle,
+				      adapter->vdev_id, cookie);
+
+	if (QDF_IS_STATUS_ERROR(status)) {
+		hdd_err("Unable to retrieve roam channels");
+		ret = qdf_status_to_os_return(status);
+		goto cleanup;
+	}
+
+	ret = osif_request_wait_for_response(request);
+	if (ret) {
+		hdd_err("SME timed out while retrieving raom channels");
+		goto cleanup;
+	}
+
+	priv = osif_request_priv(request);
+	*num_channels = priv->roam_ch.num_channels;
+	for (i = 0; i < *num_channels; i++)
+		chan_list[i] = priv->roam_ch.chan_list[i];
+
+cleanup:
+	osif_request_put(request);
+
+	return ret;
+}
+#else
+static bool is_roam_ch_from_fw_supported(struct hdd_context *hdd_ctx)
+{
+	return false;
+}
+
+static uint32_t
+hdd_get_roam_chan_from_fw(struct hdd_adapter *adapter, uint32_t *chan_list,
+			  uint8_t *num_channels)
+{
+	return QDF_STATUS_E_INVAL;
+}
+#endif
+
 static int drv_cmd_get_roam_scan_channels(struct hdd_adapter *adapter,
 					  struct hdd_context *hdd_ctx,
 					  uint8_t *command,
@@ -3992,6 +4123,18 @@
 	int len;
 	uint8_t chan;
 
+	if (is_roam_ch_from_fw_supported(hdd_ctx)) {
+		ret = hdd_get_roam_chan_from_fw(adapter, freq_list,
+						&num_channels);
+		if (ret == QDF_STATUS_SUCCESS) {
+			goto fill_ch_resp;
+		} else {
+			hdd_err("failed to get roam scan channel list from FW");
+			ret = -EFAULT;
+			goto exit;
+		}
+	}
+
 	if (QDF_STATUS_SUCCESS !=
 		sme_get_roam_scan_channel_list(hdd_ctx->mac_handle,
 					       freq_list,
@@ -4002,6 +4145,7 @@
 		goto exit;
 	}
 
+fill_ch_resp:
 	qdf_mtrace(QDF_MODULE_ID_HDD, QDF_MODULE_ID_HDD,
 		   TRACE_CODE_HDD_GETROAMSCANCHANNELS_IOCTL,
 		   adapter->vdev_id, num_channels);
diff --git a/core/hdd/src/wlan_hdd_ioctl.h b/core/hdd/src/wlan_hdd_ioctl.h
index 5296724..e382511 100644
--- a/core/hdd/src/wlan_hdd_ioctl.h
+++ b/core/hdd/src/wlan_hdd_ioctl.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2014, 2017-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2014, 2017-2019, 2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -48,6 +48,32 @@
 int hdd_set_antenna_mode(struct hdd_adapter *adapter,
 			  struct hdd_context *hdd_ctx, int mode);
 
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+/**
+ * hdd_get_roam_scan_ch_cb() - roam scan channel list callback handler
+ * @hdd_handle: Pointer to hdd context
+ * @roam_ch: pointer to roam scan ch event data
+ * @context: cookie
+ *
+ * Callback function to processes roam scan chaanel list event. If
+ * command response field in the response message is set that means
+ * event received as a response of GETROAMSCANCHANNELS command else
+ * event was rasied by firmware upon disconnection.
+ *
+ * Return: none
+ */
+void hdd_get_roam_scan_ch_cb(hdd_handle_t hdd_handle,
+			     struct roam_scan_ch_resp *roam_ch,
+			     void *context);
+#else
+static inline void
+hdd_get_roam_scan_ch_cb(hdd_handle_t hdd_handle,
+			void *roam_ch,
+			void *context)
+{
+}
+#endif
+
 #ifdef QCA_IBSS_SUPPORT
 /**
  * hdd_get_ibss_peer_info_cb() - IBSS peer Info request callback
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index b623d63..075b040 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -1625,6 +1625,7 @@
 				   mawc_enabled & cfg->is_fw_mawc_capable);
 	hdd_update_tdls_config(hdd_ctx);
 	sme_update_tgt_services(hdd_ctx->mac_handle, cfg);
+	hdd_ctx->roam_ch_from_fw_supported = cfg->is_roam_scan_ch_to_host;
 }
 
 /**
@@ -4208,31 +4209,29 @@
 
 	hdd_enter_dev(dev);
 	if (QDF_GLOBAL_FTM_MODE == hdd_get_conparam())
-		goto out;
+		return;
 
 	errno = wlan_hdd_validate_context(hdd_ctx);
 	if (errno)
-		goto out;
+		return;
 
 	errno = hdd_validate_adapter(adapter);
 	if (errno)
-		goto out;
+		return;
 
 	if (hdd_ctx->driver_status == DRIVER_MODULES_CLOSED) {
 		hdd_debug("%s: Driver module is closed", __func__);
-		goto out;
+		return;
 	}
 
 	mc_list_request = qdf_mem_malloc(sizeof(*mc_list_request));
 	if (!mc_list_request)
-		goto out;
+		return;
 
 	/* Delete already configured multicast address list */
-	if (adapter->mc_addr_list.mc_cnt > 0) {
-		hdd_debug("clear previously configured MC address list");
+	if (adapter->mc_addr_list.mc_cnt > 0)
 		hdd_disable_and_flush_mc_addr_list(adapter,
 			pmo_mc_list_change_notify);
-	}
 
 	if (dev->flags & IFF_ALLMULTI) {
 		hdd_debug("allow all multicast frames");
@@ -4249,8 +4248,6 @@
 			goto free_req;
 		}
 		netdev_for_each_mc_addr(ha, dev) {
-			hdd_debug("ha_addr[%d] "QDF_MAC_ADDR_STR,
-				i, QDF_MAC_ADDR_ARRAY(ha->addr));
 			if (i == mc_count)
 				break;
 			memset(&(mc_list_request->mc_addr[i].bytes),
@@ -4279,9 +4276,6 @@
 
 free_req:
 	qdf_mem_free(mc_list_request);
-
-out:
-	hdd_exit();
 }
 
 /**
@@ -13381,6 +13375,8 @@
 					    hdd_common_roam_callback);
 
 	sme_set_oem_data_event_handler_cb(mac_handle, hdd_oem_event_handler_cb);
+	sme_set_roam_scan_ch_event_cb(mac_handle, hdd_get_roam_scan_ch_cb);
+
 	hdd_exit();
 
 	return ret;
diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c
index 2447c94..30b774b 100644
--- a/core/hdd/src/wlan_hdd_power.c
+++ b/core/hdd/src/wlan_hdd_power.c
@@ -1074,19 +1074,17 @@
 	QDF_STATUS status;
 	struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
 
-	hdd_enter();
-
 	status = ucfg_pmo_check_arp_offload(hdd_ctx->psoc, trigger,
 					    adapter->vdev_id);
 	if (status != QDF_STATUS_SUCCESS) {
 		hdd_debug("Flushing of ARP offload not required");
-		goto out;
+		return;
 	}
 
 	status = ucfg_pmo_flush_arp_offload_req(adapter->vdev);
 	if (status != QDF_STATUS_SUCCESS) {
 		hdd_err("Failed to flush arp Offload");
-		goto out;
+		return;
 	}
 
 	status = ucfg_pmo_disable_arp_offload_in_fwr(adapter->vdev,
@@ -1096,8 +1094,6 @@
 			PMO_OFFLOAD_DISABLE);
 	else
 		hdd_info("fail to disable arp offload");
-out:
-	hdd_exit();
 }
 
 void hdd_enable_mc_addr_filtering(struct hdd_adapter *adapter,
@@ -1106,13 +1102,11 @@
 	struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
 	QDF_STATUS status;
 
-	hdd_enter();
-
 	if (wlan_hdd_validate_context(hdd_ctx))
-		goto out;
+		return;
 
 	if (!hdd_adapter_is_connected_sta(adapter))
-		goto out;
+		return;
 
 	status = ucfg_pmo_enable_mc_addr_filtering_in_fwr(hdd_ctx->psoc,
 							  adapter->vdev_id,
@@ -1120,8 +1114,6 @@
 	if (QDF_IS_STATUS_ERROR(status))
 		hdd_debug("failed to enable mc list; status:%d", status);
 
-out:
-	hdd_exit();
 }
 
 void hdd_disable_mc_addr_filtering(struct hdd_adapter *adapter,
@@ -1130,31 +1122,24 @@
 	struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
 	QDF_STATUS status;
 
-	hdd_enter();
-
 	if (wlan_hdd_validate_context(hdd_ctx))
-		goto out;
+		return;
 
 	if (!hdd_adapter_is_connected_sta(adapter))
-		goto out;
+		return;
 
 	status = ucfg_pmo_disable_mc_addr_filtering_in_fwr(hdd_ctx->psoc,
 							   adapter->vdev_id,
 							   trigger);
 	if (QDF_IS_STATUS_ERROR(status))
 		hdd_err("failed to disable mc list; status:%d", status);
-
-out:
-	hdd_exit();
 }
 
 int hdd_cache_mc_addr_list(struct pmo_mc_addr_list_params *mc_list_config)
 {
 	QDF_STATUS status;
 
-	hdd_enter();
 	status = ucfg_pmo_cache_mc_addr_list(mc_list_config);
-	hdd_exit();
 
 	return qdf_status_to_os_return(status);
 }
@@ -1165,8 +1150,6 @@
 	struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
 	QDF_STATUS status;
 
-	hdd_enter();
-
 	if (!hdd_adapter_is_connected_sta(adapter))
 		goto flush_mc_list;
 
@@ -1183,7 +1166,6 @@
 	if (QDF_IS_STATUS_ERROR(status))
 		hdd_debug("failed to flush mc list; status:%d", status);
 
-	hdd_exit();
 }
 
 /**
diff --git a/core/hdd/src/wlan_hdd_stats.c b/core/hdd/src/wlan_hdd_stats.c
index 9e5d20f..63faddd 100644
--- a/core/hdd/src/wlan_hdd_stats.c
+++ b/core/hdd/src/wlan_hdd_stats.c
@@ -631,8 +631,8 @@
 	if (0 != status)
 		return;
 
-	hdd_debug("LL_STATS_PEER_ALL : num_peers %u, more data = %u",
-		  peer_stat->num_peers, more_data);
+	hdd_nofl_debug("LL_STATS_PEER_ALL : num_peers %u, more data = %u",
+		       peer_stat->num_peers, more_data);
 
 	/*
 	 * Allocate a size of 4096 for the peer stats comprising
@@ -967,7 +967,7 @@
 		return;
 
 	for (i = 0; i < num_radio; i++) {
-		hdd_debug("LL_STATS_RADIO"
+		hdd_nofl_debug("LL_STATS_RADIO"
 		       " radio: %u on_time: %u tx_time: %u rx_time: %u"
 		       " on_time_scan: %u on_time_nbd: %u"
 		       " on_time_gscan: %u on_time_roam_scan: %u"
@@ -1093,18 +1093,13 @@
 		return;
 	}
 
-	hdd_debug("Link Layer Indication Type: %d", indication_type);
-
 	switch (indication_type) {
 	case SIR_HAL_LL_STATS_RESULTS_RSP:
 	{
-		hdd_debug("LL_STATS RESP paramID = 0x%x, ifaceId = %u, respId= %u , moreResultToFollow = %u, num radio = %u result = %pK",
-			results->paramId,
-			results->ifaceId,
-			results->rspId,
-			results->moreResultToFollow,
-			results->num_radio,
-			results->results);
+		hdd_nofl_debug("LL_STATS RESP paramID = 0x%x, ifaceId = %u, respId= %u , moreResultToFollow = %u, num radio = %u result = %pK",
+			       results->paramId, results->ifaceId,
+			       results->rspId, results->moreResultToFollow,
+			       results->num_radio, results->results);
 
 		request = osif_request_get(cookie);
 		if (!request) {
diff --git a/core/hdd/src/wlan_hdd_trace.c b/core/hdd/src/wlan_hdd_trace.c
index 22a2438..39b8377 100644
--- a/core/hdd/src/wlan_hdd_trace.c
+++ b/core/hdd/src/wlan_hdd_trace.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014-2017 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -42,15 +42,17 @@
 hdd_trace_dump(void *mac, tp_qdf_trace_record record, uint16_t index)
 {
 	if (TRACE_CODE_HDD_RX_SME_MSG == record->code)
-		hdd_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
-			index, record->qtime, record->time, record->session,
-			"RX SME MSG:",
-			get_e_roam_cmd_status_str(record->data), record->data);
+		hdd_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+			       index, record->qtime, record->time,
+			       record->session, "RX SME MSG:",
+			       get_e_roam_cmd_status_str(record->data),
+							 record->data);
 	else
-		hdd_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
-			index, record->qtime, record->time, record->session,
-			"HDD Event:",
-			hdd_trace_event_string(record->code), record->data);
+		hdd_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+			       index, record->qtime, record->time,
+			       record->session, "HDD Event:",
+			       hdd_trace_event_string(record->code),
+						      record->data);
 }
 
 /**
diff --git a/core/hdd/src/wlan_hdd_wmm.c b/core/hdd/src/wlan_hdd_wmm.c
index 759fdbd..a250df6 100644
--- a/core/hdd/src/wlan_hdd_wmm.c
+++ b/core/hdd/src/wlan_hdd_wmm.c
@@ -1561,8 +1561,6 @@
 	struct wlan_objmgr_psoc *psoc = adapter->hdd_ctx->psoc;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 
-	hdd_enter();
-
 	if (!psoc) {
 		hdd_err("Invalid psoc handle");
 		return QDF_STATUS_E_FAILURE;
diff --git a/core/mac/inc/qwlan_version.h b/core/mac/inc/qwlan_version.h
index b474045..fb5f6c3 100644
--- a/core/mac/inc/qwlan_version.h
+++ b/core/mac/inc/qwlan_version.h
@@ -31,10 +31,10 @@
 
 #define QWLAN_VERSION_MAJOR            5
 #define QWLAN_VERSION_MINOR            2
-#define QWLAN_VERSION_PATCH            0
-#define QWLAN_VERSION_EXTRA            "H"
-#define QWLAN_VERSION_BUILD            170
+#define QWLAN_VERSION_PATCH            022
+#define QWLAN_VERSION_EXTRA            "C"
+#define QWLAN_VERSION_BUILD            0
 
-#define QWLAN_VERSIONSTR               "5.2.0.170H"
+#define QWLAN_VERSIONSTR               "5.2.022.0C"
 
 #endif /* QWLAN_VERSION_H */
diff --git a/core/mac/inc/sir_api.h b/core/mac/inc/sir_api.h
index 81b78a6..775abdd 100644
--- a/core/mac/inc/sir_api.h
+++ b/core/mac/inc/sir_api.h
@@ -192,6 +192,20 @@
 };
 
 /**
+ * struct roam_scan_ch_resp - roam scan chan list response to userspace
+ * @vdev_id: vdev id
+ * @num_channels: number of roam scan channels
+ * @command_resp: command response or async event
+ * @chan_list: list of roam scan channels
+ */
+struct roam_scan_ch_resp {
+	uint16_t vdev_id;
+	uint16_t num_channels;
+	uint32_t command_resp;
+	uint32_t *chan_list;
+};
+
+/**
  * struct wlan_beacon_report - Beacon info to be send to userspace
  * @vdev_id: vdev id
  * @ssid: ssid present in beacon
diff --git a/core/mac/inc/wni_api.h b/core/mac/inc/wni_api.h
index 7c4101f..bea0c77 100644
--- a/core/mac/inc/wni_api.h
+++ b/core/mac/inc/wni_api.h
@@ -243,7 +243,9 @@
 	eWNI_SME_VDEV_DELETE_RSP = SIR_SME_MSG_TYPES_BEGIN + 158,
 	eWNI_SME_ROAM_INIT_PARAM = SIR_SME_MSG_TYPES_BEGIN + 159,
 	eWNI_SME_ROAM_SEND_PER_REQ = SIR_SME_MSG_TYPES_BEGIN + 160,
-	eWNI_SME_MSG_TYPES_END = SIR_SME_MSG_TYPES_BEGIN + 161
+	eWNI_SME_GET_ROAM_SCAN_CH_LIST_EVENT =
+				SIR_SME_MSG_TYPES_BEGIN + 161,
+	eWNI_SME_MSG_TYPES_END = SIR_SME_MSG_TYPES_BEGIN + 162
 };
 
 typedef struct sAniCfgTxRateCtrs {
diff --git a/core/mac/src/include/sir_params.h b/core/mac/src/include/sir_params.h
index 04ce72b..37bbf3e 100644
--- a/core/mac/src/include/sir_params.h
+++ b/core/mac/src/include/sir_params.h
@@ -652,6 +652,8 @@
 
 #define SIR_HAL_SET_ROAM_TRIGGERS           (SIR_HAL_ITC_MSG_TYPES_BEGIN + 413)
 
+#define SIR_HAL_ROAM_SCAN_CH_REQ           (SIR_HAL_ITC_MSG_TYPES_BEGIN + 414)
+
 #define SIR_HAL_MSG_TYPES_END               (SIR_HAL_MSG_TYPES_BEGIN + 0x1FF)
 
 /* LIM message types */
diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c
index 63d5b44..3a5e5f3 100644
--- a/core/mac/src/pe/lim/lim_api.c
+++ b/core/mac/src/pe/lim/lim_api.c
@@ -2089,9 +2089,6 @@
 		 roam_synch_ind_ptr->isBeacon,
 		 roam_synch_ind_ptr->bssid.bytes,
 		 mac_hdr->bssId);
-	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
-			   bcn_proberesp_ptr,
-			   roam_synch_ind_ptr->beaconProbeRespLength);
 
 	status = lim_roam_gen_beacon_descr(mac,
 					   roam_synch_ind_ptr,
@@ -2165,9 +2162,6 @@
 				(uint8_t *)parsed_frm_ptr->mdie,
 				SIR_MDIE_SIZE);
 	}
-	pe_debug("LFR3: BssDescr Info:");
-	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
-			bss_desc_ptr->bssId, sizeof(tSirMacAddr));
 	pe_debug("chan: %d rssi: %d ie_len %d",
 		 bss_desc_ptr->chan_freq,
 		 bss_desc_ptr->rssi, ie_len);
@@ -2417,10 +2411,6 @@
 			roam_sync_ind_ptr->reassocRespOffset,
 			mac_ctx->roam.reassocRespLen);
 
-	pe_debug("LFR3: Reassoc resp frame data:");
-	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
-			mac_ctx->roam.pReassocResp,
-			mac_ctx->roam.reassocRespLen);
 	ft_session_ptr->bRoamSynchInProgress = true;
 
 	lim_process_assoc_rsp_frame(mac_ctx, mac_ctx->roam.pReassocResp,
diff --git a/core/mac/src/pe/lim/lim_assoc_utils.c b/core/mac/src/pe/lim/lim_assoc_utils.c
index b648e6b..24b2be1 100644
--- a/core/mac/src/pe/lim/lim_assoc_utils.c
+++ b/core/mac/src/pe/lim/lim_assoc_utils.c
@@ -467,13 +467,6 @@
 					eLIM_LINK_MONITORING_DISASSOC) ||
 		(mlmStaContext.cleanupTrigger ==
 					eLIM_PROMISCUOUS_MODE_DISASSOC)) {
-		/**
-		 * Host or LMM driven Disassociation.
-		 * Issue Disassoc Confirm to SME.
-		 */
-		pe_debug("Lim Posting DISASSOC_CNF to Sme. Trigger: %d",
-			mlmStaContext.cleanupTrigger);
-
 		qdf_mem_copy((uint8_t *) &mlmDisassocCnf.peerMacAddr,
 			     (uint8_t *) sta_dsaddr.bytes, QDF_MAC_ADDR_SIZE);
 		mlmDisassocCnf.resultCode = status_code;
@@ -488,12 +481,6 @@
 					eLIM_HOST_DEAUTH) ||
 			(mlmStaContext.cleanupTrigger ==
 					eLIM_LINK_MONITORING_DEAUTH)) {
-		/**
-		 * Host or LMM driven Deauthentication.
-		 * Issue Deauth Confirm to SME.
-		 */
-		pe_debug("Lim Posting DEAUTH_CNF to Sme. Trigger: %d",
-			mlmStaContext.cleanupTrigger);
 		qdf_copy_macaddr(&mlmDeauthCnf.peer_macaddr, &sta_dsaddr);
 		mlmDeauthCnf.resultCode = status_code;
 		mlmDeauthCnf.deauthTrigger = mlmStaContext.cleanupTrigger;
@@ -506,12 +493,6 @@
 	} else if ((mlmStaContext.cleanupTrigger ==
 		    eLIM_PEER_ENTITY_DISASSOC) ||
 		   (mlmStaContext.cleanupTrigger == eLIM_PEER_ENTITY_DEAUTH)) {
-		/**
-		 * Received Disassociation/Deauthentication from peer.
-		 * Issue Purge Ind to SME.
-		 */
-		pe_debug("Lim Posting PURGE_STA_IND to Sme. Trigger: %d",
-			mlmStaContext.cleanupTrigger);
 		qdf_mem_copy((uint8_t *) &mlmPurgeStaInd.peerMacAddr,
 			     (uint8_t *) sta_dsaddr.bytes, QDF_MAC_ADDR_SIZE);
 		mlmPurgeStaInd.reasonCode =
@@ -578,12 +559,6 @@
 		}
 
 	} else if (mlmStaContext.cleanupTrigger == eLIM_DUPLICATE_ENTRY) {
-		/**
-		 * LIM driven Disassociation.
-		 * Issue Disassoc Confirm to SME.
-		 */
-		pe_debug("Lim Posting DISASSOC_CNF to Sme. Trigger: %d",
-			mlmStaContext.cleanupTrigger);
 
 		qdf_mem_copy((uint8_t *) &mlmDisassocCnf.peerMacAddr,
 			     (uint8_t *) sta_dsaddr.bytes, QDF_MAC_ADDR_SIZE);
@@ -3225,14 +3200,9 @@
 		lim_deactivate_and_change_timer(mac, eLIM_JOIN_FAIL_TIMER);
 	}
 
-	pe_debug("Sessionid %d : Sending HAL_DELETE_BSS_REQ BSSID:"
-		 QDF_MAC_ADDR_STR,
-		 pe_session->peSessionId,
-		 QDF_MAC_ADDR_ARRAY(pe_session->bssId));
 	/* we need to defer the message until we get the response back from HAL. */
 	SET_LIM_PROCESS_DEFD_MESGS(mac, false);
 
-	pe_debug("process_ho_fail = %d", pe_session->process_ho_fail);
 	if (pe_session->process_ho_fail)
 		msgQ.type = WMA_DELETE_BSS_HO_FAIL_REQ;
 	else
@@ -3241,6 +3211,9 @@
 	msgQ.bodyptr = NULL;
 	msgQ.bodyval = pe_session->smeSessionId;
 
+	pe_debug("Sessionid %d : Sending HAL_DELETE_BSS_REQ BSSID:" QDF_MAC_ADDR_STR,
+		 pe_session->peSessionId,
+		 QDF_MAC_ADDR_ARRAY(pe_session->bssId));
 	MTRACE(mac_trace_msg_tx(mac, pe_session->peSessionId, msgQ.type));
 
 	retCode = wma_post_ctrl_msg(mac, &msgQ);
diff --git a/core/mac/src/pe/lim/lim_process_action_frame.c b/core/mac/src/pe/lim/lim_process_action_frame.c
index 26c5ad0..7cc212b 100644
--- a/core/mac/src/pe/lim/lim_process_action_frame.c
+++ b/core/mac/src/pe/lim/lim_process_action_frame.c
@@ -79,9 +79,6 @@
 		return;
 	}
 
-	pe_debug("Channel switch Mode: %d",
-		       pe_session->gLimChannelSwitch.switchMode);
-
 	mac->lim.lim_timers.gLimChannelSwitchTimer.sessionId = sessionId;
 	status = policy_mgr_check_and_set_hw_mode_for_channel_switch(mac->psoc,
 				pe_session->smeSessionId,
diff --git a/core/mac/src/pe/lim/lim_process_assoc_req_frame.c b/core/mac/src/pe/lim/lim_process_assoc_req_frame.c
index 0968e99..79d72ae 100644
--- a/core/mac/src/pe/lim/lim_process_assoc_req_frame.c
+++ b/core/mac/src/pe/lim/lim_process_assoc_req_frame.c
@@ -2175,11 +2175,11 @@
 	hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
 	frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_pkt_info);
 
-	pe_debug("Rcvd: %s Req Frame sessionid: %d systemrole: %d MlmState: %d from: "
-		   QDF_MAC_ADDR_STR,
-		(LIM_ASSOC == sub_type) ? "Assoc" : "ReAssoc",
-		session->peSessionId, GET_LIM_SYSTEM_ROLE(session),
-		session->limMlmState, QDF_MAC_ADDR_ARRAY(hdr->sa));
+	pe_nofl_debug("Assoc req RX: subtype %d vdev %d sys role %d lim state %d rssi %d from " QDF_MAC_ADDR_STR,
+		      sub_type, session->vdev_id, GET_LIM_SYSTEM_ROLE(session),
+		      session->limMlmState,
+		      WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info),
+		      QDF_MAC_ADDR_ARRAY(hdr->sa));
 
 	if (LIM_IS_STA_ROLE(session)) {
 		pe_err("Rcvd unexpected ASSOC REQ, sessionid: %d sys sub_type: %d for role: %d from: "
diff --git a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c
index a8eb87b..6702cf7 100644
--- a/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c
+++ b/core/mac/src/pe/lim/lim_process_assoc_rsp_frame.c
@@ -310,7 +310,6 @@
 			pe_err("RIC data not present");
 		}
 	} else {
-		pe_debug("Ric is not present");
 		session_entry->RICDataLen = 0;
 		session_entry->ricData = NULL;
 	}
@@ -356,7 +355,6 @@
 	} else {
 		session_entry->tspecLen = 0;
 		session_entry->tspecIes = NULL;
-		pe_debug("Tspec EID *NOT* present in assoc rsp");
 	}
 	return;
 }
@@ -587,33 +585,14 @@
 	struct csr_roam_session *roam_session;
 #endif
 	uint8_t ap_nss;
+	int8_t rssi;
 
-	/* Initialize status code to success. */
-	if (lim_is_roam_synch_in_progress(session_entry))
-		hdr = (tpSirMacMgmtHdr) mac_ctx->roam.pReassocResp;
-	else
-		hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
 	vdev_id = session_entry->vdev_id;
 #endif
 	assoc_cnf.resultCode = eSIR_SME_SUCCESS;
 	/* Update PE session Id */
 	assoc_cnf.sessionId = session_entry->peSessionId;
-	if (!hdr) {
-		pe_err("LFR3: Reassoc response packet header is NULL");
-		return;
-	}
-
-	pe_nofl_info("Assoc RX subtype %d vdev %d sys role %d lim state %d rssi %d from " QDF_MAC_ADDR_STR,
-		     subtype, session_entry->vdev_id,
-		     GET_LIM_SYSTEM_ROLE(session_entry),
-		     session_entry->limMlmState,
-		     WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info),
-		     QDF_MAC_ADDR_ARRAY(hdr->sa));
-
-	beacon = qdf_mem_malloc(sizeof(tSchBeaconStruct));
-	if (!beacon)
-		return;
 
 	if (LIM_IS_AP_ROLE(session_entry)) {
 		/*
@@ -622,16 +601,36 @@
 		 */
 		pe_err("Should not received Re/Assoc Response in role: %d",
 			GET_LIM_SYSTEM_ROLE(session_entry));
-		qdf_mem_free(beacon);
 		return;
 	}
+
 	if (lim_is_roam_synch_in_progress(session_entry)) {
 		hdr = (tpSirMacMgmtHdr) mac_ctx->roam.pReassocResp;
 		frame_len = mac_ctx->roam.reassocRespLen - SIR_MAC_HDR_LEN_3A;
+		rssi = 0;
 	} else {
 		hdr = WMA_GET_RX_MAC_HEADER(rx_pkt_info);
 		frame_len = WMA_GET_RX_PAYLOAD_LEN(rx_pkt_info);
+		rssi = WMA_GET_RX_RSSI_NORMALIZED(rx_pkt_info);
 	}
+
+	if (!hdr) {
+		pe_err("LFR3: Reassoc response packet header is NULL");
+		return;
+	}
+
+	pe_nofl_info("Assoc rsp RX: subtype %d vdev %d sys role %d lim state %d rssi %d from " QDF_MAC_ADDR_STR,
+		     subtype, session_entry->vdev_id,
+		     GET_LIM_SYSTEM_ROLE(session_entry),
+		     session_entry->limMlmState, rssi,
+		     QDF_MAC_ADDR_ARRAY(hdr->sa));
+	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
+			   (uint8_t *)hdr, frame_len + SIR_MAC_HDR_LEN_3A);
+
+	beacon = qdf_mem_malloc(sizeof(tSchBeaconStruct));
+	if (!beacon)
+		return;
+
 	if (((subtype == LIM_ASSOC) &&
 		(session_entry->limMlmState != eLIM_MLM_WT_ASSOC_RSP_STATE)) ||
 		((subtype == LIM_REASSOC) &&
diff --git a/core/mac/src/pe/lim/lim_process_cfg_updates.c b/core/mac/src/pe/lim/lim_process_cfg_updates.c
index f889197..a975af7 100644
--- a/core/mac/src/pe/lim/lim_process_cfg_updates.c
+++ b/core/mac/src/pe/lim/lim_process_cfg_updates.c
@@ -178,7 +178,6 @@
 		   as a part of join request for a BT-AMP station */
 
 		if (pe_session->statypeForBss == STA_ENTRY_SELF) {
-			pe_debug("Initializing BT-AMP beacon generation");
 			sch_set_beacon_interval(mac, pe_session);
 			sch_set_fixed_beacon_fields(mac, pe_session);
 		}
diff --git a/core/mac/src/pe/lim/lim_process_deauth_frame.c b/core/mac/src/pe/lim/lim_process_deauth_frame.c
index 2a866cd..7acb48c 100644
--- a/core/mac/src/pe/lim/lim_process_deauth_frame.c
+++ b/core/mac/src/pe/lim/lim_process_deauth_frame.c
@@ -149,12 +149,11 @@
 	/* Get reasonCode from Deauthentication frame body */
 	reasonCode = sir_read_u16(pBody);
 
-	pe_nofl_info("Deauth from %pM for %pM mlm state = %d, sme state = %d systemrole = %d RSSI = %d reason %d",
-		     pHdr->sa, pHdr->da,
-		     pe_session->limMlmState,
+	pe_nofl_info("Deauth RX: vdev %d from %pM for %pM RSSI = %d reason %d mlm state = %d, sme state = %d systemrole = %d ",
+		     pe_session->vdev_id, pHdr->sa, pHdr->da, frame_rssi,
+		     reasonCode, pe_session->limMlmState,
 		     pe_session->limSmeState,
-		     GET_LIM_SYSTEM_ROLE(pe_session), frame_rssi,
-		     reasonCode);
+		     GET_LIM_SYSTEM_ROLE(pe_session));
 
 	lim_diag_event_report(mac, WLAN_PE_DIAG_DEAUTH_FRAME_EVENT,
 		pe_session, 0, reasonCode);
@@ -315,7 +314,7 @@
 		cds_flush_logs(WLAN_LOG_TYPE_FATAL,
 			       WLAN_LOG_INDICATOR_HOST_DRIVER,
 			       WLAN_LOG_REASON_DISCONNECT,
-			       true, false);
+			       false, false);
 	}
 
 } /*** end lim_process_deauth_frame() ***/
diff --git a/core/mac/src/pe/lim/lim_process_disassoc_frame.c b/core/mac/src/pe/lim/lim_process_disassoc_frame.c
index 27e6a7e..d6afd50 100644
--- a/core/mac/src/pe/lim/lim_process_disassoc_frame.c
+++ b/core/mac/src/pe/lim/lim_process_disassoc_frame.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -146,13 +146,11 @@
 	/* Get reasonCode from Disassociation frame body */
 	reasonCode = sir_read_u16(pBody);
 
-	pe_debug("Received Disassoc frame for Addr: " QDF_MAC_ADDR_STR
-		 "(mlm state=%s, sme state=%d RSSI=%d),"
-		 "with reason code %d [%s] from " QDF_MAC_ADDR_STR,
-		 QDF_MAC_ADDR_ARRAY(pHdr->da),
-		 lim_mlm_state_str(pe_session->limMlmState),
-		 pe_session->limSmeState, frame_rssi, reasonCode,
-		 lim_dot11_reason_str(reasonCode), QDF_MAC_ADDR_ARRAY(pHdr->sa));
+	pe_nofl_info("Disassoc RX: vdev %d from %pM for %pM RSSI = %d reason %d mlm state = %d, sme state = %d systemrole = %d ",
+		     pe_session->vdev_id, pHdr->sa, pHdr->da, frame_rssi,
+		     reasonCode, pe_session->limMlmState,
+		     pe_session->limSmeState,
+		     GET_LIM_SYSTEM_ROLE(pe_session));
 	lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_FRAME_EVENT,
 		pe_session, 0, reasonCode);
 
@@ -313,7 +311,7 @@
 		cds_flush_logs(WLAN_LOG_TYPE_FATAL,
 			       WLAN_LOG_INDICATOR_HOST_DRIVER,
 			       WLAN_LOG_REASON_DISCONNECT,
-			       true, false);
+			       false, false);
 	}
 } /*** end lim_process_disassoc_frame() ***/
 
diff --git a/core/mac/src/pe/lim/lim_process_message_queue.c b/core/mac/src/pe/lim/lim_process_message_queue.c
index 395c2c6..2633909 100644
--- a/core/mac/src/pe/lim/lim_process_message_queue.c
+++ b/core/mac/src/pe/lim/lim_process_message_queue.c
@@ -827,7 +827,6 @@
 					cds_pkt_t *rx_pkt)
 {
 	rx_pkt->pkt_meta.frequency = scan_entry->channel.chan_freq;
-	pe_debug("rx pkt meta freq %d", rx_pkt->pkt_meta.frequency);
 	rx_pkt->pkt_meta.mpdu_hdr_len = sizeof(struct ieee80211_frame);
 	rx_pkt->pkt_meta.mpdu_len = scan_entry->raw_frame.len;
 	rx_pkt->pkt_meta.mpdu_data_len = rx_pkt->pkt_meta.mpdu_len -
diff --git a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c
index 9d05db1..440d774 100644
--- a/core/mac/src/pe/lim/lim_process_mlm_req_messages.c
+++ b/core/mac/src/pe/lim/lim_process_mlm_req_messages.c
@@ -928,12 +928,6 @@
 		goto end;
 	}
 
-	pe_debug("Process DisAssoc Req on sessionID %d Systemrole %d"
-		   "mlmstate %d from: " QDF_MAC_ADDR_STR,
-		mlm_disassocreq->sessionId, GET_LIM_SYSTEM_ROLE(session),
-		session->limMlmState,
-		QDF_MAC_ADDR_ARRAY(mlm_disassocreq->peer_macaddr.bytes));
-
 	qdf_mem_copy(curr_bssid.bytes, session->bssId, QDF_MAC_ADDR_SIZE);
 
 	switch (GET_LIM_SYSTEM_ROLE(session)) {
@@ -1218,10 +1212,6 @@
 	}
 
 	mlm_disassoc_req = (tLimMlmDisassocReq *) msg_buf;
-	pe_debug("Process disassoc req, sessionID %d from: "QDF_MAC_ADDR_STR,
-		mlm_disassoc_req->sessionId,
-		QDF_MAC_ADDR_ARRAY(mlm_disassoc_req->peer_macaddr.bytes));
-
 	lim_process_mlm_disassoc_req_ntf(mac_ctx, QDF_STATUS_SUCCESS,
 					 (uint32_t *) msg_buf);
 }
@@ -1264,12 +1254,6 @@
 		qdf_mem_free(mlm_deauth_req);
 		return;
 	}
-	pe_debug("Process Deauth Req on sessionID %d Systemrole %d"
-		       "mlmstate %d from: " QDF_MAC_ADDR_STR,
-		mlm_deauth_req->sessionId,
-		GET_LIM_SYSTEM_ROLE(session),
-		session->limMlmState,
-		QDF_MAC_ADDR_ARRAY(mlm_deauth_req->peer_macaddr.bytes));
 	sir_copy_mac_addr(curr_bssId, session->bssId);
 
 	switch (GET_LIM_SYSTEM_ROLE(session)) {
@@ -1304,11 +1288,6 @@
 					return;
 				}
 
-				pe_debug("send deauth rsp with ret code %d for" QDF_MAC_ADDR_STR,
-					eSIR_SME_DEAUTH_STATUS,
-					QDF_MAC_ADDR_ARRAY(
-					  mlm_deauth_req->peer_macaddr.bytes));
-
 				sme_deauth_rsp->messageType =
 						eWNI_SME_DEAUTH_RSP;
 				sme_deauth_rsp->length =
@@ -1509,11 +1488,6 @@
 	}
 
 	mlm_deauth_req = (tLimMlmDeauthReq *) msg_buf;
-	pe_debug("Process Deauth Req on sessionID %d from: "
-		   QDF_MAC_ADDR_STR,
-		mlm_deauth_req->sessionId,
-		QDF_MAC_ADDR_ARRAY(mlm_deauth_req->peer_macaddr.bytes));
-
 	session = pe_find_session_by_session_id(mac_ctx,
 				mlm_deauth_req->sessionId);
 	if (!session) {
diff --git a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c
index ba19d10..dbc9c83 100644
--- a/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c
+++ b/core/mac/src/pe/lim/lim_process_mlm_rsp_messages.c
@@ -971,8 +971,6 @@
 		return;
 	}
 	role = GET_LIM_SYSTEM_ROLE(session);
-	pe_debug("*** Received Deauthentication from staId=%d role=%d***",
-		 deauth_ind->aid, role);
 	if (role == eLIM_STA_ROLE) {
 		session->limSmeState = eLIM_SME_WT_DEAUTH_STATE;
 		MTRACE(mac_trace(mac_ctx, TRACE_CODE_SME_STATE,
@@ -1039,7 +1037,6 @@
 		}
 		if (pMlmDeauthCnf->resultCode == eSIR_SME_SUCCESS) {
 			pe_session->limSmeState = eLIM_SME_IDLE_STATE;
-			pe_debug("*** Deauthenticated with BSS ***");
 		} else
 			pe_session->limSmeState =
 				pe_session->limPrevSmeState;
@@ -1564,7 +1561,6 @@
 		goto end;
 	}
 	if (vdev_stop_rsp->status == QDF_STATUS_SUCCESS) {
-		pe_debug("STA received the DEL_BSS_RSP");
 		if (!sta) {
 			pe_err("DPH Entry for STA 1 missing");
 			status_code = eSIR_SME_REFUSED;
@@ -1577,8 +1573,7 @@
 			status_code = eSIR_SME_REFUSED;
 			goto end;
 		}
-		pe_debug("STA AssocID %d MAC",	sta->assocId);
-		       lim_print_mac_addr(mac, sta->staAddr, LOGD);
+		pe_debug("STA AssocID %d MAC %pM", sta->assocId, sta->staAddr);
 	} else {
 		pe_err("DEL BSS failed!");
 		status_code = eSIR_SME_STOP_BSS_FAILURE;
diff --git a/core/mac/src/pe/lim/lim_process_sme_req_messages.c b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
index 250a278..0f77974 100644
--- a/core/mac/src/pe/lim/lim_process_sme_req_messages.c
+++ b/core/mac/src/pe/lim/lim_process_sme_req_messages.c
@@ -462,7 +462,6 @@
 	session->sap_dot11mc = sme_start_bss_req->sap_dot11mc;
 	session->vendor_vht_sap =
 			sme_start_bss_req->vendor_vht_sap;
-	pe_debug("vendor_vht_sap %d", session->vendor_vht_sap);
 	lim_get_short_slot_from_phy_mode(mac_ctx, session, session->gLimPhyMode,
 		&session->shortSlotTimeSupported);
 	session->isCoalesingInIBSSAllowed =
@@ -562,7 +561,6 @@
 			      NULL, 0, 0);
 #endif /* FEATURE_WLAN_DIAG_SUPPORT */
 
-	pe_debug("Received START_BSS_REQ");
 	size = sizeof(*sme_start_bss_req);
 	sme_start_bss_req = qdf_mem_malloc(size);
 	if (!sme_start_bss_req) {
@@ -677,9 +675,6 @@
 		session->vhtCapability =
 			IS_DOT11_MODE_VHT(session->dot11mode);
 
-		pe_debug("HT[%d], VHT[%d]",
-			session->htCapability, session->vhtCapability);
-
 		if (IS_DOT11_MODE_HE(session->dot11mode)) {
 			lim_update_session_he_capable(mac_ctx, session);
 			lim_copy_bss_he_cap(session, sme_start_bss_req);
@@ -695,9 +690,8 @@
 		session->txLdpcIniFeatureEnabled =
 			sme_start_bss_req->txLdpcIniFeatureEnabled;
 #ifdef WLAN_FEATURE_11W
-		session->limRmfEnabled =
-			sme_start_bss_req->pmfCapable ? 1 : 0;
-		pe_debug("Session RMF enabled: %d", session->limRmfEnabled);
+		session->limRmfEnabled = sme_start_bss_req->pmfCapable ? 1 : 0;
+		pe_debug("RMF enabled: %d", session->limRmfEnabled);
 #endif
 
 		qdf_mem_copy((void *)&session->rateSet,
@@ -752,8 +746,6 @@
 			break;
 		}
 
-		pe_debug("persona - %d, nss - %d",
-				session->opmode, session->vdev_nss);
 		session->nss = session->vdev_nss;
 		if (!mac_ctx->mlme_cfg->vht_caps.vht_cap_info.enable2x2)
 			session->nss = 1;
@@ -789,14 +781,9 @@
 			sme_start_bss_req->sec_ch_offset;
 		session->htRecommendedTxWidthSet =
 			(session->htSecondaryChannelOffset) ? 1 : 0;
-		QDF_TRACE(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
-			  FL("cbMode %u"), sme_start_bss_req->cbMode);
 		if (lim_is_session_he_capable(session) ||
 		    session->vhtCapability || session->htCapability) {
 			chanwidth = sme_start_bss_req->vht_channel_width;
-			pe_debug("vht_channel_width %u htSupportedChannelWidthSet %d",
-				sme_start_bss_req->vht_channel_width,
-				session->htSupportedChannelWidthSet);
 			session->ch_width = chanwidth;
 			session->ch_center_freq_seg0 =
 				sme_start_bss_req->center_freq_seg0;
@@ -805,9 +792,6 @@
 			lim_update_he_bw_cap_mcs(session);
 		}
 
-		pe_debug("vht su tx bformer %d",
-			session->vht_config.su_beam_former);
-
 		/* Delete pre-auth list if any */
 		lim_delete_pre_auth_list(mac_ctx);
 
@@ -971,6 +955,13 @@
 
 		session->limPrevSmeState = session->limSmeState;
 		session->limSmeState = eLIM_SME_WT_START_BSS_STATE;
+
+		pe_debug("Freq %d width %d freq0 %d freq1 %d, dot11mode %d nss %d vendor vht %d",
+			 session->curr_op_freq, session->ch_width,
+			 session->ch_center_freq_seg0,
+			 session->ch_center_freq_seg1,
+			 session->dot11mode, session->vdev_nss,
+			 session->vendor_vht_sap);
 		MTRACE(mac_trace
 			(mac_ctx, TRACE_CODE_SME_STATE,
 			session->peSessionId,
@@ -1620,12 +1611,14 @@
 			session->spectrumMgtEnabled = true;
 
 		session->isOSENConnection = sme_join_req->isOSENConnection;
-		pe_debug("Smps %d: mode %d action %d, nss 1x1 %d vdev_nss %d nss %d cbMode %d width %d dot11mode %d subfer %d subfee %d csn %d is_cisco %d",
+		pe_debug("Freq %d width %d freq0 %d freq1 %d, Smps %d: mode %d action %d, nss 1x1 %d vdev_nss %d nss %d cbMode %d dot11mode %d subfer %d subfee %d csn %d is_cisco %d",
+			 session->curr_op_freq, session->ch_width,
+			 session->ch_center_freq_seg0,
+			 session->ch_center_freq_seg1,
 			 session->enableHtSmps, session->htSmpsvalue,
 			 session->send_smps_action, session->supported_nss_1x1,
 			 session->vdev_nss, session->nss,
-			 sme_join_req->cbMode, session->ch_width,
-			 session->dot11mode,
+			 sme_join_req->cbMode, session->dot11mode,
 			 session->vht_config.su_beam_former,
 			 session->vht_config.su_beam_formee,
 			 session->vht_config.csnof_beamformer_antSup,
@@ -2051,11 +2044,13 @@
 		disassocTrigger = eLIM_HOST_DISASSOC;
 		goto sendDisassoc;
 	}
-	pe_debug("received DISASSOC_REQ message on sessionid %d Systemrole %d Reason: %u SmeState: %d from: "
-			QDF_MAC_ADDR_STR, smesessionId,
-		GET_LIM_SYSTEM_ROLE(pe_session), smeDisassocReq.reasonCode,
-		mac->lim.gLimSmeState,
-		QDF_MAC_ADDR_ARRAY(smeDisassocReq.peer_macaddr.bytes));
+	pe_debug("vdev %d (session %d) Systemrole %d Reason: %u SmeState: %d limMlmState %d ho fail %d  send OTA %d from: "
+		 QDF_MAC_ADDR_STR, pe_session->vdev_id, pe_session->peSessionId,
+		 GET_LIM_SYSTEM_ROLE(pe_session), smeDisassocReq.reasonCode,
+		 pe_session->limSmeState, pe_session->limMlmState,
+		 smeDisassocReq.process_ho_fail,
+		 smeDisassocReq.doNotSendOverTheAir,
+		 QDF_MAC_ADDR_ARRAY(smeDisassocReq.peer_macaddr.bytes));
 
 #ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM    /* FEATURE_WLAN_DIAG_SUPPORT */
 	lim_diag_event_report(mac, WLAN_PE_DIAG_DISASSOC_REQ_EVENT, pe_session,
@@ -2063,7 +2058,6 @@
 #endif /* FEATURE_WLAN_DIAG_SUPPORT */
 
 	pe_session->smeSessionId = smesessionId;
-	pe_debug("ho_fail: %d ", smeDisassocReq.process_ho_fail);
 	pe_session->process_ho_fail = smeDisassocReq.process_ho_fail;
 
 	switch (GET_LIM_SYSTEM_ROLE(pe_session)) {
@@ -2071,8 +2065,6 @@
 		switch (pe_session->limSmeState) {
 		case eLIM_SME_ASSOCIATED_STATE:
 		case eLIM_SME_LINK_EST_STATE:
-			pe_debug("Rcvd SME_DISASSOC_REQ in limSmeState: %d ",
-				pe_session->limSmeState);
 			pe_session->limPrevSmeState =
 				pe_session->limSmeState;
 			pe_session->limSmeState = eLIM_SME_WT_DISASSOC_STATE;
@@ -2094,7 +2086,6 @@
 				       (mac, TRACE_CODE_SME_STATE,
 				       pe_session->peSessionId,
 				       pe_session->limSmeState));
-			pe_debug("Rcvd SME_DISASSOC_REQ while in SME_WT_DEAUTH_STATE");
 			break;
 
 		case eLIM_SME_WT_DISASSOC_STATE:
@@ -2107,12 +2098,10 @@
 			 * It will send a disassoc, which is ok. However, we can use the global flag
 			 * sendDisassoc to not send disassoc frame.
 			 */
-			pe_debug("Rcvd SME_DISASSOC_REQ while in SME_WT_DISASSOC_STATE");
 			break;
 
 		case eLIM_SME_JOIN_FAILURE_STATE: {
 			/* Already in Disconnected State, return success */
-			pe_debug("Rcvd SME_DISASSOC_REQ while in eLIM_SME_JOIN_FAILURE_STATE");
 			if (mac->lim.gLimRspReqd) {
 				retCode = eSIR_SME_SUCCESS;
 				disassocTrigger = eLIM_HOST_DISASSOC;
@@ -2163,14 +2152,8 @@
 	disassocTrigger = eLIM_HOST_DISASSOC;
 	reasonCode = smeDisassocReq.reasonCode;
 
-	if (smeDisassocReq.doNotSendOverTheAir) {
-		pe_debug("do not send dissoc over the air");
+	if (smeDisassocReq.doNotSendOverTheAir)
 		send_disassoc_frame = 0;
-	}
-	/* Trigger Disassociation frame to peer MAC entity */
-	pe_debug("Sending Disasscoc with disassoc Trigger"
-				" : %d, reasonCode : %d",
-			disassocTrigger, reasonCode);
 
 	pMlmDisassocReq = qdf_mem_malloc(sizeof(tLimMlmDisassocReq));
 	if (!pMlmDisassocReq)
@@ -2406,11 +2389,11 @@
 		deauth_trigger = eLIM_HOST_DEAUTH;
 		goto send_deauth;
 	}
-	pe_debug("received DEAUTH_REQ vdev_id %d Systemrole %d reasoncode %u limSmestate %d from "
-		QDF_MAC_ADDR_STR, vdev_id,
-		GET_LIM_SYSTEM_ROLE(session_entry), sme_deauth_req.reasonCode,
-		session_entry->limSmeState,
-		QDF_MAC_ADDR_ARRAY(sme_deauth_req.peer_macaddr.bytes));
+	pe_debug("vdev %d (session %d) Systemrole %d reasoncode %u limSmestate %d limMlmState %d from "
+		 QDF_MAC_ADDR_STR, vdev_id, session_entry->peSessionId,
+		 GET_LIM_SYSTEM_ROLE(session_entry), sme_deauth_req.reasonCode,
+		 session_entry->limSmeState, session_entry->limMlmState,
+		 QDF_MAC_ADDR_ARRAY(sme_deauth_req.peer_macaddr.bytes));
 #ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM    /* FEATURE_WLAN_DIAG_SUPPORT */
 	lim_diag_event_report(mac_ctx, WLAN_PE_DIAG_DEAUTH_REQ_EVENT,
 			session_entry, 0, sme_deauth_req.reasonCode);
@@ -2449,7 +2432,6 @@
 			 * was sent for deauth/disassoc frame.
 			 */
 			session_entry->limSmeState = eLIM_SME_WT_DEAUTH_STATE;
-			pe_debug("Rcvd SME_DEAUTH_REQ while in SME_WT_DEAUTH_STATE");
 			break;
 		default:
 			/*
@@ -3430,7 +3412,6 @@
 		pe_err("vdev component object is NULL");
 		return;
 	}
-	pe_debug("pe_session->ssidHidden %d", pe_session->ssidHidden);
 
 	mlme_obj->mgmt.ap.hidden_ssid = pe_session->ssidHidden ? true : false;
 
@@ -3919,9 +3900,9 @@
 	struct mgmt_frm_reg_info *next = NULL;
 	bool match = false;
 
-	pe_debug("registerFrame %d, frameType %d, matchLen %d",
-				sme_req->registerFrame, sme_req->frameType,
-				sme_req->matchLen);
+	pe_nofl_debug("Register Frame: register %d, type %d, match length %d",
+		      sme_req->registerFrame, sme_req->frameType,
+		      sme_req->matchLen);
 	/* First check whether entry exists already */
 	qdf_mutex_acquire(&mac_ctx->lim.lim_frame_register_lock);
 	qdf_list_peek_front(&mac_ctx->lim.gLimMgmtFrameRegistratinQueue,
@@ -4542,10 +4523,8 @@
 	bool bufConsumed = true;
 	uint32_t *msg_buf = pMsg->bodyptr;
 
-	pe_debug("LIM Received SME Message %s(%d) Global LimSmeState:%s(%d) Global LimMlmState: %s(%d)",
-		       lim_msg_str(pMsg->type), pMsg->type,
-		       lim_sme_state_str(mac->lim.gLimSmeState), mac->lim.gLimSmeState,
-		       lim_mlm_state_str(mac->lim.gLimMlmState), mac->lim.gLimMlmState);
+	pe_nofl_debug("LIM handle SME Msg %s(%d)",
+		      lim_msg_str(pMsg->type), pMsg->type);
 
 	/* If no insert NOA required then execute the code below */
 
@@ -4921,12 +4900,10 @@
 		session_entry->channelChangeReasonCode =
 			LIM_SWITCH_CHANNEL_MONITOR;
 
-	pe_debug("switch old chnl (freq) %d to new chnl %d, ch_bw %d, nw_type %d, dot11mode %d",
-		 session_entry->curr_op_freq,
-		 target_freq,
-		 ch_change_req->ch_width,
-		 ch_change_req->nw_type,
-		 ch_change_req->dot11mode);
+	pe_nofl_debug("SAP CSA: %d ---> %d, ch_bw %d, nw_type %d, dot11mode %d",
+		      session_entry->curr_op_freq, target_freq,
+		      ch_change_req->ch_width, ch_change_req->nw_type,
+		      ch_change_req->dot11mode);
 
 	if (IS_DOT11_MODE_HE(ch_change_req->dot11mode) &&
 		((QDF_MONITOR_MODE == session_entry->opmode) ||
@@ -5628,7 +5605,6 @@
 	 * become 0 and bcn template with new switchCount will be sent to
 	 * firmware.
 	 */
-	pe_debug("start ap_ecsa_timer for %d ms", MAX_WAIT_FOR_BCN_TX_COMPLETE);
 	status = qdf_mc_timer_start(&session_entry->ap_ecsa_timer,
 				    MAX_WAIT_FOR_BCN_TX_COMPLETE);
 	if (QDF_IS_STATUS_ERROR(status))
diff --git a/core/mac/src/pe/lim/lim_process_tdls.c b/core/mac/src/pe/lim/lim_process_tdls.c
index 5c974e3..7182cc4 100644
--- a/core/mac/src/pe/lim/lim_process_tdls.c
+++ b/core/mac/src/pe/lim/lim_process_tdls.c
@@ -2647,19 +2647,11 @@
 	sta = dph_lookup_hash_entry(mac, peerMac.bytes, &peerIdx,
 				       &pe_session->dph.dphHashTable);
 
-	if (sta && sta->staType == STA_ENTRY_TDLS_PEER) {
-		pe_debug("DEL STA peer MAC: "QDF_MAC_ADDR_STR,
-			 QDF_MAC_ADDR_ARRAY(sta->staAddr));
-
-		pe_debug("STA type: %x, resp_reqd: %d",
-			 sta->staType,
-			 resp_reqd);
-
+	if (sta && sta->staType == STA_ENTRY_TDLS_PEER)
 		status = lim_del_sta(mac, sta, resp_reqd, pe_session);
-	} else {
+	else
 		pe_debug("TDLS peer "QDF_MAC_ADDR_STR" not found",
 			 QDF_MAC_ADDR_ARRAY(peerMac.bytes));
-	}
 
 	return status;
 }
@@ -3104,7 +3096,6 @@
 	 * (with that aid) entry from the hash table and add the aid
 	 * in free pool
 	 */
-	pe_debug("Delete all the TDLS peer connected");
 	for (i = 0; i < aid_bitmap_size / sizeof(uint32_t); i++) {
 		for (aid = 0; aid < (sizeof(uint32_t) << 3); aid++) {
 			if (!CHECK_BIT(session_entry->peerAIDBitmap[i], aid))
@@ -3130,9 +3121,6 @@
 
 			status = lim_tdls_del_sta(p_mac, mac_addr,
 						  session_entry, false);
-			if (status != QDF_STATUS_SUCCESS)
-				pe_debug("peer " QDF_MAC_ADDR_STR " not found",
-					 QDF_MAC_ADDR_ARRAY(stads->staAddr));
 
 			dph_delete_hash_entry(p_mac,
 				stads->staAddr, stads->assocId,
@@ -3165,7 +3153,6 @@
 QDF_STATUS lim_delete_tdls_peers(struct mac_context *mac_ctx,
 				    struct pe_session *session_entry)
 {
-	pe_debug("Enter");
 
 	if (!session_entry) {
 		pe_err("NULL session_entry");
@@ -3192,7 +3179,6 @@
 
 	/* reset the set_state_disable flag */
 	session_entry->tdls_send_set_state_disable = true;
-	pe_debug("Exit");
 	return QDF_STATUS_SUCCESS;
 }
 
diff --git a/core/mac/src/pe/lim/lim_send_management_frames.c b/core/mac/src/pe/lim/lim_send_management_frames.c
index b5deb26..231300e 100644
--- a/core/mac/src/pe/lim/lim_send_management_frames.c
+++ b/core/mac/src/pe/lim/lim_send_management_frames.c
@@ -1524,14 +1524,9 @@
 			status);
 	}
 
-	if (subtype == LIM_ASSOC)
-		pe_debug("*** Sending Assoc Resp status %d aid %d to",
-			status_code, aid);
-	else
-		pe_debug("*** Sending ReAssoc Resp status %d aid %d to",
-			status_code, aid);
-
-	lim_print_mac_addr(mac_ctx, mac_hdr->da, LOGD);
+	pe_nofl_debug("Assoc rsp TX: vdev %d subtype %d to %pM seq num %d status %d aid %d",
+		      pe_session->vdev_id, subtype, mac_hdr->da,
+		      mac_ctx->mgmtSeqNum, status_code, aid);
 
 	if (addn_ie_len && addn_ie_len <= WNI_CFG_ASSOC_RSP_ADDNIE_DATA_LEN)
 		qdf_mem_copy(frame + sizeof(tSirMacMgmtHdr) + payload,
@@ -1742,7 +1737,7 @@
 	uint16_t reason_code;
 	struct mac_context *mac_ctx = (struct mac_context *)context;
 
-	pe_nofl_info("Assoc TX %s",
+	pe_nofl_info("Assoc req TX: %s",
 		     (tx_complete == WMI_MGMT_TX_COMP_TYPE_COMPLETE_OK) ?
 		      "success" : "fail");
 
@@ -2049,26 +2044,15 @@
 	    mac_ctx->lim.htCapabilityPresentInBeacon) {
 		pe_debug("Populate HT Caps in Assoc Request");
 		populate_dot11f_ht_caps(mac_ctx, pe_session, &frm->HTCaps);
-		QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
-				   &frm->HTCaps, sizeof(frm->HTCaps));
 	} else if (pe_session->he_with_wep_tkip) {
 		pe_debug("Populate HT Caps in Assoc Request with WEP/TKIP");
 		populate_dot11f_ht_caps(mac_ctx, NULL, &frm->HTCaps);
 	}
-	pe_debug("SupportedChnlWidth: %d, mimoPS: %d, GF: %d, short GI20:%d, shortGI40: %d, dsssCck: %d, AMPDU Param: %x",
-		frm->HTCaps.supportedChannelWidthSet,
-		frm->HTCaps.mimoPowerSave,
-		frm->HTCaps.greenField, frm->HTCaps.shortGI20MHz,
-		frm->HTCaps.shortGI40MHz,
-		frm->HTCaps.dsssCckMode40MHz,
-		frm->HTCaps.maxRxAMPDUFactor);
 
 	if (pe_session->vhtCapability &&
 	    pe_session->vhtCapabilityPresentInBeacon) {
 		pe_debug("Populate VHT IEs in Assoc Request");
 		populate_dot11f_vht_caps(mac_ctx, pe_session, &frm->VHTCaps);
-		QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
-				   &frm->VHTCaps, sizeof(frm->VHTCaps));
 		vht_enabled = true;
 		if (pe_session->enableHtSmps &&
 				!pe_session->supported_nss_1x1) {
@@ -2217,9 +2201,6 @@
 			goto end;
 		}
 		rsnx_ie_len = rsnx_ie[1] + 2;
-		pe_debug("RSNX_IE added to association request");
-		QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
-				   rsnx_ie, rsnx_ie_len);
 	}
 
 	/*
@@ -2429,9 +2410,10 @@
 	MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
 			 pe_session->peSessionId, mac_hdr->fc.subType));
 
-	pe_nofl_info("Assoc TX vdev %d to %pM seq num %d",
-		     pe_session->vdev_id, pe_session->bssId,
-		     mac_ctx->mgmtSeqNum);
+	pe_nofl_info("Assoc req TX: vdev %d to %pM seq num %d", pe_session->vdev_id,
+		     pe_session->bssId, mac_ctx->mgmtSeqNum);
+	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
+			  frame, (uint16_t)(sizeof(tSirMacMgmtHdr) + payload));
 
 	min_rid = lim_get_min_session_txrate(pe_session);
 	lim_diag_event_report(mac_ctx, WLAN_PE_DIAG_ASSOC_START_EVENT,
@@ -2550,7 +2532,7 @@
 	uint16_t auth_ack_status;
 	uint16_t reason_code;
 
-	pe_nofl_info("Auth TX %s",
+	pe_nofl_info("Auth TX: %s",
 		     (tx_complete == WMI_MGMT_TX_COMP_TYPE_COMPLETE_OK) ?
 		     "success" : "fail");
 	if (tx_complete == WMI_MGMT_TX_COMP_TYPE_COMPLETE_OK) {
@@ -2846,7 +2828,7 @@
 		}
 	}
 
-	pe_nofl_info("Auth TX seq %d seq num %d status %d WEP %d to " QDF_MAC_ADDR_STR,
+	pe_nofl_info("Auth TX: seq %d seq num %d status %d WEP %d to " QDF_MAC_ADDR_STR,
 		     auth_frame->authTransactionSeqNumber, mac_ctx->mgmtSeqNum,
 		     auth_frame->authStatusCode, mac_hdr->fc.wep,
 		     QDF_MAC_ADDR_ARRAY(mac_hdr->da));
@@ -3291,11 +3273,10 @@
 				&nPayload, discon_ie);
 	mlme_free_self_disconnect_ies(pe_session->vdev);
 
-	pe_debug("***Sessionid %d Sending Disassociation frame with "
-		   "reason %u and waitForAck %d to " QDF_MAC_ADDR_STR " ,From "
-		   QDF_MAC_ADDR_STR, pe_session->peSessionId, nReason,
-		waitForAck, QDF_MAC_ADDR_ARRAY(pMacHdr->da),
-		QDF_MAC_ADDR_ARRAY(pe_session->self_mac_addr));
+	pe_nofl_info("Disassoc TX: vdev %d seq %d reason %u and waitForAck %d to " QDF_MAC_ADDR_STR " From " QDF_MAC_ADDR_STR,
+		     pe_session->vdev_id, mac->mgmtSeqNum, nReason, waitForAck,
+		     QDF_MAC_ADDR_ARRAY(pMacHdr->da),
+		     QDF_MAC_ADDR_ARRAY(pe_session->self_mac_addr));
 
 	if (wlan_reg_is_5ghz_ch_freq(pe_session->curr_op_freq) ||
 	    pe_session->opmode == QDF_P2P_CLIENT_MODE ||
@@ -3480,9 +3461,8 @@
 				&nPayload, discon_ie);
 	mlme_free_self_disconnect_ies(pe_session->vdev);
 
-	pe_nofl_info("vdev %d Deauth TX seq_num %d reason %u to " QDF_MAC_ADDR_STR
-		     " from " QDF_MAC_ADDR_STR,
-		     pe_session->vdev_id, mac->mgmtSeqNum, nReason,
+	pe_nofl_info("Deauth TX: vdev %d seq_num %d reason %u waitForAck %d to " QDF_MAC_ADDR_STR " from " QDF_MAC_ADDR_STR,
+		     pe_session->vdev_id, mac->mgmtSeqNum, nReason, waitForAck,
 		     QDF_MAC_ADDR_ARRAY(pMacHdr->da),
 		     QDF_MAC_ADDR_ARRAY(pe_session->self_mac_addr));
 
@@ -3992,7 +3972,6 @@
 	ch_spacing = wlan_reg_dmn_get_chanwidth_from_opclass(
 			mac_ctx->scan.countryCodeCurrent, new_channel,
 			new_op_class);
-	pe_debug("wrapper: ch_spacing %hu", ch_spacing);
 
 	if ((ch_spacing == 80) || (ch_spacing == 160)) {
 		wide_bw_ie = &session_entry->gLimWiderBWChannelSwitch;
@@ -4061,12 +4040,12 @@
 	    session_entry->opmode == QDF_P2P_GO_MODE)
 		txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
 
-	pe_debug("Send Ext channel Switch to :"QDF_MAC_ADDR_STR" with swcount %d, swmode %d , newchannel %d newops %d",
-		QDF_MAC_ADDR_ARRAY(mac_hdr->da),
-		frm.ext_chan_switch_ann_action.switch_count,
-		frm.ext_chan_switch_ann_action.switch_mode,
-		frm.ext_chan_switch_ann_action.new_channel,
-			 frm.ext_chan_switch_ann_action.op_class);
+	pe_debug("ECSA frame to :"QDF_MAC_ADDR_STR" count %d mode %d chan %d op class %d",
+		 QDF_MAC_ADDR_ARRAY(mac_hdr->da),
+		 frm.ext_chan_switch_ann_action.switch_count,
+		 frm.ext_chan_switch_ann_action.switch_mode,
+		 frm.ext_chan_switch_ann_action.new_channel,
+		 frm.ext_chan_switch_ann_action.op_class);
 
 	MTRACE(qdf_trace(QDF_MODULE_ID_PE, TRACE_CODE_TX_MGMT,
 			session_entry->peSessionId, mac_hdr->fc.subType));
diff --git a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
index 0e6a32f..cb40b41 100644
--- a/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
+++ b/core/mac/src/pe/lim/lim_send_sme_rsp_messages.c
@@ -1443,11 +1443,6 @@
 
 	ap_new_ch_width = csa_params->new_ch_width + 1;
 
-	pe_debug("new channel: %d new_ch_width: %d seg0: %d seg1: %d",
-		 csa_params->channel, ap_new_ch_width,
-		 csa_params->new_ch_freq_seg1,
-		 csa_params->new_ch_freq_seg2);
-
 	if ((ap_new_ch_width != CH_WIDTH_80MHZ) &&
 			(ap_new_ch_width != CH_WIDTH_160MHZ) &&
 			(ap_new_ch_width != CH_WIDTH_80P80MHZ)) {
@@ -1546,11 +1541,6 @@
 		chnl_switch_info->newChanWidth = ap_new_ch_width;
 	}
 prnt_log:
-	pe_debug("new channel: %d new_ch_width: %d seg0: %d seg1: %d",
-			csa_params->channel,
-			chnl_switch_info->newChanWidth,
-			chnl_switch_info->newCenterChanFreq0,
-			chnl_switch_info->newCenterChanFreq1);
 
 	return QDF_STATUS_SUCCESS;
 }
@@ -1578,8 +1568,6 @@
 	tLimWiderBWChannelSwitchInfo *chnl_switch_info = NULL;
 	tLimChannelSwitchInfo *lim_ch_switch = NULL;
 
-	pe_debug("handle csa offload msg");
-
 	if (!csa_params) {
 		pe_err("limMsgQ body ptr is NULL");
 		return;
@@ -1641,21 +1629,12 @@
 			mac_ctx->roam.configParam.channelBondingMode5GHz;
 	}
 
-	pe_debug("vht: %d ht: %d he %d flag: %x chan: %d, sec_ch_offset %d cbmode %d",
+	pe_debug("Session %d vdev %d: vht: %d ht: %d he %d cbmode %d",
+		 session_entry->peSessionId, session_entry->vdev_id,
 		 session_entry->vhtCapability,
 		 session_entry->htSupportedChannelWidthSet,
 		 lim_is_session_he_capable(session_entry),
-		 csa_params->ies_present_flag,
-		 csa_params->channel,
-		 csa_params->sec_chan_offset,
 		 channel_bonding_mode);
-	pe_debug("freq %d seg1: %d seg2: %d width: %d country: %s class: %d",
-		 csa_params->csa_chan_freq,
-		 csa_params->new_ch_freq_seg1,
-		 csa_params->new_ch_freq_seg2,
-		 csa_params->new_ch_width,
-		 mac_ctx->scan.countryCodeCurrent,
-		 csa_params->new_op_class);
 
 	session_entry->htSupportedChannelWidthSet = false;
 
@@ -1666,7 +1645,6 @@
 			(QDF_STATUS_SUCCESS == lim_process_csa_wbw_ie(mac_ctx,
 					csa_params, chnl_switch_info,
 					session_entry))) {
-			pe_debug("CSA wide BW IE process successful");
 			lim_ch_switch->sec_ch_offset =
 				PHY_SINGLE_CHANNEL_CENTERED;
 			if (chnl_switch_info->newChanWidth) {
@@ -1811,9 +1789,14 @@
 			session_entry->htSupportedChannelWidthSet = true;
 		}
 	}
-	pe_debug("new ch width: %d space: %d new ht width %d",
-			session_entry->gLimChannelSwitch.ch_width, chan_space,
-			session_entry->htSupportedChannelWidthSet);
+	pe_debug("new ch %d freq %d width: %d freq0 %d freq1 %d ht width %d",
+		 session_entry->gLimChannelSwitch.primaryChannel,
+		 session_entry->gLimChannelSwitch.sw_target_freq,
+		 session_entry->gLimChannelSwitch.ch_width,
+		 session_entry->gLimChannelSwitch.ch_center_freq_seg0,
+		 session_entry->gLimChannelSwitch.ch_center_freq_seg1,
+		 session_entry->gLimChannelSwitch.sec_ch_offset);
+
 	if (session_entry->curr_op_freq == csa_params->csa_chan_freq &&
 	    session_entry->ch_width ==
 			session_entry->gLimChannelSwitch.ch_width) {
diff --git a/core/mac/src/pe/lim/lim_session.c b/core/mac/src/pe/lim/lim_session.c
index ec6fa16..abc8b87 100644
--- a/core/mac/src/pe/lim/lim_session.c
+++ b/core/mac/src/pe/lim/lim_session.c
@@ -1035,8 +1035,7 @@
 		}
 	}
 
-	pe_debug("Session lookup fails for Peer StaId:");
-	lim_print_mac_addr(mac, sa, LOGD);
+	pe_debug("Session lookup fails for Peer StaId: %pM", sa);
 	return NULL;
 }
 
diff --git a/core/mac/src/pe/lim/lim_trace.c b/core/mac/src/pe/lim/lim_trace.c
index 99f7622..3077b81 100644
--- a/core/mac/src/pe/lim/lim_trace.c
+++ b/core/mac/src/pe/lim/lim_trace.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -115,139 +115,139 @@
 
 	switch (pRecord->code) {
 	case TRACE_CODE_MLM_STATE:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			"MLM State:",
-			lim_trace_get_mlm_state_string(
-						(uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			     "MLM State:",
+			      lim_trace_get_mlm_state_string(
+						(uint16_t)pRecord->data),
+			      pRecord->data);
 		break;
 	case TRACE_CODE_SME_STATE:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			"SME State:",
-			lim_trace_get_sme_state_string(
-						(uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			     "SME State:",
+			     lim_trace_get_sme_state_string(
+						(uint16_t)pRecord->data),
+			     pRecord->data);
 		break;
 	case TRACE_CODE_TX_MGMT:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			"TX Mgmt:", frameSubtypeStr[pRecord->data],
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			      "TX Mgmt:", frameSubtypeStr[pRecord->data],
+			      pRecord->data);
 		break;
 
 	case TRACE_CODE_RX_MGMT:
 		if (LIM_TRACE_MAX_SUBTYPES <=
 		    LIM_TRACE_GET_SUBTYPE(pRecord->data))
-			pe_debug("Wrong Subtype - %d",
-				LIM_TRACE_GET_SUBTYPE(pRecord->data));
+			pe_nofl_debug("Wrong Subtype - %d",
+				      LIM_TRACE_GET_SUBTYPE(pRecord->data));
 		else
-			pe_debug("%04d %012llu %s S%d %-14s %-30s(%d) SN: %d",
-				recIndex, pRecord->qtime, pRecord->time,
-				pRecord->session, "RX Mgmt:",
-				frameSubtypeStr[LIM_TRACE_GET_SUBTYPE
+			pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(%d) SN: %d",
+				      recIndex, pRecord->qtime, pRecord->time,
+				      pRecord->session, "RX Mgmt:",
+				      frameSubtypeStr[LIM_TRACE_GET_SUBTYPE
 							(pRecord->data)],
-				LIM_TRACE_GET_SUBTYPE(pRecord->data),
-				LIM_TRACE_GET_SSN(pRecord->data));
+				      LIM_TRACE_GET_SUBTYPE(pRecord->data),
+				      LIM_TRACE_GET_SSN(pRecord->data));
 		break;
 	case TRACE_CODE_RX_MGMT_DROP:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(%d)",
-			recIndex, pRecord->qtime, pRecord->time,
-			pRecord->session, "Drop RX Mgmt:",
-			__lim_trace_get_mgmt_drop_reason_string(
-					(uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(%d)",
+			      recIndex, pRecord->qtime, pRecord->time,
+			      pRecord->session, "Drop RX Mgmt:",
+			      __lim_trace_get_mgmt_drop_reason_string(
+					(uint16_t)pRecord->data),
+			      pRecord->data);
 		break;
 
 	case TRACE_CODE_RX_MGMT_TSF:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s0x%x(%d)",
-			recIndex, pRecord->qtime, pRecord->time,
-			pRecord->session, "RX Mgmt TSF:", " ",
-			pRecord->data, pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s0x%x(%d)",
+			      recIndex, pRecord->qtime, pRecord->time,
+			      pRecord->session, "RX Mgmt TSF:", " ",
+			      pRecord->data, pRecord->data);
 		break;
 
 	case TRACE_CODE_TX_COMPLETE:
-		pe_debug("%04d %012llu %s S%d %-14s %d", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			"TX Complete", pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %d", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			      "TX Complete", pRecord->data);
 		break;
 
 	case TRACE_CODE_TX_SME_MSG:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			"TX SME Msg:",
-			mac_trace_get_sme_msg_string((uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			      "TX SME Msg:",
+			      mac_trace_get_sme_msg_string((uint16_t)pRecord->data),
+			      pRecord->data);
 		break;
 	case TRACE_CODE_RX_SME_MSG:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			LIM_TRACE_GET_DEFRD_OR_DROPPED(
-			pRecord->data) ? "Def/Drp LIM Msg:" : "RX Sme Msg:",
-			mac_trace_get_sme_msg_string((uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			      LIM_TRACE_GET_DEFRD_OR_DROPPED(
+			      pRecord->data) ? "Def/Drp LIM Msg:" : "RX Sme Msg:",
+			      mac_trace_get_sme_msg_string((uint16_t)pRecord->data),
+			      pRecord->data);
 		break;
 
 	case TRACE_CODE_TX_WMA_MSG:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			"TX WMA Msg:",
-			mac_trace_get_wma_msg_string((uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			      "TX WMA Msg:",
+			      mac_trace_get_wma_msg_string((uint16_t)pRecord->data),
+			      pRecord->data);
 		break;
 
 	case TRACE_CODE_RX_WMA_MSG:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			LIM_TRACE_GET_DEFRD_OR_DROPPED(
-			pRecord->data) ? "Def/Drp LIM Msg:" : "RX WMA Msg:",
-			mac_trace_get_wma_msg_string((uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			      LIM_TRACE_GET_DEFRD_OR_DROPPED(
+			      pRecord->data) ? "Def/Drp LIM Msg:" : "RX WMA Msg:",
+			      mac_trace_get_wma_msg_string((uint16_t)pRecord->data),
+			      pRecord->data);
 		break;
 
 	case TRACE_CODE_TX_LIM_MSG:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			"TX LIM Msg:",
-			mac_trace_get_lim_msg_string((uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			      "TX LIM Msg:",
+			      mac_trace_get_lim_msg_string((uint16_t)pRecord->data),
+			      pRecord->data);
 		break;
 	case TRACE_CODE_RX_LIM_MSG:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			LIM_TRACE_GET_DEFRD_OR_DROPPED(
-			pRecord->data) ? "Def/Drp LIM Msg:" : "RX LIM Msg",
-			mac_trace_get_lim_msg_string((uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			      LIM_TRACE_GET_DEFRD_OR_DROPPED(
+			      pRecord->data) ? "Def/Drp LIM Msg:" : "RX LIM Msg",
+			      mac_trace_get_lim_msg_string((uint16_t)pRecord->data),
+			      pRecord->data);
 		break;
 	case TRACE_CODE_TIMER_ACTIVATE:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			"Timer Actvtd",
-			__lim_trace_get_timer_string((uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			      "Timer Actvtd",
+			      __lim_trace_get_timer_string((uint16_t)pRecord->data),
+			      pRecord->data);
 		break;
 	case TRACE_CODE_TIMER_DEACTIVATE:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
-			pRecord->qtime, pRecord->time, pRecord->session,
-			"Timer DeActvtd",
-			__lim_trace_get_timer_string((uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)", recIndex,
+			      pRecord->qtime, pRecord->time, pRecord->session,
+			      "Timer DeActvtd",
+			      __lim_trace_get_timer_string((uint16_t)pRecord->data),
+			      pRecord->data);
 		break;
 
 	case TRACE_CODE_INFO_LOG:
-		pe_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
-			recIndex, pRecord->qtime, pRecord->time,
-			pRecord->session, "INFORMATION_LOG",
-			mac_trace_get_info_log_string((uint16_t) pRecord->data),
-			pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+			      recIndex, pRecord->qtime, pRecord->time,
+			      pRecord->session, "INFORMATION_LOG",
+			      mac_trace_get_info_log_string((uint16_t)pRecord->data),
+			      pRecord->data);
 		break;
 	default:
-		pe_debug("%04d %012llu %s S%d %-14s(%d) (0x%x)",
-			recIndex, pRecord->qtime, pRecord->time,
-			pRecord->session, "Unknown Code",
-			pRecord->code, pRecord->data);
+		pe_nofl_debug("%04d %012llu %s S%d %-14s(%d) (0x%x)",
+			      recIndex, pRecord->qtime, pRecord->time,
+			      pRecord->session, "Unknown Code",
+			      pRecord->code, pRecord->data);
 		break;
 	}
 }
diff --git a/core/mac/src/pe/lim/lim_utils.c b/core/mac/src/pe/lim/lim_utils.c
index 6af1067..8ff8277 100644
--- a/core/mac/src/pe/lim/lim_utils.c
+++ b/core/mac/src/pe/lim/lim_utils.c
@@ -359,7 +359,7 @@
 	case eWNI_SME_HW_MODE_TRANS_IND:
 		return "eWNI_SME_HW_MODE_TRANS_IND";
 	default:
-		return "INVALID SME message";
+		return "Unknown";
 	}
 }
 
@@ -428,7 +428,7 @@
 		return "eSIR_SME_HAL_SEND_MESSAGE_FAIL";
 
 	default:
-		return "INVALID resultCode";
+		return "Unknown resultCode";
 	}
 }
 
@@ -710,7 +710,7 @@
 			cds_flush_logs(WLAN_LOG_TYPE_NON_FATAL,
 				WLAN_LOG_INDICATOR_HOST_DRIVER,
 				WLAN_LOG_REASON_QUEUE_FULL,
-				true, false);
+				false, false);
 		} else {
 			mac_ctx->lim.deferredMsgCnt++;
 		}
@@ -1880,7 +1880,6 @@
 	}
 	switch (pe_session->gLimChannelSwitch.state) {
 	case eLIM_CHANNEL_SWITCH_PRIMARY_ONLY:
-		pe_warn("CHANNEL_SWITCH_PRIMARY_ONLY");
 		lim_switch_primary_channel(mac,
 					   pe_session->gLimChannelSwitch.
 					   sw_target_freq, pe_session);
@@ -1888,7 +1887,6 @@
 			eLIM_CHANNEL_SWITCH_IDLE;
 		break;
 	case eLIM_CHANNEL_SWITCH_PRIMARY_AND_SECONDARY:
-		pe_warn("CHANNEL_SWITCH_PRIMARY_AND_SECONDARY");
 		lim_switch_primary_secondary_channel(mac, pe_session,
 			pe_session->gLimChannelSwitch.sw_target_freq,
 			pe_session->gLimChannelSwitch.ch_center_freq_seg0,
@@ -2217,16 +2215,6 @@
 			pe_session->gLimChannelSwitch.ch_center_freq_seg1;
 
 	pSirSmeSwitchChInd->status = status;
-	pe_debug(
-		"session: %d freq: %d width: %d sec offset: %d seg0: %d seg1: %d status %d",
-		pSirSmeSwitchChInd->sessionId,
-		pSirSmeSwitchChInd->freq,
-		pSirSmeSwitchChInd->chan_params.ch_width,
-		pSirSmeSwitchChInd->chan_params.sec_ch_offset,
-		pSirSmeSwitchChInd->chan_params.center_freq_seg0,
-		pSirSmeSwitchChInd->chan_params.center_freq_seg1,
-		status);
-
 	qdf_mem_copy(pSirSmeSwitchChInd->bssid.bytes, pe_session->bssId,
 		     QDF_MAC_ADDR_SIZE);
 	mmhMsg.bodyptr = pSirSmeSwitchChInd;
@@ -2245,8 +2233,7 @@
 				uint32_t new_channel_freq,
 				struct pe_session *pe_session)
 {
-	pe_debug("old chnl freq: %d --> new chnl freq: %d",
-		 pe_session->curr_op_freq,
+	pe_debug("freq: %d --> freq: %d", pe_session->curr_op_freq,
 		 new_channel_freq);
 
 	pe_session->curr_req_chan_freq = new_channel_freq;
@@ -2282,14 +2269,13 @@
 
 	/* Store the new primary and secondary channel in session entries if different */
 	if (pe_session->curr_op_freq != new_channel_freq) {
-		pe_warn("switch old chnl freq: %d --> new chnl freq: %d",
-			pe_session->curr_op_freq,
+		pe_warn("freq: %d --> freq: %d", pe_session->curr_op_freq,
 			new_channel_freq);
 		pe_session->curr_op_freq = new_channel_freq;
 	}
 	if (pe_session->htSecondaryChannelOffset !=
 			pe_session->gLimChannelSwitch.sec_ch_offset) {
-		pe_warn("switch old sec chnl: %d --> new sec chnl: %d",
+		pe_warn("HT sec chnl: %d --> HT sec chnl: %d",
 			pe_session->htSecondaryChannelOffset,
 			pe_session->gLimChannelSwitch.sec_ch_offset);
 		pe_session->htSecondaryChannelOffset =
@@ -5756,6 +5742,9 @@
 
 	status = lim_send_he_caps_ie(mac_ctx, session, vdev_id);
 
+	if (QDF_IS_STATUS_SUCCESS(status))
+		status = lim_send_he_6g_band_caps_ie(mac_ctx, session, vdev_id);
+
 	return status;
 }
 
@@ -5985,9 +5974,6 @@
 		pe_err("dot11f_unpack Parse Error");
 		return QDF_STATUS_E_FAILURE;
 	}
-	if (dst->num_classes)
-		QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
-				   &dst->classes[0], dst->num_classes);
 
 	return QDF_STATUS_SUCCESS;
 }
@@ -6942,174 +6928,99 @@
 	if (!he_cap->present)
 		return;
 
-	pe_debug("HE Capabilities:");
+	pe_nofl_debug("HE Capabilities: htc_he 0x%x twt_req 0x%x twt_res 0x%x fragmentation 0x%x max frag msdu amsdu 0x%x min frag 0x%x",
+		      he_cap->htc_he, he_cap->twt_request,
+		      he_cap->twt_responder, he_cap->fragmentation,
+		      he_cap->max_num_frag_msdu_amsdu_exp,
+		      he_cap->min_frag_size);
+	pe_nofl_debug("\ttrig frm mac pad 0x%x multi tid aggr supp 0x%x link adaptaion 0x%x all ack 0x%x trigd_rsp_sched 0x%x a_bsr 0x%x",
+		      he_cap->trigger_frm_mac_pad,
+		      he_cap->multi_tid_aggr_rx_supp,
+		      he_cap->he_link_adaptation, he_cap->all_ack,
+		      he_cap->trigd_rsp_sched, he_cap->a_bsr);
+	pe_nofl_debug("\tBC twt 0x%x ba_32bit_bitmap supp 0x%x mu_cascade 0x%x ack_enabled_multitid 0x%x omi_a_ctrl 0x%x ofdma_ra 0x%x",
+		      he_cap->broadcast_twt, he_cap->ba_32bit_bitmap,
+		      he_cap->mu_cascade, he_cap->ack_enabled_multitid,
+		      he_cap->omi_a_ctrl, he_cap->ofdma_ra);
+	pe_nofl_debug("\tmax_ampdu_len exp ext 0x%x amsdu_frag 0x%x flex_twt_sched 0x%x rx_ctrl frm 0x%x bsrp_ampdu_aggr 0x%x qtp 0x%x a_bqr 0x%x",
+		      he_cap->max_ampdu_len_exp_ext, he_cap->amsdu_frag,
+		      he_cap->flex_twt_sched, he_cap->rx_ctrl_frame,
+		      he_cap->bsrp_ampdu_aggr, he_cap->qtp, he_cap->a_bqr);
+	pe_nofl_debug("\tSR Reponder 0x%x ndp_feedback 0x%x ops_supp 0x%x amsdu_in_ampdu 0x%x multi_tid_aggr_tx 0x%x he_sub_ch_sel_tx 0x%x",
+		      he_cap->spatial_reuse_param_rspder,
+		      he_cap->ndp_feedback_supp,
+		      he_cap->ops_supp, he_cap->amsdu_in_ampdu,
+		      he_cap->multi_tid_aggr_tx_supp,
+		      he_cap->he_sub_ch_sel_tx_supp);
 
-	/* HE MAC capabilities */
-	pe_debug("\tHTC-HE conrol: 0x%01x", he_cap->htc_he);
-	pe_debug("\tTWT Requestor support: 0x%01x",
-			he_cap->twt_request);
-	pe_debug("\tTWT Responder support: 0x%01x",
-			he_cap->twt_responder);
-	pe_debug("\tFragmentation support: 0x%02x",
-			he_cap->fragmentation);
-	pe_debug("\tMax no.of frag MSDUs: 0x%03x",
-			he_cap->max_num_frag_msdu_amsdu_exp);
-	pe_debug("\tMin. frag size: 0x%02x", he_cap->min_frag_size);
-	pe_debug("\tTrigger MAC pad duration: 0x%02x",
-			he_cap->trigger_frm_mac_pad);
-	pe_debug("\tMulti-TID aggr Rx support: 0x%03x",
-		 he_cap->multi_tid_aggr_rx_supp);
-	pe_debug("\tLink adaptation: 0x%02x",
-			he_cap->he_link_adaptation);
-	pe_debug("\tAll ACK support: 0x%01x", he_cap->all_ack);
-	pe_debug("\tTriggered resp. scheduling: 0x%01x",
-		 he_cap->trigd_rsp_sched);
-	pe_debug("\tA-Buff status report: 0x%01x", he_cap->a_bsr);
-	pe_debug("\tBroadcast TWT support: 0x%01x",
-			he_cap->broadcast_twt);
-	pe_debug("\t32bit BA bitmap support: 0x%01x",
-			he_cap->ba_32bit_bitmap);
-	pe_debug("\tMU Cascading support: 0x%01x",
-			he_cap->mu_cascade);
-	pe_debug("\tACK enabled Multi-TID: 0x%01x",
-			he_cap->ack_enabled_multitid);
-	pe_debug("\tOMI A-Control support: 0x%01x",
-			he_cap->omi_a_ctrl);
-	pe_debug("\tOFDMA RA support: 0x%01x", he_cap->ofdma_ra);
-	pe_debug("\tMax A-MPDU Length: 0x%02x",
-			he_cap->max_ampdu_len_exp_ext);
-	pe_debug("\tA-MSDU Fragmentation: 0x%01x",
-			he_cap->amsdu_frag);
-	pe_debug("\tFlex. TWT sched support: 0x%01x",
-			he_cap->flex_twt_sched);
-	pe_debug("\tRx Ctrl frame to MBSS: 0x%01x",
-			he_cap->rx_ctrl_frame);
-	pe_debug("\tBSRP A-MPDU Aggregation: 0x%01x",
-			he_cap->bsrp_ampdu_aggr);
-	pe_debug("\tQuite Time Period support: 0x%01x", he_cap->qtp);
-	pe_debug("\tA-BQR support: 0x%01x", he_cap->a_bqr);
-	pe_debug("\tSR Reponder support: 0x%01x",
-		 he_cap->spatial_reuse_param_rspder);
-	pe_debug("\tNDP Feedback support: 0x%01x", he_cap->ndp_feedback_supp);
-	pe_debug("\tOPS support: 0x%01x", he_cap->ops_supp);
-	pe_debug("\tAMSDU in AMPDU: 0x%01x", he_cap->amsdu_in_ampdu);
-	pe_debug("\tMulti-TID aggr Tx support: 0x%03x",
-		 he_cap->multi_tid_aggr_tx_supp);
-	pe_debug("\tHE sub ch sel tx supp: 0x%01x",
-		 he_cap->he_sub_ch_sel_tx_supp);
-	pe_debug("\tUL 2x996 tone RU supp: 0x%01x",
-		 he_cap->ul_2x996_tone_ru_supp);
-	pe_debug("\tOM ctrl UL MU data dis rx supp: 0x%01x",
-		 he_cap->om_ctrl_ul_mu_data_dis_rx);
-	pe_debug("\tHE dynamic SMPS supp: 0x%01x",
-		 he_cap->he_dynamic_smps);
-	pe_debug("\tPunctured sounding supp: 0x%01x",
-		 he_cap->punctured_sounding_supp);
-	pe_debug("\tHT VHT Trigger frame Rx supp: 0x%01x",
-		 he_cap->ht_vht_trg_frm_rx_supp);
-	/* HE PHY capabilities */
+	pe_nofl_debug("\tul_2x996_tone_ru 0x%x om_ctrl_ul_mu_data_dis_rx 0x%x dynamic_smps 0x%x punctured_sounding 0x%x ht_vht_trg_frm_rx 0x%x",
+		      he_cap->ul_2x996_tone_ru_supp,
+		      he_cap->om_ctrl_ul_mu_data_dis_rx,
+		      he_cap->he_dynamic_smps, he_cap->punctured_sounding_supp,
+		      he_cap->ht_vht_trg_frm_rx_supp);
+
 	chan_width = HE_CH_WIDTH_COMBINE(he_cap->chan_width_0,
 			he_cap->chan_width_1, he_cap->chan_width_2,
 			he_cap->chan_width_3, he_cap->chan_width_4,
 			he_cap->chan_width_5, he_cap->chan_width_6);
 
-	pe_debug("\tChannel width support: 0x%07x", chan_width);
-	pe_debug("\tPreamble puncturing Rx: 0x%04x",
-			he_cap->rx_pream_puncturing);
-	pe_debug("\tClass of device: 0x%01x", he_cap->device_class);
-	pe_debug("\tLDPC coding support: 0x%01x",
-			he_cap->ldpc_coding);
-	pe_debug("\tLTF and GI for HE PPDUs: 0x%02x",
-			he_cap->he_1x_ltf_800_gi_ppdu);
-	pe_debug("\tMidamble TX Rx MAX NSTS: 0x%02x",
-		 he_cap->midamble_tx_rx_max_nsts);
-	pe_debug("\tLTF and GI for NDP: 0x%02x",
-			he_cap->he_4x_ltf_3200_gi_ndp);
-	pe_debug("\tSTBC Tx support (<= 80MHz): 0x%01x",
-		 he_cap->tb_ppdu_tx_stbc_lt_80mhz);
-	pe_debug("\tSTBC Rx support (<= 80MHz): 0x%01x",
-		 he_cap->rx_stbc_lt_80mhz);
-	pe_debug("\tDoppler support: 0x%02x", he_cap->doppler);
-	pe_debug("\tUL MU: 0x%02x", he_cap->ul_mu);
-	pe_debug("\tDCM encoding Tx: 0x%03x", he_cap->dcm_enc_tx);
-	pe_debug("\tDCM encoding Rx: 0x%03x", he_cap->dcm_enc_rx);
-	pe_debug("\tHE MU PPDU payload support: 0x%01x",
-			he_cap->ul_he_mu);
-	pe_debug("\tSU Beamformer: 0x%01x", he_cap->su_beamformer);
-	pe_debug("\tSU Beamformee: 0x%01x", he_cap->su_beamformee);
-	pe_debug("\tMU Beamformer: 0x%01x", he_cap->mu_beamformer);
-	pe_debug("\tBeamformee STS for <= 80Mhz: 0x%03x",
-			he_cap->bfee_sts_lt_80);
-	pe_debug("\tBeamformee STS for > 80Mhz: 0x%03x",
-			he_cap->bfee_sts_gt_80);
-	pe_debug("\tNo. of sounding dim <= 80Mhz: 0x%03x",
-			he_cap->num_sounding_lt_80);
-	pe_debug("\tNo. of sounding dim > 80Mhz: 0x%03x",
-			he_cap->num_sounding_gt_80);
-	pe_debug("\tNg=16 for SU feedback support: 0x%01x",
-			he_cap->su_feedback_tone16);
-	pe_debug("\tNg=16 for MU feedback support: 0x%01x",
-			he_cap->mu_feedback_tone16);
-	pe_debug("\tCodebook size for SU: 0x%01x",
-			he_cap->codebook_su);
-	pe_debug("\tCodebook size for MU: 0x%01x ",
-			he_cap->codebook_mu);
-	pe_debug("\tBeamforming trigger w/ Trigger: 0x%01x",
-			he_cap->beamforming_feedback);
-	pe_debug("\tHE ER SU PPDU payload: 0x%01x",
-			he_cap->he_er_su_ppdu);
-	pe_debug("\tDL MUMIMO on partial BW: 0x%01x",
-			he_cap->dl_mu_mimo_part_bw);
-	pe_debug("\tPPET present: 0x%01x", he_cap->ppet_present);
-	pe_debug("\tSRP based SR-support: 0x%01x", he_cap->srp);
-	pe_debug("\tPower boost factor: 0x%01x", he_cap->power_boost);
-	pe_debug("\t4x HE LTF support: 0x%01x", he_cap->he_ltf_800_gi_4x);
-	pe_debug("\tSTBC Tx support (> 80MHz): 0x%01x",
-		 he_cap->tb_ppdu_tx_stbc_gt_80mhz);
-	pe_debug("\tSTBC Rx support (> 80MHz): 0x%01x",
-		 he_cap->rx_stbc_gt_80mhz);
-	pe_debug("\tMax Nc: 0x%03x", he_cap->max_nc);
-	pe_debug("\tER 4x HE LTF support: 0x%01x", he_cap->er_he_ltf_800_gi_4x);
-	pe_debug("\tHE ppdu 20 in 40M in 2.4G: 0x%01x",
-		 he_cap->he_ppdu_20_in_40Mhz_2G);
-	pe_debug("\tHE ppdu 20 in 160 and 80p80: 0x%01x",
-		 he_cap->he_ppdu_20_in_160_80p80Mhz);
-	pe_debug("\tHE ppdu 80 in 160 and 80p80: 0x%01x",
-		 he_cap->he_ppdu_80_in_160_80p80Mhz);
-	pe_debug("\tER 1x HE LTF GI support: 0x%01x",
-		 he_cap->er_1x_he_ltf_gi);
-	pe_debug("\tmidamble txrx 1x he LTF: 0x%01x",
-		 he_cap->midamble_tx_rx_1x_he_ltf);
-	pe_debug("\tDCM max BW: 0x%02x",
-		 he_cap->dcm_max_bw);
-	pe_debug("\tlonger_than_16_he_sigb_ofdm_sym: 0x%01x",
-		 he_cap->longer_than_16_he_sigb_ofdm_sym);
-	pe_debug("\tnon_trig_cqi_feedback: 0x%01x",
-		 he_cap->non_trig_cqi_feedback);
-	pe_debug("\ttx_1024_qam_lt_242_tone_ru: 0x%01x",
-		 he_cap->tx_1024_qam_lt_242_tone_ru);
-	pe_debug("\trx_1024_qam_lt_242_tone_ru: 0x%01x",
-		 he_cap->rx_1024_qam_lt_242_tone_ru);
-	pe_debug("\trx_full_bw_su_he_mu_compress_sigb: 0x%01x",
-		 he_cap->rx_full_bw_su_he_mu_compress_sigb);
-	pe_debug("\trx_full_bw_su_he_mu_non_cmpr_sigb: 0x%01x",
-		 he_cap->rx_full_bw_su_he_mu_non_cmpr_sigb);
-	pe_debug("\tRx MCS map for <= 80 Mhz: 0x%04x",
-		he_cap->rx_he_mcs_map_lt_80);
-	pe_debug("\tTx MCS map for <= 80 Mhz: 0x%04x",
-		he_cap->tx_he_mcs_map_lt_80);
-	pe_debug("\tRx MCS map for <= 160 Mhz: 0x%04x",
-		*((uint16_t *)he_cap->rx_he_mcs_map_160));
-	pe_debug("\tTx MCS map for <= 160 Mhz: 0x%04x",
-		*((uint16_t *)he_cap->tx_he_mcs_map_160));
-	pe_debug("\tRx MCS map for <= 80+80 Mhz: 0x%04x",
-		*((uint16_t *)he_cap->rx_he_mcs_map_80_80));
-	pe_debug("\tTx MCS map for <= 80+80 Mhz: 0x%04x",
-		*((uint16_t *)he_cap->tx_he_mcs_map_80_80));
+	pe_nofl_debug("\tchan width %d rx_pream_puncturing 0x%x device_class 0x%x ldpc_coding 0x%x 1x_ltf_800_gi_ppdu 0x%x midamble_tx_rx_max_nsts 0x%x",
+		      chan_width, he_cap->rx_pream_puncturing,
+		      he_cap->device_class,
+		      he_cap->ldpc_coding, he_cap->he_1x_ltf_800_gi_ppdu,
+		      he_cap->midamble_tx_rx_max_nsts);
+
+	pe_nofl_debug("\t4x_ltf_3200_gi_ndp 0x%x tb_ppdu_tx_stbc_lt_80mhz 0x%x rx_stbc_lt_80mhz 0x%x doppler 0x%x ul_mu 0x%x dcm_enc_tx 0x%x dcm_enc_rx 0x%x",
+		      he_cap->he_4x_ltf_3200_gi_ndp,
+		      he_cap->tb_ppdu_tx_stbc_lt_80mhz,
+		      he_cap->rx_stbc_lt_80mhz, he_cap->doppler, he_cap->ul_mu,
+		      he_cap->dcm_enc_tx, he_cap->dcm_enc_rx);
+
+	pe_nofl_debug("\tul_he_mu 0x%x su_bfer 0x%x su_fee 0x%x mu_bfer 0x%x bfee_sts_lt_80 0x%x bfee_sts_gt_80 0x%x num_sd_lt_80 0x%x num_sd_gt_80 0x%x",
+		      he_cap->ul_he_mu, he_cap->su_beamformer,
+		      he_cap->su_beamformee,
+		      he_cap->mu_beamformer, he_cap->bfee_sts_lt_80,
+		      he_cap->bfee_sts_gt_80, he_cap->num_sounding_lt_80,
+		      he_cap->num_sounding_gt_80);
+
+	pe_nofl_debug("\tsu_fb_tone16 0x%x mu_fb_tone16 0x%x codebook_su 0x%x codebook_mu 0x%x bforming_feedback 0x%x he_er_su_ppdu 0x%x dl_mu_mimo_part_bw 0x%x",
+		      he_cap->su_feedback_tone16, he_cap->mu_feedback_tone16,
+		      he_cap->codebook_su, he_cap->codebook_mu,
+		      he_cap->beamforming_feedback, he_cap->he_er_su_ppdu,
+		      he_cap->dl_mu_mimo_part_bw);
+
+	pe_nofl_debug("\tppet_present 0x%x srp 0x%x power_boost 0x%x ltf_800_gi_4x 0x%x tb_ppdu_tx_stbc_gt_80mhz 0x%x rx_stbc_gt_80mhz 0x%x max_nc 0x%x",
+		      he_cap->ppet_present, he_cap->srp,
+		      he_cap->power_boost, he_cap->he_ltf_800_gi_4x,
+		      he_cap->tb_ppdu_tx_stbc_gt_80mhz,
+		      he_cap->rx_stbc_gt_80mhz, he_cap->max_nc);
+
+	pe_nofl_debug("\ter_ltf_800_gi_4x 0x%x ppdu_20_in_40Mhz_2G 0x%x ppdu_20_in_160_80p80Mhz 0x%x ppdu_80_in_160_80p80Mhz 0x%x er_1x_ltf_gi 0x%x",
+		      he_cap->er_he_ltf_800_gi_4x,
+		      he_cap->he_ppdu_20_in_40Mhz_2G,
+		      he_cap->he_ppdu_20_in_160_80p80Mhz,
+		      he_cap->he_ppdu_80_in_160_80p80Mhz,
+		      he_cap->er_1x_he_ltf_gi);
+
+	pe_nofl_debug("\tmidamble_tx_rx_1x_ltf 0x%x dcm_max_bw 0x%x longer_than_16_he_sigb_ofdm_sym 0x%x non_trig_cqi_feedback 0x%x tx_1024_qam_lt_242_tone_ru 0x%x",
+		      he_cap->midamble_tx_rx_1x_he_ltf, he_cap->dcm_max_bw,
+		      he_cap->longer_than_16_he_sigb_ofdm_sym,
+		      he_cap->non_trig_cqi_feedback,
+		      he_cap->tx_1024_qam_lt_242_tone_ru);
+
+	pe_nofl_debug("\trx_1024_qam_lt_242_tone_ru 0x%x rx_full_bw_su_he_mu_compress_sigb 0x%x rx_he_mcs_map_lt_80 0x%x tx_he_mcs_map_lt_80 0x%x",
+		      he_cap->rx_1024_qam_lt_242_tone_ru,
+		      he_cap->rx_full_bw_su_he_mu_compress_sigb,
+		      he_cap->rx_he_mcs_map_lt_80,
+		      he_cap->tx_he_mcs_map_lt_80);
 
 	hdr = (struct ppet_hdr *)&he_cap->ppet;
-	pe_debug("\t ppe_th:: nss_count: %d, ru_idx_msk: %d",
-		hdr->nss, hdr->ru_idx_mask);
+	pe_nofl_debug("\tRx MCS map 160 Mhz: 0x%x Tx MCS map 160 Mhz: 0x%x Rx MCS map 80+80 Mhz: 0x%x Tx MCS map 80+80 Mhz: 0x%x ppe_th:: nss_count: %d, ru_idx_msk: %d",
+		      *((uint16_t *)he_cap->rx_he_mcs_map_160),
+		      *((uint16_t *)he_cap->tx_he_mcs_map_160),
+		      *((uint16_t *)he_cap->rx_he_mcs_map_80_80),
+		      *((uint16_t *)he_cap->tx_he_mcs_map_80_80),
+		      hdr->nss, hdr->ru_idx_mask);
 
 	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_PE, QDF_TRACE_LEVEL_DEBUG,
 		&he_cap->ppet, HE_MAX_PPET_SIZE);
@@ -7118,16 +7029,14 @@
 void lim_log_he_op(struct mac_context *mac, tDot11fIEhe_op *he_ops,
 		   struct pe_session *session)
 {
-	pe_debug("bss_color: %0x, default_pe_duration: %0x, twt_required: %0x, txop_rts_threshold: %0x, vht_oper_present: %0x",
+	pe_debug("bss_color 0x%x, default_pe_dur 0x%x, twt_req  0x%x, txop_rts_thres  0x%x, vht_op 0x%x",
 		 he_ops->bss_color, he_ops->default_pe,
 		 he_ops->twt_required, he_ops->txop_rts_threshold,
 		 he_ops->vht_oper_present);
-	pe_debug("\tpart_bss_color %0x, Co-located BSS %0x, BSS color dis %0x",
+	pe_debug("\tpart_bss_color 0x%x, Co-located BSS 0x%x, BSS color dis 0x%x basic mcs nss: 0x%x",
 		 he_ops->partial_bss_col, he_ops->co_located_bss,
-		 he_ops->bss_col_disabled);
-
-	pe_debug("he basic mcs nss: 0x%04x",
-		*((uint16_t *)he_ops->basic_mcs_nss));
+		 he_ops->bss_col_disabled,
+		 *((uint16_t *)he_ops->basic_mcs_nss));
 
 	if (!session->he_6ghz_band) {
 		if (!he_ops->vht_oper_present)
@@ -7379,7 +7288,7 @@
 	lim_set_he_caps(mac_ctx, session, he_caps,
 			SIR_MAC_HE_CAP_MIN_LEN + 3);
 	he_cap = (struct he_capability_info *) (&he_caps[2 + HE_CAP_OUI_SIZE]);
-	he_cap->ppet_present = 0;
+
 	if(device_mode == QDF_NDI_MODE) {
 		he_cap->su_beamformee = 0;
 		he_cap->su_beamformer = 0;
@@ -7558,6 +7467,47 @@
 }
 #endif
 
+#if defined(CONFIG_BAND_6GHZ) && defined(WLAN_FEATURE_11AX)
+QDF_STATUS lim_send_he_6g_band_caps_ie(struct mac_context *mac_ctx,
+				       struct pe_session *session,
+				       uint8_t vdev_id)
+{
+	uint8_t he_6g_band_caps_ie[DOT11F_IE_HE_6GHZ_BAND_CAP_MIN_LEN + 3];
+	tDot11fIEhe_6ghz_band_cap he_6g_band_cap;
+	QDF_STATUS status;
+	uint32_t size = 0;
+	uint32_t result;
+
+	qdf_mem_zero(&he_6g_band_cap, sizeof(he_6g_band_cap));
+	populate_dot11f_he_6ghz_cap(mac_ctx, session, &he_6g_band_cap);
+	if (!he_6g_band_cap.present) {
+		pe_debug("no HE 6g band cap for vdev %d", vdev_id);
+		return QDF_STATUS_SUCCESS;
+	}
+
+	qdf_mem_zero(he_6g_band_caps_ie, sizeof(he_6g_band_caps_ie));
+	result = dot11f_pack_ie_he_6ghz_band_cap(mac_ctx, &he_6g_band_cap,
+						 he_6g_band_caps_ie,
+						 sizeof(he_6g_band_caps_ie),
+						 &size);
+	if (result != DOT11F_PARSE_SUCCESS) {
+		pe_err("pack erro for HE 6g band cap for vdev %d", vdev_id);
+		return QDF_STATUS_E_FAILURE;
+	}
+	pe_debug("send HE 6ghz band cap: 0x%01x 0x%01x for vdev %d",
+		 he_6g_band_caps_ie[3], he_6g_band_caps_ie[4],
+		 vdev_id);
+	status = lim_send_ie(mac_ctx, vdev_id, DOT11F_EID_HE_6GHZ_BAND_CAP,
+			     CDS_BAND_5GHZ, &he_6g_band_caps_ie[2],
+			     DOT11F_IE_HE_6GHZ_BAND_CAP_MIN_LEN + 1);
+	if (QDF_IS_STATUS_ERROR(status))
+		pe_err("Unable send HE 6g band Cap IE for 5GHZ band, status: %d",
+		       status);
+
+	return status;
+}
+#endif
+
 int
 lim_assoc_rej_get_remaining_delta(struct sir_rssi_disallow_lst *node)
 {
@@ -7826,12 +7776,9 @@
 	/* Stop the timer if already running */
 	qdf_mc_timer_stop(&session->ap_ecsa_timer);
 
-	if (session->gLimChannelSwitch.switchCount) {
+	if (session->gLimChannelSwitch.switchCount)
 		/* Decrement the beacon switch count */
 		session->gLimChannelSwitch.switchCount--;
-		pe_debug("current beacon count %d",
-			 session->gLimChannelSwitch.switchCount);
-	}
 
 	/*
 	 * Send only g_sap_chanswitch_beacon_cnt beacons with CSA IE Set in
@@ -8432,7 +8379,7 @@
 	wlan_objmgr_pdev_release_ref(pdev, WLAN_LEGACY_MAC_ID);
 
 	if (QDF_IS_STATUS_SUCCESS(status))
-		pe_debug("Removed BSS entry:%pM", bssid);
+		pe_debug("Removed BSS entry:%pM from scan cache", bssid);
 
 	if (filter)
 		qdf_mem_free(filter);
@@ -8600,10 +8547,6 @@
 	des_chan->ch_freq_seg2 = session->ch_center_freq_seg1;
 	des_chan->ch_ieee = wlan_reg_freq_to_chan(mac->pdev, des_chan->ch_freq);
 
-	pe_debug("ch_freq %d chan %d chan_width %d ch_freq_seg1: %d, ch_freq_seg2: %d",
-		 des_chan->ch_freq, des_chan->ch_ieee, des_chan->ch_width,
-		 des_chan->ch_freq_seg1, des_chan->ch_freq_seg2);
-
 	mlme_obj->mgmt.generic.maxregpower = session->maxTxPower;
 	mlme_obj->proto.generic.beacon_interval =
 				session->beaconParams.beaconInterval;
@@ -8635,9 +8578,6 @@
 		mlme_obj->mgmt.chainmask_info.num_rx_chain = 1;
 		mlme_obj->mgmt.chainmask_info.num_tx_chain = 1;
 	}
-	pe_debug("dot11_mode:%d nss value:%d ht %d vht %d", session->dot11mode,
-		 session->nss, mlme_obj->proto.ht_info.allow_ht,
-		 mlme_obj->proto.vht_info.allow_vht);
 	wlan_vdev_mlme_set_ssid(mlme_obj->vdev, session->ssId.ssId,
 				session->ssId.length);
 
diff --git a/core/mac/src/pe/lim/lim_utils.h b/core/mac/src/pe/lim/lim_utils.h
index b6ca4f1..843e032 100644
--- a/core/mac/src/pe/lim/lim_utils.h
+++ b/core/mac/src/pe/lim/lim_utils.h
@@ -1551,6 +1551,30 @@
 }
 #endif
 
+#if defined(CONFIG_BAND_6GHZ) && defined(WLAN_FEATURE_11AX)
+/**
+ * lim_send_he_6g_band_caps_ie() - Send HE 6ghz band caps to FW
+ * @mac_ctx: Global MAC context
+ * @session: session ptr
+ * @vdev_id: vdev id
+ *
+ * Send HE 6ghz band capabilities IE to firmware
+ *
+ * Return: QDF_STATUS_SUCCESS on success
+ */
+QDF_STATUS lim_send_he_6g_band_caps_ie(struct mac_context *mac_ctx,
+				       struct pe_session *session,
+				       uint8_t vdev_id);
+#else
+static inline
+QDF_STATUS lim_send_he_6g_band_caps_ie(struct mac_context *mac_ctx,
+				       struct pe_session *session,
+				       uint8_t vdev_id)
+{
+	return QDF_STATUS_SUCCESS;
+}
+#endif
+
 /**
  * lim_decrement_pending_mgmt_count: Decrement mgmt frame count
  * @mac_ctx: Pointer to global MAC structure
diff --git a/core/mac/src/pe/sch/sch_api.c b/core/mac/src/pe/sch/sch_api.c
index 17c5bc5..10075c7 100644
--- a/core/mac/src/pe/sch/sch_api.c
+++ b/core/mac/src/pe/sch/sch_api.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -89,9 +89,6 @@
 				mac->sch.csa_count_offset;
 			beaconParams->ecsa_count_offset =
 				mac->sch.ecsa_count_offset;
-			pe_debug("csa_count_offset %d ecsa_count_offset %d",
-				 beaconParams->csa_count_offset,
-				 beaconParams->ecsa_count_offset);
 		}
 	}
 
@@ -144,8 +141,6 @@
 	if (QDF_STATUS_SUCCESS != retCode)
 		pe_err("Posting SEND_BEACON_REQ to HAL failed, reason=%X",
 			retCode);
-	else
-		pe_debug("Successfully posted WMA_SEND_BEACON_REQ to HAL");
 
 	return retCode;
 }
diff --git a/core/mac/src/pe/sch/sch_beacon_gen.c b/core/mac/src/pe/sch/sch_beacon_gen.c
index 2697332..c8bf6e1 100644
--- a/core/mac/src/pe/sch/sch_beacon_gen.c
+++ b/core/mac/src/pe/sch/sch_beacon_gen.c
@@ -455,7 +455,6 @@
 		populate_dot11f_ht_info(mac_ctx, &bcn_2->HTInfo, session);
 	}
 	if (session->vhtCapability) {
-		pe_debug("Populate VHT IEs in Beacon");
 		populate_dot11f_vht_caps(mac_ctx, session, &bcn_2->VHTCaps);
 		populate_dot11f_vht_operation(mac_ctx, session,
 					      &bcn_2->VHTOperation);
diff --git a/core/mac/src/pe/sch/sch_beacon_process.c b/core/mac/src/pe/sch/sch_beacon_process.c
index e00314d..0d8ac47 100644
--- a/core/mac/src/pe/sch/sch_beacon_process.c
+++ b/core/mac/src/pe/sch/sch_beacon_process.c
@@ -1190,9 +1190,6 @@
 
 	follow_ap_edca = mlme_get_follow_ap_edca_flag(session->vdev);
 
-	pe_debug("Updating parameter set count: Old %d ---> new %d",
-		session->gLimEdcaParamSetCount, edca->qosInfo.count);
-
 	session->gLimEdcaParamSetCount = edca->qosInfo.count;
 	session->gLimEdcaParams[QCA_WLAN_AC_BE] = edca->acbe;
 	session->gLimEdcaParams[QCA_WLAN_AC_BK] = edca->acbk;
@@ -1261,15 +1258,15 @@
 	}
 	WLAN_HOST_DIAG_LOG_REPORT(log_ptr);
 #endif /* FEATURE_WLAN_DIAG_SUPPORT */
-	pe_debug("Edca param enabled in ini %d. Updating Local EDCA Params(gLimEdcaParams) to: ",
+	pe_debug("Edca param enabled %d. Updating Local Params to: ",
 		 mac->mlme_cfg->edca_params.enable_edca_params);
 	for (i = 0; i < QCA_WLAN_AC_ALL; i++) {
-		pe_debug("AC[%d]:  AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d",
-		       i, session->gLimEdcaParams[i].aci.aifsn,
-		       session->gLimEdcaParams[i].aci.acm,
-		       session->gLimEdcaParams[i].cw.min,
-		       session->gLimEdcaParams[i].cw.max,
-		       session->gLimEdcaParams[i].txoplimit);
+		pe_nofl_debug("AC[%d]:  AIFSN: %d, ACM %d, CWmin %d, CWmax %d, TxOp %d",
+			      i, session->gLimEdcaParams[i].aci.aifsn,
+			      session->gLimEdcaParams[i].aci.acm,
+			      session->gLimEdcaParams[i].cw.min,
+			      session->gLimEdcaParams[i].cw.max,
+			      session->gLimEdcaParams[i].txoplimit);
 	}
 	return QDF_STATUS_SUCCESS;
 }
diff --git a/core/mac/src/sys/legacy/src/utils/src/parser_api.c b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
index 0d87dd8..f0fcef2 100644
--- a/core/mac/src/sys/legacy/src/utils/src/parser_api.c
+++ b/core/mac/src/sys/legacy/src/utils/src/parser_api.c
@@ -764,8 +764,6 @@
 	if (pe_session) {
 		disable_high_ht_mcs_2x2 =
 				mac->mlme_cfg->rates.disable_high_ht_mcs_2x2;
-		pe_debug("disable HT high MCS INI param[%d]",
-			 disable_high_ht_mcs_2x2);
 		if (pe_session->nss == NSS_1x1_MODE) {
 			pDot11f->supportedMCSSet[1] = 0;
 		} else if (wlan_reg_is_24ghz_ch_freq(
@@ -6067,21 +6065,27 @@
 				   tDot11fIEhe_cap *he_cap)
 {
 	uint8_t *ppet;
-	uint32_t value = 0;
+	uint32_t value = WNI_CFG_HE_PPET_LEN;
 
 	he_cap->present = 1;
 
 	if (!session) {
 		qdf_mem_copy(he_cap, &mac_ctx->mlme_cfg->he_caps.dot11_he_cap,
 			     sizeof(tDot11fIEhe_cap));
+		qdf_mem_copy(he_cap->ppet.ppe_threshold.ppe_th,
+			     mac_ctx->mlme_cfg->he_caps.he_ppet_5g,
+			     value);
+
+		ppet = he_cap->ppet.ppe_threshold.ppe_th;
+		he_cap->ppet.ppe_threshold.num_ppe_th =
+						lim_truncate_ppet(ppet, value);
 		return QDF_STATUS_SUCCESS;
 	}
 	/** TODO: String items needs attention. **/
 	qdf_mem_copy(he_cap, &session->he_config, sizeof(*he_cap));
 	if (he_cap->ppet_present) {
-		value = WNI_CFG_HE_PPET_LEN;
 		/* if session is present, populate PPET based on band */
-		if (wlan_reg_is_5ghz_ch_freq(session->curr_op_freq))
+		if (!wlan_reg_is_24ghz_ch_freq(session->curr_op_freq))
 			qdf_mem_copy(he_cap->ppet.ppe_threshold.ppe_th,
 				     mac_ctx->mlme_cfg->he_caps.he_ppet_5g,
 				     value);
@@ -6097,8 +6101,6 @@
 		he_cap->ppet.ppe_threshold.num_ppe_th = 0;
 	}
 
-	lim_log_he_cap(mac_ctx, he_cap);
-
 	return QDF_STATUS_SUCCESS;
 }
 
@@ -6166,7 +6168,7 @@
 	struct mlme_ht_capabilities_info *ht_cap_info;
 	struct mlme_vht_capabilities_info *vht_cap_info;
 
-	if (!session || !session->he_6ghz_band)
+	if (session && !session->he_6ghz_band)
 		return QDF_STATUS_SUCCESS;
 
 	ht_cap_info = &mac_ctx->mlme_cfg->ht_caps.ht_cap_info;
@@ -6175,8 +6177,12 @@
 	he_6g_cap->present = 1;
 	he_6g_cap->min_mpdu_start_spacing =
 		mac_ctx->mlme_cfg->ht_caps.ampdu_params.mpdu_density;
-	he_6g_cap->max_ampdu_len_exp =
-		session->vht_config.max_ampdu_lenexp;
+	if (session)
+		he_6g_cap->max_ampdu_len_exp =
+			session->vht_config.max_ampdu_lenexp;
+	else
+		he_6g_cap->max_ampdu_len_exp =
+			vht_cap_info->ampdu_len_exponent & 0x7;
 	he_6g_cap->max_mpdu_len = vht_cap_info->ampdu_len;
 	he_6g_cap->sm_pow_save = ht_cap_info->mimo_power_save;
 	he_6g_cap->rd_responder = 0;
diff --git a/core/sap/inc/sap_api.h b/core/sap/inc/sap_api.h
index 14d7fcb..dab93af 100644
--- a/core/sap/inc/sap_api.h
+++ b/core/sap/inc/sap_api.h
@@ -1486,6 +1486,16 @@
 				uint8_t session_id);
 
 /**
+ * sap_dump_acs_channel() - dump acs channel list
+ * @acs_cfg: acs config
+ *
+ * This function dump acs channel list
+ *
+ * Return: void.
+ */
+void sap_dump_acs_channel(struct sap_acs_cfg *acs_cfg);
+
+/**
  * sap_release_vdev_ref() - Decrement reference count for vdev object
  * @sap_ctx: for which vdev reference is to be decremented
  *
diff --git a/core/sap/src/sap_api_link_cntl.c b/core/sap/src/sap_api_link_cntl.c
index eefacef..03dce19 100644
--- a/core/sap/src/sap_api_link_cntl.c
+++ b/core/sap/src/sap_api_link_cntl.c
@@ -404,9 +404,9 @@
 	 * Channel change is successful. If the new channel is a DFS channel,
 	 * then we will to perform channel availability check for 60 seconds
 	 */
-	QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED,
-		  FL("sapdfs: changing target channel freq to [%d] state %d"),
-		  mac_ctx->sap.SapDfsInfo.target_chan_freq, sap_ctx->fsm_state);
+	sap_nofl_debug("sapdfs: SAP CSA: freq to [%d] state %d",
+		       mac_ctx->sap.SapDfsInfo.target_chan_freq,
+		       sap_ctx->fsm_state);
 	target_chan_freq = mac_ctx->sap.SapDfsInfo.target_chan_freq;
 
 	/* If SAP is not in starting or started state don't proceed further */
@@ -437,8 +437,6 @@
 	sap_ctx->chan_freq = target_chan_freq;
 	/* check if currently selected channel is a DFS channel */
 	if (is_ch_dfs && sap_ctx->pre_cac_complete) {
-		QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED, FL(
-		    "sapdfs: => SAP_STARTING, on pre cac"));
 		/* Start beaconing on the new pre cac channel */
 		wlansap_start_beacon_req(sap_ctx);
 		sap_ctx->fsm_state = SAP_STARTING;
@@ -455,20 +453,12 @@
 					mac_ctx->psoc,
 					sap_ctx->sessionId)) {
 			sap_ctx->fsm_state = SAP_INIT;
-			QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED,
-				  "%s: %d: sapdfs: => SAP_INIT with ignore cac false on sapctx[%pK]",
-				  __func__, __LINE__, sap_ctx);
 			/* DFS Channel */
 			sap_event.event = eSAP_DFS_CHANNEL_CAC_START;
 			sap_event.params = csr_roam_info;
 			sap_event.u1 = 0;
 			sap_event.u2 = 0;
 		} else {
-			QDF_TRACE(QDF_MODULE_ID_SAP,
-				  QDF_TRACE_LEVEL_INFO_MED,
-				  "%s: %d: sapdfs: SAP_STARTING with ignore cac true on sapctx[%pK]",
-				  __func__, __LINE__, sap_ctx);
-
 			/* Start beaconing on the new channel */
 			wlansap_start_beacon_req(sap_ctx);
 			sap_ctx->fsm_state = SAP_STARTING;
@@ -479,9 +469,6 @@
 			sap_event.u2 = eCSR_ROAM_RESULT_INFRA_STARTED;
 		}
 	} else {
-		QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_MED,
-			  "%s: %d: sapdfs: => SAP_STARTING on sapctx[%pK]",
-			  __func__, __LINE__, sap_ctx);
 		/* non-DFS channel */
 		sap_ctx->fsm_state = SAP_STARTING;
 		mac_ctx->sap.SapDfsInfo.sap_radar_found_status = false;
diff --git a/core/sap/src/sap_fsm.c b/core/sap/src/sap_fsm.c
index 6dd171c..f6c009c 100644
--- a/core/sap/src/sap_fsm.c
+++ b/core/sap/src/sap_fsm.c
@@ -2483,8 +2483,7 @@
 		 * Transition from SAP_STARTING to SAP_STARTED
 		 * (both without substates)
 		 */
-		QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
-			  FL("from state chan_freq = %d %s => %s ch_width %d"),
+		sap_debug("Chan %d %s => %s ch_width %d",
 			  sap_ctx->chan_freq, "SAP_STARTING", "SAP_STARTED",
 			  sap_ctx->ch_params.ch_width);
 		sap_ctx->fsm_state = SAP_STARTED;
@@ -2494,11 +2493,6 @@
 				eSAP_START_BSS_EVENT,
 				(void *) eSAP_STATUS_SUCCESS);
 		sap_chan_freq = sap_ctx->chan_freq;
-		QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
-			  FL("ap_ctx->ch_params.ch_width %d, channel %d"),
-			     sap_ctx->ch_params.ch_width,
-			     wlan_reg_get_channel_state_for_freq(
-					mac_ctx->pdev, sap_chan_freq));
 		band = wlan_reg_freq_to_band(sap_ctx->chan_freq);
 		if (sap_ctx->ch_params.center_freq_seg1)
 			ch_cfreq1 = wlan_reg_chan_band_to_freq(
@@ -2753,9 +2747,7 @@
 	}
 	mac_handle = MAC_HANDLE(mac_ctx);
 
-	QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_DEBUG,
-		  FL("sap_ctx=%pK, state_var=%d, msg=0x%x"),
-		  sap_ctx, state_var, msg);
+	sap_debug("state=%d handle event=%d", state_var, msg);
 
 	switch (state_var) {
 	case SAP_INIT:
@@ -3219,6 +3211,30 @@
 	return QDF_STATUS_SUCCESS;
 }
 
+void sap_dump_acs_channel(struct sap_acs_cfg *acs_cfg)
+{
+	uint32_t buf_len = 0, len = 0, i;
+	uint8_t *chan_buff = NULL;
+
+	/*
+	 * Buffer of (num channl * 5) + 1  to consider the 4 char freq
+	 * and 1 space after it for each channel and 1 to end the string
+	 * with NULL.
+	 */
+	buf_len = (acs_cfg->ch_list_count * 5) + 1;
+	chan_buff = qdf_mem_malloc(buf_len);
+	if (!chan_buff)
+		return;
+
+	for (i = 0; i < acs_cfg->ch_list_count; i++)
+		len += qdf_scnprintf(chan_buff + len, buf_len - len,
+				     " %d", acs_cfg->freq_list[i]);
+
+	sap_nofl_debug("ACS freq list[%d]:%s",
+		       acs_cfg->ch_list_count, chan_buff);
+	qdf_mem_free(chan_buff);
+}
+
 #ifdef SOFTAP_CHANNEL_RANGE
 /**
  * sap_get_freq_list() - get the list of channel frequency
@@ -3456,11 +3472,10 @@
 	}
 
 	for (loop_count = 0; loop_count < ch_count; loop_count++) {
-		QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_DEBUG,
-			FL("channel frequency: %d"), list[loop_count]);
 		sap_ctx->acs_cfg->freq_list[loop_count] = list[loop_count];
 	}
 	sap_ctx->acs_cfg->ch_list_count = ch_count;
+	sap_dump_acs_channel(sap_ctx->acs_cfg);
 
 	return QDF_STATUS_SUCCESS;
 }
diff --git a/core/sap/src/sap_module.c b/core/sap/src/sap_module.c
index 7e03245..1b70326 100644
--- a/core/sap/src/sap_module.c
+++ b/core/sap/src/sap_module.c
@@ -1351,12 +1351,12 @@
 		sap_err("%u is unsafe channel freq", target_chan_freq);
 		return QDF_STATUS_E_FAULT;
 	}
-	sap_debug("sap chan freq:%d target freq:%d conn on 5GHz:%d, csa_reason:%s(%d) strict %d vdev %d",
-		  sap_ctx->chan_freq, target_chan_freq,
-		policy_mgr_is_any_mode_active_on_band_along_with_session(
-			mac->psoc, sap_ctx->sessionId, POLICY_MGR_BAND_5),
-			sap_get_csa_reason_str(sap_ctx->csa_reason),
-			sap_ctx->csa_reason, strict, sap_ctx->sessionId);
+	sap_nofl_debug("SAP CSA: %d ---> %d conn on 5GHz:%d, csa_reason:%s(%d) strict %d vdev %d",
+		       sap_ctx->chan_freq, target_chan_freq,
+		       policy_mgr_is_any_mode_active_on_band_along_with_session(
+		       mac->psoc, sap_ctx->sessionId, POLICY_MGR_BAND_5),
+		       sap_get_csa_reason_str(sap_ctx->csa_reason),
+		       sap_ctx->csa_reason, strict, sap_ctx->sessionId);
 
 	sta_sap_scc_on_dfs_chan =
 		policy_mgr_is_sta_sap_scc_allowed_on_dfs_chan(mac->psoc);
@@ -1445,7 +1445,7 @@
 			 * user input is used for the bandwidth
 			 */
 			if (target_bw != CH_WIDTH_MAX) {
-				sap_debug("target bw:%d new width:%d",
+				sap_nofl_debug("SAP CSA: target bw:%d new width:%d",
 					  target_bw,
 					  mac->sap.SapDfsInfo.
 					  new_ch_params.ch_width);
@@ -1505,10 +1505,6 @@
 		return QDF_STATUS_E_FAULT;
 	}
 
-	QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
-		  "%s: Posted eSAP_CHANNEL_SWITCH_ANNOUNCEMENT_START successfully to sap_fsm for Channel freq = %d",
-		  __func__, target_chan_freq);
-
 	return QDF_STATUS_SUCCESS;
 }
 
@@ -1680,8 +1676,6 @@
 	default:
 		*sec_chan_freq = 0;
 	}
-	sap_debug("sec channel offset %d, sec channel %d",
-		  sec_ch_offset, *sec_chan_freq);
 }
 
 static void
@@ -1758,9 +1752,6 @@
 		 (phy_mode == eCSR_DOT11_MODE_11a))
 		phy_mode = eCSR_DOT11_MODE_11g;
 
-	sap_debug("phy_mode: %d, target_channel freq: %d new phy_mode: %d",
-		  sap_ctx->csr_roamProfile.phyMode,
-		  target_chan_freq, phy_mode);
 	sap_ctx->csr_roamProfile.phyMode = phy_mode;
 
 	if (sap_ctx->csr_roamProfile.ChannelInfo.numOfChannels == 0 ||
diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h
index d74ec82..e63d306 100644
--- a/core/sme/inc/csr_api.h
+++ b/core/sme/inc/csr_api.h
@@ -1435,6 +1435,11 @@
 {}
 #endif
 
+typedef void (*sme_get_raom_scan_ch_callback)(
+				hdd_handle_t hdd_handle,
+				struct roam_scan_ch_resp *roam_ch,
+				void *context);
+
 /**
  * csr_packetdump_timer_stop() - stops packet dump timer
  *
diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h
index 834a296..3d443d9 100644
--- a/core/sme/inc/sme_api.h
+++ b/core/sme/inc/sme_api.h
@@ -552,6 +552,32 @@
 
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
 /**
+ * sme_set_roam_scan_ch_event_cb() - Register roam scan ch callback
+ * @mac_handle: Opaque handle to the MAC context
+ * @cb: callback to be registered
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+sme_set_roam_scan_ch_event_cb(mac_handle_t mac_handle,
+			      sme_get_raom_scan_ch_callback cb);
+
+/**
+ * sme_get_roam_scan_ch() -API to get roam scan channels
+ * @mac_handle: Pointer to mac handle
+ * @sta_id: vdev id
+ * @pcontext: pointer to the context
+ *
+ * Extract number of frequencies and frequency list from chan_info and print
+ * to the logs.
+ *
+ * Return: None
+ */
+QDF_STATUS
+sme_get_roam_scan_ch(mac_handle_t mac_handle,
+		     uint8_t vdev_id, void *pcontext);
+
+/**
  * sme_get_pmk_info(): A wrapper function to request CSR to save PMK
  * @mac_handle: Global structure
  * @session_id: SME session_id
@@ -569,6 +595,20 @@
 void sme_get_pmk_info(mac_handle_t mac_handle, uint8_t session_id,
 		      tPmkidCacheInfo *pmk_cache)
 {}
+
+static inline QDF_STATUS
+sme_get_roam_scan_ch(mac_handle_t mac_handle,
+		     uint8_t vdev_id, void *pcontext)
+{
+	return QDF_STATUS_E_FAILURE;
+}
+
+static inline QDF_STATUS
+sme_set_roam_scan_ch_event_cb(mac_handle_t mac_handle,
+			      void *cb)
+{
+	return QDF_STATUS_E_FAILURE;
+}
 #endif
 
 /**
@@ -1097,6 +1137,7 @@
 					  uint32_t *freq_list,
 					  uint8_t *pNumChannels,
 					  uint8_t sessionId);
+
 /**
  * sme_dump_freq_list() - Dump the frequencies from given chan info
  * @chan_info: Contains the frequency list and number of frequencies
diff --git a/core/sme/inc/sme_internal.h b/core/sme/inc/sme_internal.h
index cf14a88..46ce736 100644
--- a/core/sme/inc/sme_internal.h
+++ b/core/sme/inc/sme_internal.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -392,6 +392,8 @@
 	void (*oem_data_event_handler_cb)
 			(const struct oem_data *oem_event_data);
 #endif
+	sme_get_raom_scan_ch_callback roam_scan_ch_callback;
+	void *roam_scan_ch_get_context;
 };
 
 #endif /* #if !defined( __SMEINTERNAL_H ) */
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c
index 6806479..a178b3c 100644
--- a/core/sme/src/common/sme_api.c
+++ b/core/sme/src/common/sme_api.c
@@ -212,12 +212,14 @@
 		csr_saved_scan_cmd_free_fields(mac, session);
 	}
 	if (reason == POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH_STA) {
-		sme_info("Continue channel switch for STA");
+		sme_info("Continue channel switch for STA on vdev %d",
+			 session_id);
 		csr_sta_continue_csa(mac, session_id);
 	}
 
 	if (reason == POLICY_MGR_UPDATE_REASON_CHANNEL_SWITCH) {
-		sme_info("Continue channel switch for SAP");
+		sme_info("Continue channel switch for SAP on vdev %d",
+			 session_id);
 		csr_csa_restart(mac, session_id);
 	}
 	if (reason == POLICY_MGR_UPDATE_REASON_LFR2_ROAM)
@@ -1254,9 +1256,6 @@
 		session_id = csa_ie_tx_complete_rsp->sessionId;
 		roam_status = eCSR_ROAM_DFS_CHAN_SW_NOTIFY;
 		roam_result = eCSR_ROAM_RESULT_DFS_CHANSW_UPDATE_SUCCESS;
-		QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
-			  "eWNI_SME_DFS_CSAIE_TX_COMPLETE_IND session=%d",
-			  session_id);
 		break;
 	}
 	case eWNI_SME_DFS_CAC_COMPLETE:
@@ -1713,6 +1712,38 @@
 	return status;
 }
 
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+QDF_STATUS sme_get_roam_scan_ch(mac_handle_t mac_handle,
+				uint8_t vdev_id, void *pcontext)
+{
+	struct scheduler_msg msg = {0};
+	QDF_STATUS status = QDF_STATUS_E_FAILURE;
+	struct mac_context *mac = MAC_CONTEXT(mac_handle);
+
+	status = sme_acquire_global_lock(&mac->sme);
+	if (QDF_IS_STATUS_ERROR(status))
+		return QDF_STATUS_E_FAILURE;
+
+	msg.type = WMA_ROAM_SCAN_CH_REQ;
+	msg.bodyval = vdev_id;
+	mac->sme.roam_scan_ch_get_context = pcontext;
+
+	if (scheduler_post_message(QDF_MODULE_ID_SME,
+				   QDF_MODULE_ID_WMA,
+				   QDF_MODULE_ID_WMA,
+				   &msg)) {
+		sme_err("Posting message %d failed",
+			WMA_ROAM_SCAN_CH_REQ);
+		mac->sme.roam_scan_ch_get_context = NULL;
+		sme_release_global_lock(&mac->sme);
+		return QDF_STATUS_E_FAILURE;
+	}
+
+	sme_release_global_lock(&mac->sme);
+	return QDF_STATUS_SUCCESS;
+}
+#endif
+
 /**
  * sme_set_ese_roam_scan_channel_list() - To set ese roam scan channel list
  * @mac_handle: Opaque handle to the global MAC context
@@ -1941,6 +1972,55 @@
 	return QDF_STATUS_SUCCESS;
 }
 
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+QDF_STATUS sme_set_roam_scan_ch_event_cb(mac_handle_t mac_handle,
+					 sme_get_raom_scan_ch_callback cb)
+{
+	QDF_STATUS qdf_status;
+	struct mac_context *mac = MAC_CONTEXT(mac_handle);
+
+	qdf_status = sme_acquire_global_lock(&mac->sme);
+	if (QDF_IS_STATUS_ERROR(qdf_status))
+		return qdf_status;
+
+	mac->sme.roam_scan_ch_callback = cb;
+	sme_release_global_lock(&mac->sme);
+
+	return qdf_status;
+}
+
+/**
+ * sme_process_roam_scan_ch_list_resp() - Process get roam scan ch list
+ * response
+ * @mac: Global MAC pointer
+ * @msgbuf: pointer to roam scan ch list response
+ *
+ * This function checks the roam scan chan list message is for command
+ * response or a async event and accordingly data is given to user space.
+ * callback to process further
+ */
+static void
+sme_process_roam_scan_ch_list_resp(struct mac_context *mac,
+				   struct roam_scan_ch_resp *roam_ch)
+{
+	sme_get_raom_scan_ch_callback callback =
+				mac->sme.roam_scan_ch_callback;
+
+	if (!roam_ch)
+		return;
+
+	if (callback)
+		callback(mac->hdd_handle, roam_ch,
+			 mac->sme.roam_scan_ch_get_context);
+}
+#else
+static void
+sme_process_roam_scan_ch_list_resp(tpAniSirGlobal mac,
+				   struct roam_scan_ch_resp *roam_ch)
+{
+}
+#endif
+
 /**
  * sme_process_antenna_mode_resp() - Process set antenna mode
  * response
@@ -2318,6 +2398,10 @@
 			sme_err("Empty message for: %d", pMsg->type);
 		}
 		break;
+	case eWNI_SME_GET_ROAM_SCAN_CH_LIST_EVENT:
+		sme_process_roam_scan_ch_list_resp(mac, pMsg->bodyptr);
+		qdf_mem_free(pMsg->bodyptr);
+		break;
 	default:
 
 		if ((pMsg->type >= eWNI_SME_MSG_TYPES_BEGIN)
@@ -6802,10 +6886,6 @@
 sme_restore_default_roaming_params(struct mac_context *mac,
 				   tCsrNeighborRoamControlInfo *roam_info)
 {
-	sme_debug("%s default roam scoring",
-		  mac->mlme_cfg->scoring.enable_scoring_for_roam ?
-		  "Enable" : "Disable");
-
 	roam_info->cfgParams.enable_scoring_for_roam =
 			mac->mlme_cfg->scoring.enable_scoring_for_roam;
 	roam_info->cfgParams.emptyScanRefreshPeriod =
@@ -6866,20 +6946,16 @@
 		goto out;
 	}
 
-	sme_debug("Cleanup roam scan control");
 	mac->roam.configParam.nRoamScanControl = false;
 
 	neighbor_roam_info = &mac->roam.neighborRoamInfo[vdev_id];
 
-	sme_debug("Cleanup Preferred frequency list");
 	chan_info = &neighbor_roam_info->cfgParams.pref_chan_info;
 	csr_flush_cfg_bg_scan_roam_channel_list(chan_info);
 
-	sme_debug("Cleanup specific frequency list");
 	chan_info = &neighbor_roam_info->cfgParams.specific_chan_info;
 	csr_flush_cfg_bg_scan_roam_channel_list(chan_info);
 
-	sme_debug("Cleanup roam control config related lfr params");
 	mlme_reinit_control_config_lfr_params(mac->psoc, &mac->mlme_cfg->lfr);
 
 	sme_restore_default_roaming_params(mac, neighbor_roam_info);
diff --git a/core/sme/src/common/sme_trace.c b/core/sme/src/common/sme_trace.c
index f2fb099..f09ad8a 100644
--- a/core/sme/src/common/sme_trace.c
+++ b/core/sme/src/common/sme_trace.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -176,32 +176,32 @@
 {
 	switch (record->code) {
 	case TRACE_CODE_SME_COMMAND:
-		sme_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
-			rec_index, record->qtime, record->time, record->session,
-			"SME COMMAND:",
-			sme_trace_get_command_string(record->data),
-			record->data);
+		sme_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+			       rec_index, record->qtime, record->time,
+			       record->session, "SME COMMAND:",
+				sme_trace_get_command_string(record->data),
+				record->data);
 		break;
 	case TRACE_CODE_SME_TX_WMA_MSG:
-		sme_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
-			rec_index, record->qtime, record->time, record->session,
-			"TX WMA Msg:",
-			mac_trace_get_wma_msg_string((uint16_t)record->data),
-			record->data);
+		sme_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+			       rec_index, record->qtime, record->time,
+			       record->session, "TX WMA Msg:",
+			       mac_trace_get_wma_msg_string((uint16_t)record->data),
+			       record->data);
 		break;
 	case TRACE_CODE_SME_RX_WMA_MSG:
-		sme_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
-			rec_index, record->qtime, record->time, record->session,
-			"RX WMA Msg:",
-			mac_trace_get_sme_msg_string((uint16_t)record->data),
-			record->data);
+		sme_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+			       rec_index, record->qtime, record->time, record->session,
+			       "RX WMA Msg:",
+			       mac_trace_get_sme_msg_string((uint16_t)record->data),
+			       record->data);
 		break;
 	default:
-		sme_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
-			rec_index, record->qtime, record->time, record->session,
-			"RX HDD MSG:",
-			sme_trace_get_rx_msg_string(record->code),
-			record->data);
+		sme_nofl_debug("%04d %012llu %s S%d %-14s %-30s(0x%x)",
+			       rec_index, record->qtime, record->time, record->session,
+			       "RX HDD MSG:",
+			       sme_trace_get_rx_msg_string(record->code),
+			       record->data);
 		break;
 	}
 }
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index e11e226..617aa71 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -554,9 +554,10 @@
 			     sizeof(struct qdf_mac_addr));
 	}
 
-	sme_debug("CSR Attempting to Disassociate Bssid=" QDF_MAC_ADDR_STR
-		   " subState: %s reason: %d", QDF_MAC_ADDR_ARRAY(bssId.bytes),
-		mac_trace_getcsr_roam_sub_state(NewSubstate), reasonCode);
+	sme_debug("Disassociate Bssid " QDF_MAC_ADDR_STR " subState: %s reason: %d",
+		  QDF_MAC_ADDR_ARRAY(bssId.bytes),
+		  mac_trace_getcsr_roam_sub_state(NewSubstate),
+		  reasonCode);
 
 	csr_roam_substate_change(mac, NewSubstate, sessionId);
 
@@ -1409,6 +1410,8 @@
 	uint32_t  channel_freq;
 	bool is_unsafe_chan;
 	bool is_same_band;
+	bool is_5mhz_enabled;
+	bool is_10mhz_enabled;
 	enum scm_scan_status scan_status;
 	QDF_STATUS lock_status;
 
@@ -1450,6 +1453,13 @@
 	if (!pChanList)
 		return QDF_STATUS_E_NOMEM;
 
+	is_5mhz_enabled = cds_is_5_mhz_enabled();
+	if (is_5mhz_enabled)
+		sme_nofl_debug("quarter_rate enabled");
+	is_10mhz_enabled = cds_is_10_mhz_enabled();
+	if (is_10mhz_enabled)
+		sme_nofl_debug("half_rate enabled");
+
 	for (i = 0; i < pScan->base_channels.numChannels; i++) {
 		struct csr_sta_roam_policy_params *roam_policy =
 			&mac->roam.configParam.sta_roam_policy;
@@ -1538,18 +1548,13 @@
 			else
 				pChanList->chanParam[num_channel].dfsSet =
 					true;
-			if (cds_is_5_mhz_enabled())
-				pChanList->chanParam[num_channel].quarter_rate
-					= 1;
-			else if (cds_is_10_mhz_enabled())
-				pChanList->chanParam[num_channel].half_rate = 1;
-			QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
-				"Freq:%d, pwr=%d, DFS=%d qrate %d hrate %d ",
-				pChanList->chanParam[num_channel].freq,
-				pChanList->chanParam[num_channel].pwr,
-				pChanList->chanParam[num_channel].dfsSet,
-				pChanList->chanParam[num_channel].quarter_rate,
-				pChanList->chanParam[num_channel].half_rate);
+
+			pChanList->chanParam[num_channel].quarter_rate =
+							is_5mhz_enabled;
+
+			pChanList->chanParam[num_channel].half_rate =
+							is_10mhz_enabled;
+
 			num_channel++;
 		}
 	}
@@ -1988,10 +1993,10 @@
 	}
 	if (mac->roam.curSubState[sessionId] == NewSubstate)
 		return;
-	sme_debug("CSR RoamSubstate: [ %s <== %s ]",
-		  mac_trace_getcsr_roam_sub_state(NewSubstate),
-		  mac_trace_getcsr_roam_sub_state(mac->roam.
-		  curSubState[sessionId]));
+	sme_nofl_debug("CSR RoamSubstate: [ %s <== %s ]",
+		       mac_trace_getcsr_roam_sub_state(NewSubstate),
+		       mac_trace_getcsr_roam_sub_state(mac->roam.
+		       curSubState[sessionId]));
 	spin_lock(&mac->roam.roam_state_lock);
 	mac->roam.curSubState[sessionId] = NewSubstate;
 	spin_unlock(&mac->roam.roam_state_lock);
@@ -2008,10 +2013,10 @@
 	if (NewRoamState == mac->roam.curState[sessionId])
 		return PreviousState;
 
-	sme_debug("CSR RoamState[%d]: [ %s <== %s ]", sessionId,
-		  mac_trace_getcsr_roam_state(NewRoamState),
-		  mac_trace_getcsr_roam_state(
-		  mac->roam.curState[sessionId]));
+	sme_nofl_debug("CSR RoamState[%d]: [ %s <== %s ]", sessionId,
+		       mac_trace_getcsr_roam_state(NewRoamState),
+		       mac_trace_getcsr_roam_state(
+		       mac->roam.curState[sessionId]));
 	/*
 	 * Whenever we transition OUT of the Roaming state,
 	 * clear the Roaming substate.
@@ -4214,8 +4219,9 @@
 							  vdev_id,
 							  peer_macaddr);
 
-	sme_debug("Deauth/Disassoc %s in progress for %pM",
-		  (ret ? "already" : "not"), peer_macaddr.bytes);
+	if (ret)
+		sme_debug("Deauth/Disassoc already in progress for %pM",
+			  peer_macaddr.bytes);
 
 	return ret;
 }
@@ -4323,7 +4329,7 @@
 		qdf_mem_copy(bssId.bytes, pSession->pConnectBssDesc->bssId,
 			     sizeof(struct qdf_mac_addr));
 	}
-	sme_debug("CSR Attempting to Deauth Bssid= " QDF_MAC_ADDR_STR,
+	sme_debug("Deauth to Bssid " QDF_MAC_ADDR_STR,
 		  QDF_MAC_ADDR_ARRAY(bssId.bytes));
 	csr_roam_substate_change(mac, NewSubstate, sessionId);
 
@@ -7039,8 +7045,6 @@
 
 	prev_connect_info = &session->prev_assoc_ap_info;
 
-	sme_debug("receives no association indication; FILS %d",
-		  session->is_fils_connection);
 	sme_debug("Assoc ref count: %d", session->bRefAssocStartCnt);
 
 	/* Update AP's assoc info in scan before removing connectedProfile */
@@ -8055,7 +8059,7 @@
 	if (!roam_info)
 		return false;
 
-	sme_debug("Processing ROAM results...");
+	sme_debug("Result %d", res);
 	switch (res) {
 	case eCsrJoinSuccess:
 	case eCsrReassocSuccess:
@@ -9144,9 +9148,8 @@
 		}
 		pCommand->command = eSmeCommandRoam;
 		pCommand->vdev_id = (uint8_t) sessionId;
-		sme_debug(
-			"Disassociate reason: %d, sessionId: %d",
-			reason, sessionId);
+		sme_debug("Disassociate reason: %d, vdev_id: %d",
+			 reason, sessionId);
 		switch (reason) {
 		case eCSR_DISCONNECT_REASON_MIC_ERROR:
 			pCommand->u.roamCmd.roamReason =
@@ -9234,7 +9237,6 @@
 	    || csr_is_bss_type_ibss(pSession->connectedProfile.BSSType)
 	    || csr_is_roam_command_waiting_for_session(mac, sessionId)
 	    || CSR_IS_CONN_NDI(&pSession->connectedProfile)) {
-		sme_debug("called");
 		status = csr_roam_issue_disassociate_cmd(mac, sessionId,
 							 reason);
 	} else if (pSession->scan_info.profile) {
@@ -9958,7 +9960,7 @@
 		cds_flush_logs(WLAN_LOG_TYPE_FATAL,
 			WLAN_LOG_INDICATOR_HOST_DRIVER,
 			WLAN_LOG_REASON_ROAM_FAIL,
-			true, false);
+			false, false);
 		if ((eSIR_SME_FT_REASSOC_TIMEOUT_FAILURE ==
 		     pSmeJoinRsp->status_code)
 		    || (eSIR_SME_FT_REASSOC_FAILURE ==
@@ -10436,8 +10438,6 @@
 						struct deauth_rsp *pSmeRsp)
 {
 	tSirResultCodes status_code;
-	/* No one is sending eWNI_SME_DEAUTH_REQ to PE. */
-	sme_debug("is no-op");
 	status_code = csr_get_de_auth_rsp_status_code(pSmeRsp);
 	mac->roam.deauthRspStatus = status_code;
 	if (CSR_IS_ROAM_SUBSTATE_DEAUTH_REQ(mac, pSmeRsp->sessionId)) {
@@ -10449,10 +10449,6 @@
 			/* */
 			sme_debug(
 				"CSR SmeDeauthReq disassociated Successfully");
-		} else {
-			sme_warn(
-				"SmeDeauthReq failed with status_code= 0x%08X",
-				status_code);
 		}
 		/* We are not done yet. Get the data and continue roaming */
 		csr_roam_reissue_roam_command(mac, pSmeRsp->sessionId);
@@ -10578,10 +10574,6 @@
 	struct csr_roam_info *roam_info;
 
 	pSmeRsp = (tSirSmeRsp *)msg_buf;
-	sme_debug("Message %d[0x%04X] received in substate %s",
-		pSmeRsp->messageType, pSmeRsp->messageType,
-		mac_trace_getcsr_roam_sub_state(
-			mac->roam.curSubState[pSmeRsp->vdev_id]));
 
 	switch (pSmeRsp->messageType) {
 
@@ -17035,10 +17027,8 @@
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
 	struct csr_roam_session *session;
 
-	if (!CSR_IS_SESSION_VALID(mac_ctx, vdev_id)) {
-		sme_debug("session %d not found", vdev_id);
+	if (!CSR_IS_SESSION_VALID(mac_ctx, vdev_id))
 		return QDF_STATUS_E_INVAL;
-	}
 
 	session = CSR_GET_SESSION(mac_ctx, vdev_id);
 	/* Vdev going down stop roaming */
@@ -17074,10 +17064,8 @@
 {
 	struct csr_roam_session *pSession = CSR_GET_SESSION(mac, sessionId);
 
-	if (!pSession) {
-		sme_err("session %d not found", sessionId);
+	if (!pSession)
 		return;
-	}
 
 	pSession->sessionActive = false;
 	pSession->sessionId = WLAN_UMAC_VDEV_ID_MAX;
@@ -19211,10 +19199,8 @@
 	}
 
 	if (!csr_is_conn_state_connected(mac_ctx, session_id) &&
-	    command == ROAM_SCAN_OFFLOAD_UPDATE_CFG) {
-		sme_debug("Session not in connected state, RSO not sent");
+	    command == ROAM_SCAN_OFFLOAD_UPDATE_CFG)
 		return QDF_STATUS_E_FAILURE;
-	}
 
 	temp_session_id = csr_get_roam_enabled_sta_sessionid(mac_ctx);
 	if ((temp_session_id != WLAN_UMAC_VDEV_ID_MAX) &&
@@ -19465,11 +19451,6 @@
 	else if (command == ROAM_SCAN_OFFLOAD_STOP)
 		csr_update_11k_offload_params(mac_ctx, session, req_buf, FALSE);
 
-	QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
-			"Assoc IE buffer:");
-	QDF_TRACE_HEX_DUMP(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
-			req_buf->assoc_ie.addIEdata, req_buf->assoc_ie.length);
-
 	prev_roaming_state = mlme_get_roam_state(mac_ctx->psoc, session_id);
 	policy_mgr_set_pcl_for_existing_combo(mac_ctx->psoc, PM_STA_MODE);
 
@@ -20020,8 +20001,6 @@
 	qdf_mem_copy(&msg->extended_rateset, &param.extendedRateSet,
 		     sizeof(msg->extended_rateset));
 
-	sme_debug("target_chan_freq %d ch_width %d dot11mode %d",
-		  msg->target_chan_freq, msg->ch_width, msg->dot11mode);
 	status = umac_send_mb_message_to_mac(msg);
 
 	return status;
@@ -20374,7 +20353,7 @@
 		cds_flush_logs(WLAN_LOG_TYPE_FATAL,
 				WLAN_LOG_INDICATOR_HOST_DRIVER,
 				WLAN_LOG_REASON_ROAM_HO_FAILURE,
-				true, false);
+				false, false);
 }
 #endif /* WLAN_FEATURE_ROAM_OFFLOAD */
 
@@ -20400,15 +20379,13 @@
 	uint8_t num_channels = channel_info->numChannels;
 	uint8_t ch_num;
 
-	sme_debug("Num of %s channels,  %d", ch_name, num_channels);
+	sme_debug("Num %s channels,  %d", ch_name, num_channels);
 
 	for (idx = 0; idx < num_channels &&
 		*i < (REG_MAX_SUPP_OPER_CLASSES - 1); idx++) {
 		wlan_reg_freq_to_chan_op_class(
 			mac_ctx->pdev, channel_info->channel_freq_list[idx],
 			false, BIT(BEHAV_NONE), &class, &ch_num);
-		sme_debug("for chan freq %d, op class: %d",
-			  channel_info->channel_freq_list[idx], class);
 
 		found = false;
 		for (j = 0; j < REG_MAX_SUPP_OPER_CLASSES - 1; j++) {
@@ -20461,11 +20438,6 @@
 		}
 	}
 
-	sme_debug("Number of unique supported op classes %d",
-		numClasses);
-	for (i = 0; i < numClasses; i++)
-		sme_debug("supported opClasses[%d] = %d", i, opClasses[i]);
-
 	/* Set the ordered list of op classes in regdomain
 	 * for use by other modules
 	 */
diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c
index 69bcbec..70b1ae5 100644
--- a/core/sme/src/csr/csr_api_scan.c
+++ b/core/sme/src/csr/csr_api_scan.c
@@ -1553,16 +1553,10 @@
 			for (idx = 0; idx < ch_set->numChannels; idx++) {
 				ch_pwr_set->first_freq =
 					ch_set->first_chan_freq;
-				sme_debug(
-					"Setting Channel freq %d",
-					ch_pwr_set->first_freq);
 				ch_pwr_set->numChannels = 1;
 				ch_pwr_set->maxTxPower =
 					QDF_MIN(ch_set->txPower,
 					mac->mlme_cfg->power.max_tx_power);
-				sme_debug(
-					"Setting Max Transmit Power %d",
-					ch_pwr_set->maxTxPower);
 				cbLen += sizeof(tSirMacChanInfo);
 				ch_pwr_set++;
 				count++;
@@ -1578,14 +1572,9 @@
 				break;
 			}
 			ch_pwr_set->first_freq = ch_set->first_chan_freq;
-			sme_debug("Setting Channel Freq %d", ch_pwr_set->first_freq);
 			ch_pwr_set->numChannels = ch_set->numChannels;
 			ch_pwr_set->maxTxPower = QDF_MIN(ch_set->txPower,
 					mac->mlme_cfg->power.max_tx_power);
-			sme_debug(
-				"Setting Max Tx Power %d, nTxPower %d",
-				ch_pwr_set->maxTxPower,
-				mac->mlme_cfg->power.max_tx_power);
 			cbLen += sizeof(tSirMacChanInfo);
 			ch_pwr_set++;
 			count++;
@@ -1624,7 +1613,7 @@
 	uint8_t cc[CFG_COUNTRY_CODE_LEN];
 	/* v_REGDOMAIN_t DomainId */
 
-	sme_debug("Setting Country Code in Cfg %s", countryCode);
+	sme_debug("Set Country in Cfg %s", countryCode);
 	qdf_mem_copy(cc, countryCode, CFG_COUNTRY_CODE_LEN);
 
 	/*
@@ -1650,7 +1639,6 @@
 	 */
 	qdf_mem_copy(mac->mlme_cfg->reg.country_code, cc, CFG_COUNTRY_CODE_LEN);
 	mac->mlme_cfg->reg.country_code_len = CFG_COUNTRY_CODE_LEN;
-	sme_debug("CFG_COUNTRY_CODE changed");
 	sch_edca_profile_update_all(mac);
 	/*
 	 * Need to let HALPHY know about the current domain so it can apply some
diff --git a/core/sme/src/csr/csr_host_scan_roam.c b/core/sme/src/csr/csr_host_scan_roam.c
index 13a13d3..09bbc15 100644
--- a/core/sme/src/csr/csr_host_scan_roam.c
+++ b/core/sme/src/csr/csr_host_scan_roam.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -454,9 +454,6 @@
 {
 	tpCsrNeighborRoamBSSInfo result = NULL;
 
-	sme_debug("Emptying the BSS list. Current count: %d",
-		  csr_ll_count(llist));
-
 	/*
 	 * Pick up the head, remove and free the node till
 	 * the list becomes empty
diff --git a/core/sme/src/csr/csr_neighbor_roam.c b/core/sme/src/csr/csr_neighbor_roam.c
index 518fa0c..79c7b73 100644
--- a/core/sme/src/csr/csr_neighbor_roam.c
+++ b/core/sme/src/csr/csr_neighbor_roam.c
@@ -610,8 +610,6 @@
 	 * clear all the whitelist parameters and remaining
 	 * needs to be retained across connections.
 	 */
-	QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
-		FL("Roaming parameters are reset"));
 	roam_params = &mac_ctx->roam.configParam.roam_params;
 	roam_params->num_ssid_allowed_list = 0;
 	qdf_mem_zero(&roam_params->ssid_allowed_list,
@@ -624,7 +622,6 @@
 {
 	struct roam_triggers triggers;
 
-	sme_debug("Disable roam control config done through SET");
 	sme_set_roam_config_enable(MAC_HANDLE(mac_ctx), vdev_id, 0);
 
 	triggers.vdev_id = vdev_id;
diff --git a/core/sme/src/csr/csr_util.c b/core/sme/src/csr/csr_util.c
index 336d0fe..6c4d42c 100644
--- a/core/sme/src/csr/csr_util.c
+++ b/core/sme/src/csr/csr_util.c
@@ -1000,8 +1000,6 @@
 	uint32_t sap_lfreq, sap_hfreq, intf_lfreq, intf_hfreq;
 	QDF_STATUS status;
 
-	sme_debug("sap_ch_freq: %d sap_phymode: %d", sap_ch_freq, sap_phymode);
-
 	if (mac_ctx->roam.configParam.cc_switch_mode ==
 			QDF_MCC_TO_SCC_SWITCH_DISABLE)
 		return 0;
@@ -1022,7 +1020,7 @@
 	}
 
 	sme_debug("sap_ch:%d sap_phymode:%d sap_cch:%d sap_hbw:%d chb:%d",
-		sap_ch_freq, sap_phymode, sap_cfreq, sap_hbw, chb);
+		  sap_ch_freq, sap_phymode, sap_cfreq, sap_hbw, chb);
 
 	for (i = 0; i < WLAN_MAX_VDEVS; i++) {
 		if (!CSR_IS_SESSION_VALID(mac_ctx, i))
@@ -1055,11 +1053,6 @@
 					session, &sap_ch_freq, &sap_hbw,
 					&sap_cfreq, &intf_ch_freq, &intf_hbw,
 					&intf_cfreq);
-
-			sme_debug("%d: sap_ch:%d sap_hbw:%d sap_cfreq:%d"
-				  " intf_ch:%d intf_hbw:%d, intf_cfreq:%d",
-				  i, sap_ch_freq, sap_hbw, sap_cfreq,
-				  intf_ch_freq, intf_hbw, intf_cfreq);
 		}
 		if (intf_ch_freq &&
 		    ((intf_ch_freq <= wlan_reg_ch_to_freq(CHAN_ENUM_2484) &&
@@ -1070,8 +1063,8 @@
 	}
 
 	sme_debug("intf_ch:%d sap_ch:%d cc_switch_mode:%d, dbs:%d",
-			intf_ch_freq, sap_ch_freq, cc_switch_mode,
-			policy_mgr_is_dbs_enable(mac_ctx->psoc));
+		  intf_ch_freq, sap_ch_freq, cc_switch_mode,
+		  policy_mgr_is_dbs_enable(mac_ctx->psoc));
 
 	if (intf_ch_freq && sap_ch_freq != intf_ch_freq &&
 	    !policy_mgr_is_force_scc(mac_ctx->psoc)) {
diff --git a/core/sme/src/rrm/sme_rrm.c b/core/sme/src/rrm/sme_rrm.c
index d60fb2e..d86c690 100644
--- a/core/sme/src/rrm/sme_rrm.c
+++ b/core/sme/src/rrm/sme_rrm.c
@@ -36,6 +36,7 @@
 #include "rrm_global.h"
 #include <wlan_scan_ucfg_api.h>
 #include <wlan_scan_utils_api.h>
+#include <wlan_reg_services_api.h>
 #include <wlan_utility.h>
 
 /* Roam score for a neighbor AP will be calculated based on the below
@@ -687,7 +688,7 @@
 	ch_idx = pSmeRrmContext->currentIndex;
 	num_chan = pSmeRrmContext->channelList.numOfChannels;
 	if (((ch_idx + 1) < num_chan) && valid_result) {
-		sme_rrm_send_scan_result(mac, 1, freq_list, false);
+		sme_rrm_send_scan_result(mac, 1, &freq_list[ch_idx], false);
 		/* Advance the current index. */
 		pSmeRrmContext->currentIndex++;
 		/* start the timer to issue next request. */
@@ -711,7 +712,7 @@
 		/* Done with the measurement. Clean up all context and send a
 		 * message to PE with measurement done flag set.
 		 */
-		sme_rrm_send_scan_result(mac, 1, freq_list, true);
+		sme_rrm_send_scan_result(mac, 1, &freq_list[ch_idx], true);
 		qdf_mem_free(pSmeRrmContext->channelList.freq_list);
 		pSmeRrmContext->channelList.freq_list = NULL;
 		sme_reset_ese_bcn_req_in_progress(pSmeRrmContext);
@@ -924,7 +925,7 @@
 		ch_idx = sme_rrm_ctx->currentIndex;
 		if ((ch_idx + 1) < sme_rrm_ctx->channelList.numOfChannels) {
 			sme_rrm_send_scan_result(mac_ctx, 1,
-						 freq_list, false);
+						 &freq_list[ch_idx], false);
 			/* Advance the current index. */
 			sme_rrm_ctx->currentIndex++;
 			sme_rrm_issue_scan_req(mac_ctx);
@@ -938,7 +939,7 @@
 			 * send a message to PE with measurement done flag set.
 			 */
 			sme_rrm_send_scan_result(mac_ctx, 1,
-						 freq_list, true);
+						 &freq_list[ch_idx], true);
 			goto free_ch_lst;
 		}
 	}
@@ -961,31 +962,28 @@
 static QDF_STATUS sme_rrm_fill_scan_channels(struct mac_context *mac,
 					     uint8_t *country,
 					     tpRrmSMEContext sme_rrm_context,
-					     uint8_t reg_class,
+					     uint8_t op_class,
 					     uint32_t num_channels)
 {
 	uint32_t num_chan = 0;
 	uint32_t i;
 	uint32_t *freq_list;
-	uint16_t op_class;
-
-	/* List all the channels in the requested RC */
-	wlan_reg_dmn_print_channels_in_opclass(country, reg_class);
+	bool found;
 
 	freq_list = sme_rrm_context->channelList.freq_list;
-
+	found = false;
 	for (i = 0; i < num_channels; i++) {
-		uint8_t chan = (uint8_t)wlan_reg_freq_to_chan(mac->pdev,
-							      freq_list[i]);
-		op_class = wlan_reg_dmn_get_opclass_from_channel(country,
-								 chan,
-								 BWALL);
-
-		if (op_class == reg_class) {
+		found = wlan_reg_country_opclass_freq_check(mac->pdev,
+							    country,
+							    op_class,
+							    freq_list[i]);
+		if (found) {
 			freq_list[num_chan] = freq_list[i];
 			num_chan++;
 		}
+		found = false;
 	}
+
 	sme_rrm_context->channelList.numOfChannels = num_chan;
 	if (sme_rrm_context->channelList.numOfChannels == 0) {
 		qdf_mem_free(sme_rrm_context->channelList.freq_list);
diff --git a/core/wma/inc/wma_api.h b/core/wma/inc/wma_api.h
index 7789ec4..3fb13b2 100644
--- a/core/wma/inc/wma_api.h
+++ b/core/wma/inc/wma_api.h
@@ -285,6 +285,25 @@
 QDF_STATUS wma_set_cts2self_for_p2p_go(void *wma_handle,
 		uint32_t cts2self_for_p2p_go);
 
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+/**
+ * wma_get_roam_scan_ch() - API to get roam scan channel list.
+ * @wma_handle: pointer to wma handle.
+ * @vdev_id: vdev id
+ *
+ * Return: QDF_STATUS.
+ */
+QDF_STATUS wma_get_roam_scan_ch(wmi_unified_t wma,
+				uint8_t vdev_id);
+#else
+static inline
+QDF_STATUS wma_get_roam_scan_ch(wmi_unified_t wma,
+				uint8_t vdev_id)
+{
+	return QDF_STATUS_E_FAILURE;
+}
+#endif
+
 /**
  * wma_set_tx_rx_aggr_size() - set tx rx aggregation size
  * @vdev_id: vdev id
diff --git a/core/wma/inc/wma_internal.h b/core/wma/inc/wma_internal.h
index 20733f5..0148e19 100644
--- a/core/wma/inc/wma_internal.h
+++ b/core/wma/inc/wma_internal.h
@@ -301,6 +301,27 @@
 }
 #endif
 
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+/**
+ * wma_roam_scan_chan_list_event_handler() - roam scan chan list event handler
+ * @handle: wma handle
+ * @event: pointer to fw event
+ * @len: length of event
+ *
+ * Return: Success or Failure status
+ */
+int wma_roam_scan_chan_list_event_handler(WMA_HANDLE handle,
+					  uint8_t *event,
+					  uint32_t len);
+#else
+static inline int
+wma_roam_scan_chan_list_event_handler(WMA_HANDLE handle, uint8_t *event,
+				      uint32_t len)
+{
+	return 0;
+}
+#endif
+
 /**
  * wma_update_per_roam_config() -per roam config parameter updation to FW
  * @handle: wma handle
@@ -1783,6 +1804,16 @@
  */
 bool wma_is_vdev_valid(uint32_t vdev_id);
 
+/*
+ * wma_is_vdev_started() - check whether vdev is started or not
+ * @vdev: pointer to vdev object
+ *
+ * This function verifies the vdev is started nor not
+ *
+ * Return: 'true' if vdev is started else 'false'
+ */
+bool wma_is_vdev_started(struct wlan_objmgr_vdev *vdev);
+
 /**
  * wma_vdev_obss_detection_info_handler - event handler to handle obss detection
  * @handle: the wma handle
diff --git a/core/wma/inc/wma_tgt_cfg.h b/core/wma/inc/wma_tgt_cfg.h
index e3304a5..c5a09f9 100644
--- a/core/wma/inc/wma_tgt_cfg.h
+++ b/core/wma/inc/wma_tgt_cfg.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2020 The Linux Foundation. All rights reserved.
  *
  * Permission to use, copy, modify, and/or distribute this software for
  * any purpose with or without fee is hereby granted, provided that the
@@ -43,6 +43,7 @@
  * @twt_requestor: TWT requestor capability
  * @twt_responder: TWT responder capability
  * @bcn_reception_stats: Beacon Reception stats capability
+ * @is_roam_scan_ch_to_host: Get roam scan channels from fw supported
  */
 struct wma_tgt_services {
 	uint32_t sta_power_save;
@@ -75,6 +76,7 @@
 	bool twt_responder;
 	bool obss_scan_offload;
 	bool bcn_reception_stats;
+	bool is_roam_scan_ch_to_host;
 };
 
 /**
diff --git a/core/wma/inc/wma_types.h b/core/wma/inc/wma_types.h
index bd177b4..5db280b 100644
--- a/core/wma/inc/wma_types.h
+++ b/core/wma/inc/wma_types.h
@@ -165,6 +165,8 @@
 #define WMA_TSM_STATS_RSP              SIR_HAL_TSM_STATS_RSP
 #endif
 
+#define WMA_ROAM_SCAN_CH_REQ              SIR_HAL_ROAM_SCAN_CH_REQ
+
 #define WMA_HT40_OBSS_SCAN_IND                  SIR_HAL_HT40_OBSS_SCAN_IND
 
 #define WMA_SET_MIMOPS_REQ                      SIR_HAL_SET_MIMOPS_REQ
diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c
index 15d9e23..e556407 100644
--- a/core/wma/src/wma_dev_if.c
+++ b/core/wma/src/wma_dev_if.c
@@ -712,7 +712,6 @@
 		wlan_objmgr_peer_obj_delete(obj_peer);
 		/* Unref to decrement ref happened in find_peer */
 		wlan_objmgr_peer_release_ref(obj_peer, WLAN_LEGACY_WMA_ID);
-		WMA_LOGD("Peer %pM deleted", peer_addr);
 	} else {
 		WMA_LOGE("Peer %pM not found", peer_addr);
 	}
@@ -1018,9 +1017,6 @@
 static void wma_handle_hidden_ssid_restart(tp_wma_handle wma,
 					   struct wma_txrx_node *iface)
 {
-	WMA_LOGE("%s: vdev restart event recevied for hidden ssid set using IOCTL",
-		 __func__);
-
 	wlan_vdev_mlme_sm_deliver_evt(iface->vdev,
 				      WLAN_VDEV_SM_EV_RESTART_RESP,
 				      0, NULL);
@@ -1056,14 +1052,13 @@
 	/* for CSA case firmware expects phymode before ch_wd */
 	status = wma_set_peer_param(wma, bssid, WMI_PEER_PHYMODE, fw_phymode,
 				    vdev_id);
-	WMA_LOGD("%s:vdev_id %d fw_phy_mode %d bss_phymode %d status %d",
-		 __func__, vdev_id, fw_phymode, bss_phymode, status);
+
 
 	ch_width = wmi_get_ch_width_from_phy_mode(wma->wmi_handle, fw_phymode);
 	status = wma_set_peer_param(wma, bssid, WMI_PEER_CHWIDTH, ch_width,
 				    vdev_id);
-	WMA_LOGD("%s:vdev_id %d chanwidth %d status %d", __func__, vdev_id,
-		 ch_width, status);
+	wma_debug("vdev_id %d fw_phy_mode %d bss_phymode %d chanwidth %d",
+		  vdev_id, fw_phymode, bss_phymode, ch_width);
 }
 
 static void wma_sap_peer_send_phymode(struct wlan_objmgr_vdev *vdev,
@@ -1122,9 +1117,9 @@
 	wma_set_peer_param(wma, peer_mac_addr, WMI_PEER_CHWIDTH,
 			   max_ch_width_supported, vdev_id);
 
-	wma_debug("nw_type %d old phymode %d new phymode %d bw %d macaddr "QDF_MAC_ADDR_STR,
-		  nw_type, old_peer_phymode, new_phymode,
-		  max_ch_width_supported, QDF_MAC_ADDR_ARRAY(peer_mac_addr));
+	wma_debug("old phymode %d new phymode %d bw %d macaddr "QDF_MAC_ADDR_STR,
+		  old_peer_phymode, new_phymode, max_ch_width_supported,
+		  QDF_MAC_ADDR_ARRAY(peer_mac_addr));
 }
 
 static void
@@ -1224,8 +1219,6 @@
 	}
 #endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
 
-	WMA_LOGD("%s: Enter", __func__);
-
 	wlan_res_cfg = lmac_get_tgt_res_cfg(psoc);
 	if (!wlan_res_cfg) {
 		WMA_LOGE("%s: Wlan resource config is NULL", __func__);
@@ -1343,6 +1336,14 @@
 	return wma_handle->interfaces[vdev_id].vdev_active;
 }
 
+bool wma_is_vdev_started(struct wlan_objmgr_vdev *vdev)
+{
+	if (WLAN_VDEV_S_START == wlan_vdev_mlme_get_state(vdev))
+		return true;
+	else
+		return false;
+}
+
 /**
  * wma_vdev_set_param() - set per vdev params in fw
  * @wmi_handle: wmi handle
diff --git a/core/wma/src/wma_features.c b/core/wma/src/wma_features.c
index 953a678..69022ef 100644
--- a/core/wma/src/wma_features.c
+++ b/core/wma/src/wma_features.c
@@ -1205,10 +1205,9 @@
 
 	csa_offload_event->ies_present_flag = csa_event->ies_present_flag;
 
-	WMA_LOGD("CSA: New Channel = %d freq %d BSSID:%pM",
-		 csa_offload_event->channel, csa_offload_event->csa_chan_freq,
-		 csa_offload_event->bssId);
-	WMA_LOGD("CSA: IEs Present Flag = 0x%x new ch width = %d ch center freq1 = %d ch center freq2 = %d new op class = %d",
+	WMA_LOGD("CSA: BSSID %pM chan %d freq %d flag 0x%x width = %d freq1 = %d freq2 = %d op class = %d",
+		 csa_offload_event->bssId, csa_offload_event->channel,
+		 csa_offload_event->csa_chan_freq,
 		 csa_event->ies_present_flag,
 		 csa_offload_event->new_ch_width,
 		 csa_offload_event->new_ch_freq_seg1,
diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c
index 6480a45..96ada2d 100644
--- a/core/wma/src/wma_main.c
+++ b/core/wma/src/wma_main.c
@@ -867,8 +867,6 @@
 	void *soc = cds_get_context(QDF_MODULE_ID_SOC);
 	struct target_psoc_info *tgt_hdl;
 
-	WMA_LOGD("wmihandle %pK", wma->wmi_handle);
-
 	if (!mac) {
 		WMA_LOGE("%s: Failed to get mac", __func__);
 		return;
@@ -3264,6 +3262,11 @@
 					   wma_roam_stats_event_handler,
 					   WMA_RX_SERIALIZER_CTX);
 
+	wmi_unified_register_event_handler(
+		wma_handle->wmi_handle, wmi_roam_scan_chan_list_id,
+		wma_roam_scan_chan_list_event_handler,
+		WMA_RX_SERIALIZER_CTX);
+
 	wma_register_pmkid_req_event_handler(wma_handle);
 #endif /* WLAN_FEATURE_ROAM_OFFLOAD */
 	wmi_unified_register_event_handler(wma_handle->wmi_handle,
@@ -4663,6 +4666,9 @@
 
 	if (wmi_service_enabled(wmi_handle, wmi_service_vdev_latency_config))
 		g_fw_wlan_feat_caps |= (1 << VDEV_LATENCY_CONFIG);
+	if (wmi_service_enabled(wmi_handle,
+				wmi_roam_scan_chan_list_to_host_support))
+		cfg->is_roam_scan_ch_to_host = true;
 }
 
 /**
@@ -5340,8 +5346,10 @@
 	uint8_t supported_band = 0;
 
 	if (!policy_mgr_find_if_fw_supports_dbs(psoc) ||
-	    !policy_mgr_find_if_hwlist_has_dbs(psoc))
+	    !policy_mgr_find_if_hwlist_has_dbs(psoc)) {
+		wma_debug("DBS is not mandatory");
 		return false;
+	}
 
 	total_mac_phy_cnt = target_psoc_get_total_mac_phy_cnt(tgt_hdl);
 	mac_phy_cap = target_psoc_get_mac_phy_cap(tgt_hdl);
@@ -7541,22 +7549,35 @@
 	QDF_STATUS status;
 	struct set_arp_stats *arp_stats;
 	tp_wma_handle wma_handle = (tp_wma_handle) handle;
+	struct wlan_objmgr_vdev *vdev;
 
 	if (!wma_handle || !wma_handle->wmi_handle) {
 		WMA_LOGE("%s: WMA is closed, cannot send per roam config",
 			 __func__);
 		return;
 	}
+
 	if (!wma_is_vdev_valid(req_buf->vdev_id)) {
 		WMA_LOGE("vdev id:%d is not active", req_buf->vdev_id);
 		return;
 	}
 
+	vdev = wlan_objmgr_get_vdev_by_id_from_psoc(wma_handle->psoc,
+						    req_buf->vdev_id,
+						    WLAN_LEGACY_WMA_ID);
+	if (!wma_is_vdev_started(vdev)) {
+		WMA_LOGD("vdev id:%d is not started", req_buf->vdev_id);
+		goto release_ref;
+	}
+
 	arp_stats = (struct set_arp_stats *)req_buf;
 	status = wmi_unified_set_arp_stats_req(wma_handle->wmi_handle,
 					       arp_stats);
 	if (QDF_IS_STATUS_ERROR(status))
 		wma_err("failed to set arp stats to FW");
+
+release_ref:
+	wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_WMA_ID);
 }
 
 /**
@@ -8917,6 +8938,9 @@
 		wma_update_roam_offload_flag(wma_handle, msg->bodyptr);
 		qdf_mem_free(msg->bodyptr);
 		break;
+	case WMA_ROAM_SCAN_CH_REQ:
+		wma_get_roam_scan_ch(wma_handle->wmi_handle, msg->bodyval);
+		break;
 	default:
 		WMA_LOGD("Unhandled WMA message of type %d", msg->type);
 		if (msg->bodyptr)
@@ -9036,15 +9060,16 @@
 		    msg->chan_weights.saved_chan_list[i]))
 			msg->chan_weights.weighed_valid_list[i] =
 				WEIGHT_OF_DISALLOWED_CHANNELS;
-		WMA_LOGD("%s: freq:%d weight[%d]=%d", __func__,
-			 msg->chan_weights.saved_chan_list[i], i,
-			 msg->chan_weights.weighed_valid_list[i]);
 	}
 
 	if (!QDF_IS_STATUS_SUCCESS(status)) {
 		WMA_LOGE("%s: Error in creating weighed pcl", __func__);
 		return status;
 	}
+	wma_debug("Dump channel list send to wmi");
+	policy_mgr_dump_channel_list(msg->chan_weights.saved_num_chan,
+				     msg->chan_weights.saved_chan_list,
+				     msg->chan_weights.weighed_valid_list);
 
 	if (wmi_unified_pdev_set_pcl_cmd(wma_handle->wmi_handle,
 					 &msg->chan_weights))
diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c
index e5d3187..3783a64 100644
--- a/core/wma/src/wma_mgmt.c
+++ b/core/wma/src/wma_mgmt.c
@@ -2221,7 +2221,6 @@
 			 SIR_MAX_BEACON_SIZE - sizeof(uint32_t)));
 		return QDF_STATUS_E_INVAL;
 	}
-	wma_debug("Storing received beacon template buf to local buffer");
 	qdf_spin_lock_bh(&bcn->lock);
 
 	/*
@@ -2446,7 +2445,6 @@
 
 	if (wmi_service_enabled(wma->wmi_handle,
 				   wmi_service_beacon_offload)) {
-		wma_nofl_debug("Beacon Offload Enabled Sending Unified command");
 		status = wma_unified_bcn_tmpl_send(wma, vdev_id, bcn_info, 4);
 		if (QDF_IS_STATUS_ERROR(status)) {
 			WMA_LOGE("%s : wmi_unified_bcn_tmpl_send Failed ",
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c
index 4968bfd..a2486a4 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/core/wma/src/wma_scan_roam.c
@@ -162,11 +162,6 @@
 		wma_handle->saved_chan.ch_freq_list[i] =
 					chan_list->chanParam[i].freq;
 
-		WMA_LOGD("chan[%d] = freq:%u DFS:%d tx power:%d",
-			 i, chan_p->mhz,
-			 chan_list->chanParam[i].dfsSet,
-			 chan_list->chanParam[i].pwr);
-
 		if (chan_list->chanParam[i].dfsSet) {
 			chan_p->is_chan_passive = 1;
 			chan_p->dfs_set = 1;
@@ -728,7 +723,8 @@
 {
 	QDF_STATUS status;
 	int i;
-	uint32_t *chan_list_mhz = NULL;
+	uint32_t *chan_list_mhz = NULL, buf_len = 0, len = 0;
+	uint8_t *chan_buff = NULL;
 
 	if (!wma_is_vdev_valid(vdev_id)) {
 		WMA_LOGE("%s: Invalid vdev id:%d", __func__, vdev_id);
@@ -739,12 +735,27 @@
 		chan_list_mhz = qdf_mem_malloc(chan_count * sizeof(*chan_list_mhz));
 		if (!chan_list_mhz)
 			return QDF_STATUS_E_NOMEM;
+
+		/*
+		 * Buffer of (num channl * 5) + 1  to consider the 4 char freq
+		 * and 1 space after it for each channel and 1 to end the string
+		 * with NULL.
+		 */
+		buf_len = (chan_count * 5) + 1;
+		chan_buff = qdf_mem_malloc(buf_len);
 	}
 
 	for (i = 0; ((i < chan_count) &&
 		     (i < SIR_ROAM_MAX_CHANNELS)); i++) {
 		chan_list_mhz[i] = chan_freq_list[i];
-		WMA_LOGD("%d,", chan_list_mhz[i]);
+		if (chan_buff)
+			len += qdf_scnprintf(chan_buff + len, buf_len - len,
+					     " %d", chan_list_mhz[i]);
+	}
+
+	if (chan_buff) {
+		wma_debug("Freq list[%d]:%s", chan_count, chan_buff);
+		qdf_mem_free(chan_buff);
 	}
 
 	status = wmi_unified_roam_scan_offload_chan_list_cmd(
@@ -3262,6 +3273,69 @@
 	return 0;
 }
 
+int wma_roam_scan_chan_list_event_handler(WMA_HANDLE handle,
+					  uint8_t *event,
+					  uint32_t len)
+{
+	tp_wma_handle wma = (tp_wma_handle)handle;
+	WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID_param_tlvs *param_buf;
+	wmi_roam_scan_channel_list_event_fixed_param *fixed_param;
+	uint8_t vdev_id, i = 0, num_ch = 0;
+	struct roam_scan_ch_resp *resp;
+	struct scheduler_msg sme_msg = {0};
+
+	param_buf = (WMI_ROAM_SCAN_CHANNEL_LIST_EVENTID_param_tlvs *)event;
+	if (!param_buf) {
+		wma_err_rl("NULL event received from target");
+		return -EINVAL;
+	}
+
+	fixed_param = param_buf->fixed_param;
+	if (!fixed_param) {
+		wma_err_rl(" NULL fixed param");
+		return -EINVAL;
+	}
+
+	vdev_id = fixed_param->vdev_id;
+	if (vdev_id >= wma->max_bssid) {
+		wma_err_rl("Invalid vdev_id %d", vdev_id);
+		return -EINVAL;
+	}
+
+	num_ch = (param_buf->num_channel_list <
+		WNI_CFG_VALID_CHANNEL_LIST_LEN) ?
+		param_buf->num_channel_list :
+		WNI_CFG_VALID_CHANNEL_LIST_LEN;
+
+	resp = qdf_mem_malloc(sizeof(struct roam_scan_ch_resp) +
+		num_ch * sizeof(param_buf->channel_list[0]));
+	if (!resp) {
+		wma_err_rl("Failed to alloc resp message");
+		return -EINVAL;
+	}
+
+	resp->chan_list = (uint32_t *)(resp + 1);
+	resp->vdev_id = vdev_id;
+	resp->command_resp = fixed_param->command_response;
+	resp->num_channels = param_buf->num_channel_list;
+
+	for (i = 0; i < num_ch; i++)
+		resp->chan_list[i] = param_buf->channel_list[i];
+
+	sme_msg.type = eWNI_SME_GET_ROAM_SCAN_CH_LIST_EVENT;
+	sme_msg.bodyptr = resp;
+
+	if (scheduler_post_message(QDF_MODULE_ID_WMA,
+				   QDF_MODULE_ID_SME,
+				   QDF_MODULE_ID_SME, &sme_msg)) {
+		WMA_LOGE(FL("Failed to post msg to SME"));
+		qdf_mem_free(sme_msg.bodyptr);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
 /**
  * wma_get_trigger_detail_str  - Return roam trigger string from the
@@ -3546,13 +3620,20 @@
 		buf_left -= buf_cons;
 		tmp += buf_cons;
 	}
-	mlme_get_converted_timestamp(neigh_rpt->req_time, time);
-	WMA_LOGI("%s [%s] RX: VDEV[%d] %s", time,
-		 (type == 1) ? "BTM" : "NEIGH_RPT", vdev_id, buf);
 
-	mlme_get_converted_timestamp(neigh_rpt->resp_time, time1);
-	WMA_LOGI("%s [%s] TX: VDEV[%d]", time1,
-		 (type == 1) ? "BTM" : "NEIGH_RPT", vdev_id);
+	mlme_get_converted_timestamp(neigh_rpt->req_time, time);
+	WMA_LOGI("%s [%s] VDEV[%d]", time,
+		 (type == 1) ? "BTM_QUERY" : "NEIGH_RPT_REQ", vdev_id);
+
+	if (neigh_rpt->resp_time) {
+		mlme_get_converted_timestamp(neigh_rpt->resp_time, time1);
+		WMA_LOGI("%s [%s] VDEV[%d] %s", time1,
+			 (type == 1) ? "BTM_REQ" : "NEIGH_RPT_RSP", vdev_id,
+			 (num_ch > 0) ? buf : "NO Ch update");
+	} else {
+		WMA_LOGI("%s No response received from AP",
+			 (type == 1) ? "BTM" : "NEIGH_RPT");
+	}
 	qdf_mem_free(buf);
 }
 
diff --git a/core/wma/src/wma_utils.c b/core/wma/src/wma_utils.c
index 95a62eb..cf090b8 100644
--- a/core/wma/src/wma_utils.c
+++ b/core/wma/src/wma_utils.c
@@ -1795,12 +1795,6 @@
 		return -EINVAL;
 	}
 
-	WMA_LOGD("%s: tot_num_tx_pwr_lvls: %u num_tx_pwr_lvls: %u pwr_lvl_offset: %u radio_id: %u",
-			__func__, fixed_param->total_num_tx_power_levels,
-			 fixed_param->num_tx_power_levels,
-			 fixed_param->power_level_offset,
-			 fixed_param->radio_id);
-
 	if (fixed_param->num_tx_power_levels > ((WMI_SVC_MSG_MAX_SIZE -
 	    sizeof(*fixed_param)) / sizeof(uint32_t)) ||
 	    fixed_param->num_tx_power_levels >
@@ -1879,11 +1873,12 @@
 		link_stats_results->moreResultToFollow = 0;
 		link_stats_results->nr_received++;
 	}
-
-	WMA_LOGD("%s: moreResultToFollow: %u nr: %u nr_received: %u",
-			__func__, link_stats_results->moreResultToFollow,
-			link_stats_results->num_radio,
-			link_stats_results->nr_received);
+	WMA_LOGD("num tx pwr lvls %u num tx pwr lvls %u pwr lvl offset %u radio_id %u moretofollow: %u nr_received: %u",
+		 fixed_param->total_num_tx_power_levels,
+		 fixed_param->num_tx_power_levels,
+		 fixed_param->power_level_offset, fixed_param->radio_id,
+		 link_stats_results->moreResultToFollow,
+		 link_stats_results->nr_received);
 
 	/* If still data to receive, return from here */
 	if (link_stats_results->moreResultToFollow)
@@ -2038,17 +2033,6 @@
 		 fixed_param->request_id, fixed_param->num_radio,
 		 fixed_param->more_radio_events);
 
-	WMA_LOGD("Radio Info: radio_id: %u on_time: %u tx_time: %u rx_time: %u on_time_scan: %u on_time_nbd: %u on_time_gscan: %u on_time_roam_scan: %u",
-		 radio_stats->radio_id, radio_stats->on_time,
-		 radio_stats->tx_time, radio_stats->rx_time,
-		 radio_stats->on_time_scan, radio_stats->on_time_nbd,
-		 radio_stats->on_time_gscan, radio_stats->on_time_roam_scan);
-
-	WMA_LOGD("on_time_pno_scan: %u on_time_hs20: %u num_channels: %u on_time_host_scan: %u, on_time_lpi_scan: %u",
-		 radio_stats->on_time_pno_scan, radio_stats->on_time_hs20,
-		 radio_stats->num_channels, radio_stats->on_time_host_scan,
-		 radio_stats->on_time_lpi_scan);
-
 	results = (uint8_t *) link_stats_results->results;
 	t_radio_stats = (uint8_t *) radio_stats;
 	t_channel_stats = (uint8_t *) channel_stats;
@@ -2089,11 +2073,10 @@
 		next_chan_offset = WMI_TLV_HDR_SIZE;
 		WMA_LOGD("Channel Stats Info");
 		for (count = 0; count < radio_stats->num_channels; count++) {
-			WMA_LOGD("channel_width %u center_freq %u center_freq0 %u",
-				 channel_stats->channel_width,
+			WMA_LOGD("freq %u width %u freq0 %u freq1 %u awake time %u cca busy time %u",
 				 channel_stats->center_freq,
-				 channel_stats->center_freq0);
-			WMA_LOGD("center_freq1 %u radio_awake_time %u cca_busy_time %u",
+				 channel_stats->channel_width,
+				 channel_stats->center_freq0,
 				 channel_stats->center_freq1,
 				 channel_stats->radio_awake_time,
 				 channel_stats->cca_busy_time);
@@ -2782,6 +2765,11 @@
 						param_buf->fixed_param;
 	ht_info = (wmi_vdev_rate_ht_info *) param_buf->ht_info;
 
+	if (!ht_info) {
+		wma_err("Invalid ht_info");
+		return -EINVAL;
+	}
+
 	WMA_LOGD("num_vdev_stats: %d", event->num_vdev_stats);
 
 	if (event->num_vdev_stats > ((WMI_SVC_MSG_MAX_SIZE -
@@ -3726,6 +3714,47 @@
 }
 #endif
 
+#ifdef WLAN_FEATURE_ROAM_OFFLOAD
+QDF_STATUS wma_get_roam_scan_ch(wmi_unified_t wmi_handle,
+				uint8_t vdev_id)
+{
+	QDF_STATUS status = QDF_STATUS_E_FAILURE;
+	struct roam_scan_ch_resp *roam_ch;
+	struct scheduler_msg sme_msg = {0};
+
+	if (!wma_is_vdev_valid(vdev_id)) {
+		wma_err("vdev_id: %d is not active", vdev_id);
+		return QDF_STATUS_E_INVAL;
+	}
+
+	status = wmi_unified_get_roam_scan_ch_list(wmi_handle, vdev_id);
+	if (QDF_IS_STATUS_SUCCESS(status))
+		return status;
+	roam_ch = qdf_mem_malloc(sizeof(struct roam_scan_ch_resp));
+	if (!roam_ch) {
+		wma_err("Failed to alloc resp");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	roam_ch->command_resp = 1;
+	roam_ch->num_channels = 0;
+	roam_ch->chan_list = NULL;
+	roam_ch->vdev_id = vdev_id;
+	sme_msg.type = eWNI_SME_GET_ROAM_SCAN_CH_LIST_EVENT;
+	sme_msg.bodyptr = roam_ch;
+
+	if (scheduler_post_message(QDF_MODULE_ID_WMA,
+				   QDF_MODULE_ID_SME,
+				   QDF_MODULE_ID_SME, &sme_msg)) {
+		wma_err("Failed to post msg to SME");
+		qdf_mem_free(roam_ch);
+		return QDF_STATUS_E_INVAL;
+	}
+
+	return status;
+}
+#endif
+
 bool wma_capability_enhanced_mcast_filter(void)
 {
 	tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
diff --git a/os_if/p2p/src/wlan_cfg80211_p2p.c b/os_if/p2p/src/wlan_cfg80211_p2p.c
index 15ee29f..ddeba7b 100644
--- a/os_if/p2p/src/wlan_cfg80211_p2p.c
+++ b/os_if/p2p/src/wlan_cfg80211_p2p.c
@@ -54,10 +54,6 @@
 	struct vdev_osif_priv *osif_priv;
 	struct wireless_dev *wdev;
 
-	osif_debug("user data:%pK, vdev id:%d, rssi:%d, buf:%pK, len:%d",
-		   user_data, rx_frame->vdev_id, rx_frame->rx_rssi,
-		   rx_frame->buf, rx_frame->frame_len);
-
 	psoc = user_data;
 	if (!psoc) {
 		osif_err("psoc is null");