diff --git a/Kbuild b/Kbuild
index 2011712..7260cb0 100644
--- a/Kbuild
+++ b/Kbuild
@@ -2027,6 +2027,8 @@
 cppflags-y += -DMSM_PLATFORM
 endif
 
+cppflags-$(CONFIG_WLAN_FEATURE_DP_BUS_BANDWIDTH) += -DWLAN_FEATURE_DP_BUS_BANDWIDTH
+
 cppflags-y +=	-DQCA_SUPPORT_TXRX_LOCAL_PEER_ID
 
 cppflags-$(CONFIG_WLAN_TX_FLOW_CONTROL_V2) += -DQCA_LL_TX_FLOW_CONTROL_V2
diff --git a/configs/default_defconfig b/configs/default_defconfig
index 51ae545..ca46c13 100644
--- a/configs/default_defconfig
+++ b/configs/default_defconfig
@@ -778,3 +778,7 @@
 #Enable STATE MACHINE HISTORY
 CONFIG_SM_ENG_HIST := n
 endif
+
+ifeq (y,$(findstring y,$(CONFIG_ARCH_MSM) $(CONFIG_ARCH_QCOM)))
+CONFIG_WLAN_FEATURE_DP_BUS_BANDWIDTH := y
+endif
diff --git a/configs/genoa.common b/configs/genoa.common
index 47463e9..40b1a47 100644
--- a/configs/genoa.common
+++ b/configs/genoa.common
@@ -210,4 +210,9 @@
 #Enable STATE MACHINE HISTORY
 CONFIG_SM_ENG_HIST := n
 endif
+
+ifeq (y,$(findstring y,$(CONFIG_ARCH_MSM) $(CONFIG_ARCH_QCOM)))
+CONFIG_WLAN_FEATURE_DP_BUS_BANDWIDTH := y
+endif
+
 ###################################
diff --git a/configs/qca6174_defconfig b/configs/qca6174_defconfig
index 6476f5f..1707ad8 100644
--- a/configs/qca6174_defconfig
+++ b/configs/qca6174_defconfig
@@ -689,3 +689,7 @@
 endif
 #Enable Beacon Reception Stats
 CONFIG_FEATURE_BECN_STATS := y
+
+ifeq (y,$(findstring y,$(CONFIG_ARCH_MSM) $(CONFIG_ARCH_QCOM)))
+CONFIG_WLAN_FEATURE_DP_BUS_BANDWIDTH := y
+endif
diff --git a/configs/qca6390_defconfig b/configs/qca6390_defconfig
index 365c349..59926f7 100644
--- a/configs/qca6390_defconfig
+++ b/configs/qca6390_defconfig
@@ -713,3 +713,7 @@
 endif
 #Enable Beacon Reception Stats
 CONFIG_FEATURE_BECN_STATS := y
+
+ifeq (y,$(findstring y,$(CONFIG_ARCH_MSM) $(CONFIG_ARCH_QCOM)))
+CONFIG_WLAN_FEATURE_DP_BUS_BANDWIDTH := y
+endif
diff --git a/core/hdd/inc/hdd_dp_cfg.h b/core/hdd/inc/hdd_dp_cfg.h
index 6c14808..6a8acce 100644
--- a/core/hdd/inc/hdd_dp_cfg.h
+++ b/core/hdd/inc/hdd_dp_cfg.h
@@ -332,7 +332,8 @@
 		"Max pause queue depth in high bandwidth band")
 
 #endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
-#ifdef MSM_PLATFORM
+
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 /*
  * <ini>
  * gBusBandwidthHighThreshold - bus bandwidth high threshold
@@ -600,8 +601,7 @@
 		500, \
 		CFG_VALUE_OR_DEFAULT, \
 		"High Threshold inorder to trigger High Tx Tp")
-
-#endif /* MSM_PLATFORM */
+#endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
 
 /*
  * <ini>
@@ -956,8 +956,8 @@
 #define CFG_HDD_DP_LEGACY_TX_FLOW
 #endif
 
-#ifdef MSM_PLATFORM
-#define CFG_HDD_DP_MSM_PLATFORM \
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
+#define CFG_HDD_DP_BUS_BANDWIDTH \
 	CFG(CFG_DP_BUS_BANDWIDTH_HIGH_THRESHOLD) \
 	CFG(CFG_DP_BUS_BANDWIDTH_MEDIUM_THRESHOLD) \
 	CFG(CFG_DP_BUS_BANDWIDTH_LOW_THRESHOLD) \
@@ -970,7 +970,7 @@
 	CFG(CFG_DP_TCP_DELACK_TIMER_COUNT) \
 	CFG(CFG_DP_TCP_TX_HIGH_TPUT_THRESHOLD)
 #else
-#define CFG_HDD_DP_MSM_PLATFORM
+#define CFG_HDD_DP_BUS_BANDWIDTH
 #endif
 
 #define CFG_HDD_DP_ALL \
@@ -987,7 +987,7 @@
 	CFG(CFG_DP_NUM_DP_RX_THREADS) \
 	CFG(CFG_DP_HTC_WMI_CREDIT_CNT) \
 	CFG_DP_ENABLE_FASTPATH_ALL \
-	CFG_HDD_DP_MSM_PLATFORM \
+	CFG_HDD_DP_BUS_BANDWIDTH \
 	CFG_HDD_DP_LEGACY_TX_FLOW \
 	CFG_DP_ENABLE_NUD_TRACKING_ALL \
 	CFG_DP_CONFIG_DP_TRACE_ALL
diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h
index 1339afa..000e3c6 100644
--- a/core/hdd/inc/wlan_hdd_cfg.h
+++ b/core/hdd/inc/wlan_hdd_cfg.h
@@ -154,7 +154,8 @@
 	bool enable_packet_log;
 #endif
 	uint32_t rx_mode;
-#ifdef MSM_PLATFORM
+
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 	uint32_t bus_bw_high_threshold;
 	uint32_t bus_bw_medium_threshold;
 	uint32_t bus_bw_low_threshold;
@@ -167,7 +168,8 @@
 	uint32_t tcp_tx_high_tput_thres;
 	uint32_t tcp_delack_timer_count;
 	bool     enable_tcp_param_update;
-#endif /* MSM_PLATFORM */
+#endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
+
 #ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
 	uint32_t tx_flow_low_watermark;
 	uint32_t tx_flow_hi_watermark_offset;
diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h
index a18f659..7d93d69 100644
--- a/core/hdd/inc/wlan_hdd_main.h
+++ b/core/hdd/inc/wlan_hdd_main.h
@@ -103,7 +103,7 @@
 #include "wma_sar_public_structs.h"
 #include "wlan_mlme_ucfg_api.h"
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 #include "qdf_periodic_work.h"
 #endif
 
@@ -1256,12 +1256,14 @@
 	struct work_struct scan_block_work;
 	qdf_list_t blocked_scan_request_q;
 	qdf_mutex_t blocked_scan_request_q_lock;
-#ifdef MSM_PLATFORM
+
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 	unsigned long prev_rx_packets;
 	unsigned long prev_tx_packets;
 	uint64_t prev_fwd_tx_packets;
 	uint64_t prev_fwd_rx_packets;
-#endif
+#endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
+
 #if  defined(QCA_LL_LEGACY_TX_FLOW_CONTROL) || \
 				defined(QCA_HL_NETDEV_FLOW_CONTROL)
 	qdf_mc_timer_t tx_flow_control_timer;
@@ -1658,7 +1660,7 @@
 	/* Flag keeps track of wiphy suspend/resume */
 	bool is_wiphy_suspended;
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 	struct qdf_periodic_work bus_bw_work;
 	int cur_vote_level;
 	spinlock_t bus_bw_lock;
@@ -1667,7 +1669,7 @@
 	uint64_t prev_rx_offload_pkts;
 	int cur_tx_level;
 	uint64_t prev_tx;
-#endif
+#endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
 
 	struct completion ready_to_suspend;
 	/* defining the solution type */
@@ -2181,7 +2183,8 @@
 
 QDF_STATUS __wlan_hdd_validate_mac_address(struct qdf_mac_addr *mac_addr,
 					   const char *func);
-#ifdef MSM_PLATFORM
+
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 /**
  * hdd_bus_bw_compute_timer_start() - start the bandwidth timer
  * @hdd_ctx: the global hdd context
@@ -2242,7 +2245,6 @@
 
 #define GET_CUR_RX_LVL(config) ((config)->cur_rx_level)
 #define GET_BW_COMPUTE_INTV(config) ((config)->bus_bw_compute_interval)
-
 #else
 
 static inline
@@ -2279,7 +2281,7 @@
 #define GET_CUR_RX_LVL(config) 0
 #define GET_BW_COMPUTE_INTV(config) 0
 
-#endif
+#endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
 
 int hdd_qdf_trace_enable(QDF_MODULE_ID module_id, uint32_t bitmask);
 
@@ -3547,7 +3549,7 @@
 			    struct qdf_mac_addr *curr_mac_addr,
 			    struct qdf_mac_addr *new_mac_addr);
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 /**
  * wlan_hdd_send_tcp_param_update_event() - Send vendor event to update
  * TCP parameter through Wi-Fi HAL
@@ -3595,8 +3597,7 @@
 					  uint8_t dir)
 {
 }
-
-#endif /* MSM_PLATFORM */
+#endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
 
 #ifdef WLAN_FEATURE_MOTION_DETECTION
 /**
diff --git a/core/hdd/inc/wlan_hdd_tx_rx.h b/core/hdd/inc/wlan_hdd_tx_rx.h
index d78f13b..e48da66 100644
--- a/core/hdd/inc/wlan_hdd_tx_rx.h
+++ b/core/hdd/inc/wlan_hdd_tx_rx.h
@@ -287,7 +287,7 @@
 void hdd_send_rps_disable_ind(struct hdd_adapter *adapter);
 void wlan_hdd_classify_pkt(struct sk_buff *skb);
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 void hdd_reset_tcp_delack(struct hdd_context *hdd_ctx);
 bool hdd_is_current_high_throughput(struct hdd_context *hdd_ctx);
 #define HDD_MSM_CFG(msm_cfg)	msm_cfg
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c
index 409fd14..adf6ce7 100644
--- a/core/hdd/src/wlan_hdd_assoc.c
+++ b/core/hdd/src/wlan_hdd_assoc.c
@@ -1436,7 +1436,7 @@
 				       adapter->vdev);
 #endif
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 		/* start timer in sta/p2p_cli */
 		spin_lock_bh(&hdd_ctx->bus_bw_lock);
 		adapter->prev_tx_packets = adapter->stats.tx_packets;
@@ -1488,7 +1488,7 @@
 					  false,
 					  adapter->vdev);
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 		/* stop timer in sta/p2p_cli */
 		spin_lock_bh(&hdd_ctx->bus_bw_lock);
 		adapter->prev_tx_packets = 0;
diff --git a/core/hdd/src/wlan_hdd_hostapd.c b/core/hdd/src/wlan_hdd_hostapd.c
index af1f8dd..865fd5b 100644
--- a/core/hdd/src/wlan_hdd_hostapd.c
+++ b/core/hdd/src/wlan_hdd_hostapd.c
@@ -2234,7 +2234,7 @@
 			QDF_TRACE_DEFAULT_PDEV_ID,
 			QDF_PROTO_TYPE_MGMT, QDF_PROTO_MGMT_ASSOC));
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 		/* start timer in sap/p2p_go */
 		if (ap_ctx->ap_active == false) {
 			spin_lock_bh(&hdd_ctx->bus_bw_lock);
@@ -2411,7 +2411,7 @@
 						NULL,
 						adapter->device_mode);
 		}
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 		/*stop timer in sap/p2p_go */
 		if (ap_ctx->ap_active == false) {
 			spin_lock_bh(&hdd_ctx->bus_bw_lock);
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index f79356d..966c9f6 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -80,6 +80,11 @@
 #include <linux/compat.h>
 #include <linux/reboot.h>
 #include <linux/ethtool.h>
+
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
+#include "qdf_periodic_work.h"
+#endif
+
 #ifdef MSM_PLATFORM
 #include <soc/qcom/subsystem_restart.h>
 #endif
@@ -375,7 +380,7 @@
 }
 #endif /* QCA_HL_NETDEV_FLOW_CONTROL */
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 void wlan_hdd_update_tcp_rx_param(struct hdd_context *hdd_ctx, void *data)
 {
 	if (!hdd_ctx) {
@@ -533,7 +538,7 @@
 	hdd_err("nla_put api failed");
 	kfree_skb(vendor_event);
 }
-#endif /* MSM_PLATFORM */
+#endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
 
 /**
  * wlan_hdd_txrx_pause_cb() - pause callback from txrx layer
@@ -7682,7 +7687,7 @@
 	return ret_val;
 }
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 /**
  * hdd_display_periodic_stats() - Function to display periodic stats
  * @hdd_ctx - handle to hdd context
@@ -8087,8 +8092,7 @@
 
 	hdd_exit();
 }
-
-#endif /* MSM_PLATFORM */
+#endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
 
 /**
  * wlan_hdd_init_tx_rx_histogram() - init tx/rx histogram stats
@@ -8148,7 +8152,7 @@
 {
 	int i;
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 	hdd_nofl_info("BW compute Interval: %dms",
 		      hdd_ctx->config->bus_bw_compute_interval);
 	hdd_nofl_info("BW High TH: %d BW Med TH: %d BW Low TH: %d",
@@ -8162,7 +8166,7 @@
 		      hdd_ctx->config->tcp_delack_thres_low);
 	hdd_nofl_info("TCP TX HIGH TP TH: %d (Use to set tcp_output_bytes_limit)",
 		      hdd_ctx->config->tcp_tx_high_tput_thres);
-#endif
+#endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
 
 	hdd_nofl_info("Total entries: %d Current index: %d",
 		      NUM_TX_RX_HISTOGRAM, hdd_ctx->hdd_txrx_hist_idx);
@@ -12629,7 +12633,7 @@
 	return con_sap_adapter;
 }
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 static inline bool hdd_adapter_is_sta(struct hdd_adapter *adapter)
 {
 	return adapter->device_mode == QDF_STA_MODE ||
@@ -12714,7 +12718,7 @@
 
 	hdd_exit();
 }
-#endif
+#endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
 
 /**
  * wlan_hdd_stop_sap() - This function stops bss of SAP.
diff --git a/core/hdd/src/wlan_hdd_tx_rx.c b/core/hdd/src/wlan_hdd_tx_rx.c
index 162d955..7399702 100644
--- a/core/hdd/src/wlan_hdd_tx_rx.c
+++ b/core/hdd/src/wlan_hdd_tx_rx.c
@@ -2829,7 +2829,7 @@
 	wlan_hdd_netif_queue_control(adapter, action, reason);
 }
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 /**
  * hdd_reset_tcp_delack() - Reset tcp delack value to default
  * @hdd_ctx: Handle to hdd context
@@ -2864,7 +2864,7 @@
 	else
 		return true;
 }
-#endif /* MSM_PLATFORM */
+#endif
 
 #ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
 /**
@@ -2903,7 +2903,7 @@
 }
 #endif
 
-#ifdef MSM_PLATFORM
+#ifdef WLAN_FEATURE_DP_BUS_BANDWIDTH
 /**
  * hdd_ini_tx_flow_control() - Initialize INIs concerned about bus bandwidth
  * @config: pointer to hdd config
@@ -2953,7 +2953,7 @@
 }
 #else
 static void hdd_ini_bus_bandwidth(struct hdd_config *config,
-				  struct wlan_objmgr_psoc *psoc)
+				 struct wlan_objmgr_psoc *psoc)
 {
 }
 
@@ -2961,7 +2961,7 @@
 				 struct wlan_objmgr_psoc *psoc)
 {
 }
-#endif
+#endif /*WLAN_FEATURE_DP_BUS_BANDWIDTH*/
 
 /**
  * hdd_set_rx_mode_value() - set rx_mode values
