qcacld-3.0: PMO feature flag disable (part two)

This is the change for PMO feature flag disable.

Change-Id: I3e0624c034ddfcad567534ffbbcd85735b8ea0d6
CRs-Fixed: 2243952
diff --git a/Kbuild b/Kbuild
index 46773c4..903e9a2 100644
--- a/Kbuild
+++ b/Kbuild
@@ -703,6 +703,7 @@
 CLD_TARGET_IF_INC := -I$(WLAN_ROOT)/$(CLD_TARGET_IF_DIR)/pmo/inc \
 	 -I$(WLAN_ROOT)/$(CLD_TARGET_IF_DIR)/pmo/src
 
+ifeq ($(CONFIG_POWER_MANAGEMENT_OFFLOAD), y)
 CLD_TARGET_IF_OBJ := $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_arp.o \
 		$(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_gtk.o \
 		$(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_hw_filter.o \
@@ -714,6 +715,7 @@
 		$(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_static_config.o \
 		$(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_suspend_resume.o \
 		$(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_wow.o
+endif
 
 ifeq ($(CONFIG_WLAN_FEATURE_DSRC), y)
 CLD_TARGET_IF_INC += -I$(WLAN_ROOT)/$(CLD_TARGET_IF_DIR)/ocb/inc
@@ -824,9 +826,12 @@
 	    $(WMI_OBJ_DIR)/wmi_tlv_helper.o \
 	    $(WMI_OBJ_DIR)/wmi_unified_tlv.o \
 	    $(WMI_OBJ_DIR)/wmi_unified_api.o \
-	    $(WMI_OBJ_DIR)/wmi_unified_pmo_api.o \
 	    $(WMI_OBJ_DIR)/wmi_unified_reg_api.o
 
+ifeq ($(CONFIG_POWER_MANAGEMENT_OFFLOAD), y)
+WMI_OBJS += $(WMI_OBJ_DIR)/wmi_unified_pmo_api.o
+endif
+
 ifeq ($(CONFIG_WLAN_FEATURE_DSRC), y)
 ifeq ($(CONFIG_OCB_UT_FRAMEWORK), y)
 WMI_OBJS += $(WMI_OBJ_DIR)/wmi_unified_ocb_ut.o
diff --git a/components/pmo/dispatcher/inc/wlan_pmo_arp_public_struct.h b/components/pmo/dispatcher/inc/wlan_pmo_arp_public_struct.h
index 8d3feb7..23c2463 100644
--- a/components/pmo/dispatcher/inc/wlan_pmo_arp_public_struct.h
+++ b/components/pmo/dispatcher/inc/wlan_pmo_arp_public_struct.h
@@ -26,8 +26,6 @@
 #ifndef _WLAN_PMO_ARP_PUBLIC_STRUCT_H_
 #define _WLAN_PMO_ARP_PUBLIC_STRUCT_H_
 
-#ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
-
 #include "wlan_pmo_common_public_struct.h"
 
 /**
@@ -56,6 +54,4 @@
 	struct qdf_mac_addr bssid;
 };
 
-#endif /* end of WLAN_POWER_MANAGEMENT_OFFLOAD */
-
 #endif /* end  of _WLAN_PMO_ARP_PUBLIC_STRUCT_H_ */
diff --git a/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h b/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h
index a746a4e..5c842c0 100644
--- a/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h
+++ b/components/pmo/dispatcher/inc/wlan_pmo_common_public_struct.h
@@ -26,8 +26,6 @@
 #ifndef _WLAN_PMO_COMMONP_PUBLIC_STRUCT_H_
 #define _WLAN_PMO_COMMONP_PUBLIC_STRUCT_H_
 
-#ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
-
 #include "wlan_cmn.h"
 #include "wlan_objmgr_cmn.h"
 #include "wlan_objmgr_global_obj.h"
@@ -332,6 +330,4 @@
 	bool unified_wow;
 };
 
-#endif /* end of WLAN_POWER_MANAGEMENT_OFFLOAD */
-
 #endif /* end  of _WLAN_PMO_COMMONP_STRUCT_H_ */
diff --git a/components/pmo/dispatcher/inc/wlan_pmo_lphb_public_struct.h b/components/pmo/dispatcher/inc/wlan_pmo_lphb_public_struct.h
index 85ac064..4cd0df3 100644
--- a/components/pmo/dispatcher/inc/wlan_pmo_lphb_public_struct.h
+++ b/components/pmo/dispatcher/inc/wlan_pmo_lphb_public_struct.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017-2018 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
@@ -28,7 +28,6 @@
 
 #include "wlan_pmo_common_public_struct.h"
 
-#ifdef FEATURE_WLAN_LPHB
 #define PMO_SIR_LPHB_FILTER_LEN   64
 
 /**
@@ -164,7 +163,6 @@
 	uint8_t protocol_type;   /*TCP or UDP */
 	uint8_t event_reason;
 };
-#endif /* FEATURE_WLAN_LPHB */
 
 /*
  * Define typedef for lphb callback when fwr send response
diff --git a/components/pmo/dispatcher/inc/wlan_pmo_obj_mgmt_api.h b/components/pmo/dispatcher/inc/wlan_pmo_obj_mgmt_api.h
index 2e65b63..7c64182 100644
--- a/components/pmo/dispatcher/inc/wlan_pmo_obj_mgmt_api.h
+++ b/components/pmo/dispatcher/inc/wlan_pmo_obj_mgmt_api.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017-2018 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
@@ -26,6 +26,7 @@
 #include "wlan_pmo_common_public_struct.h"
 #include "wlan_pmo_obj_mgmt_public_struct.h"
 
+#ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
 /**
  * pmo_init() - initialize pmo_ctx context.
  *
@@ -237,5 +238,148 @@
 QDF_STATUS pmo_unregister_is_device_in_low_pwr_mode(
 			struct wlan_objmgr_psoc *psoc,
 			pmo_is_device_in_low_pwr_mode handler);
+#else
+static inline QDF_STATUS pmo_init(void)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS pmo_deinit(void)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_psoc_object_created_notification(
+		struct wlan_objmgr_psoc *psoc, void *arg)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_psoc_object_destroyed_notification(
+		struct wlan_objmgr_psoc *psoc, void *arg)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_vdev_object_created_notification(
+		struct wlan_objmgr_vdev *vdev, void *arg)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_vdev_ready(struct wlan_objmgr_vdev *vdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_vdev_object_destroyed_notification(
+		struct wlan_objmgr_vdev *vdev, void *arg)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_register_suspend_handler(
+		enum wlan_umac_comp_id id,
+		pmo_psoc_suspend_handler handler,
+		void *arg)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_unregister_suspend_handler(
+		enum wlan_umac_comp_id id,
+		pmo_psoc_suspend_handler handler)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_register_resume_handler(
+		enum wlan_umac_comp_id id,
+		pmo_psoc_resume_handler handler,
+		void *arg)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_unregister_resume_handler(
+		enum wlan_umac_comp_id id,
+		pmo_psoc_resume_handler handler)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_suspend_all_components(
+		struct wlan_objmgr_psoc *psoc,
+		enum qdf_suspend_type suspend_type)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_resume_all_components(
+		struct wlan_objmgr_psoc *psoc,
+		enum qdf_suspend_type suspend_type)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_register_pause_bitmap_notifier(
+		struct wlan_objmgr_psoc *psoc,
+		pmo_notify_pause_bitmap handler)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_unregister_pause_bitmap_notifier(
+		struct wlan_objmgr_psoc *psoc,
+		pmo_notify_pause_bitmap handler)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_register_get_pause_bitmap(
+		struct wlan_objmgr_psoc *psoc,
+		pmo_get_pause_bitmap handler)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_unregister_get_pause_bitmap(
+		struct wlan_objmgr_psoc *psoc,
+		pmo_get_pause_bitmap handler)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_register_is_device_in_low_pwr_mode(
+		struct wlan_objmgr_psoc *psoc,
+		pmo_is_device_in_low_pwr_mode handler)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_unregister_is_device_in_low_pwr_mode(
+		struct wlan_objmgr_psoc *psoc,
+		pmo_is_device_in_low_pwr_mode handler)
+{
+	return QDF_STATUS_SUCCESS;
+}
+#endif /* WLAN_POWER_MANAGEMENT_OFFLOAD */
 
 #endif /* end  of _WLAN_PMO_OBJ_MGMT_API_H_ */
diff --git a/components/pmo/dispatcher/inc/wlan_pmo_ucfg_api.h b/components/pmo/dispatcher/inc/wlan_pmo_ucfg_api.h
index 25bc9ef..54ba0ff 100644
--- a/components/pmo/dispatcher/inc/wlan_pmo_ucfg_api.h
+++ b/components/pmo/dispatcher/inc/wlan_pmo_ucfg_api.h
@@ -33,6 +33,7 @@
 #include "wlan_pmo_pkt_filter_public_struct.h"
 #include "wlan_pmo_hw_filter_public_struct.h"
 
+#ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
 /**
  * ucfg_pmo_get_apf_instruction_size() - get the current APF instruction size
  * @psoc: the psoc to query
@@ -626,5 +627,433 @@
  * Return: None
  */
 void pmo_ucfg_psoc_wakeup_host_event_received(struct wlan_objmgr_psoc *psoc);
+#else
+static inline uint32_t
+ucfg_pmo_get_apf_instruction_size(struct wlan_objmgr_psoc *psoc)
+{
+	return 0;
+}
+
+static inline uint32_t
+ucfg_pmo_get_num_packet_filters(struct wlan_objmgr_psoc *psoc)
+{
+	return 0;
+}
+
+static inline uint8_t
+ucfg_pmo_get_num_wow_filters(struct wlan_objmgr_psoc *psoc)
+{
+	return 0;
+}
+
+static inline QDF_STATUS
+ucfg_pmo_get_psoc_config(
+		struct wlan_objmgr_psoc *psoc,
+		struct pmo_psoc_cfg *psoc_cfg)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+ucfg_pmo_update_psoc_config(
+		struct wlan_objmgr_psoc *psoc,
+		struct pmo_psoc_cfg *psoc_cfg)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+ucfg_pmo_psoc_set_caps(
+		struct wlan_objmgr_psoc *psoc,
+		struct pmo_device_caps *caps)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline bool
+ucfg_pmo_is_ap_mode_supports_arp_ns(
+		struct wlan_objmgr_psoc *psoc,
+		enum QDF_OPMODE vdev_opmode)
+{
+	return true;
+}
+
+static inline bool
+ucfg_pmo_is_vdev_connected(struct wlan_objmgr_vdev *vdev)
+{
+	return true;
+}
+
+static inline bool
+ucfg_pmo_is_vdev_supports_offload(struct wlan_objmgr_vdev *vdev)
+{
+	return true;
+}
+
+static inline void
+pmo_ucfg_enable_wakeup_event(
+		struct wlan_objmgr_psoc *psoc,
+		uint32_t vdev_id, uint32_t *bitmap)
+{
+}
+
+static inline void
+pmo_ucfg_disable_wakeup_event(
+		struct wlan_objmgr_psoc *psoc,
+		uint32_t vdev_id, uint32_t bitmap)
+{
+}
+
+static inline QDF_STATUS
+pmo_ucfg_cache_arp_offload_req(struct pmo_arp_req *arp_req)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_flush_arp_offload_req(struct wlan_objmgr_vdev *vdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_enable_arp_offload_in_fwr(
+		struct wlan_objmgr_vdev *vdev,
+		enum pmo_offload_trigger trigger)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_disable_arp_offload_in_fwr(
+		struct wlan_objmgr_vdev *vdev,
+		enum pmo_offload_trigger trigger)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_cache_ns_offload_req(struct pmo_ns_req *ns_req)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_flush_ns_offload_req(struct wlan_objmgr_vdev *vdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_enable_ns_offload_in_fwr(
+		struct wlan_objmgr_vdev *vdev,
+		enum pmo_offload_trigger trigger)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_disable_ns_offload_in_fwr(
+		struct wlan_objmgr_vdev *vdev,
+		enum pmo_offload_trigger trigger)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_cache_mc_addr_list(
+		struct pmo_mc_addr_list_params *mc_list_config)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_flush_mc_addr_list(
+		struct wlan_objmgr_psoc *psoc,
+		uint8_t vdev_id)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_enable_mc_addr_filtering_in_fwr(
+		struct wlan_objmgr_psoc *psoc,
+		uint8_t vdev_id,
+		enum pmo_offload_trigger trigger)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_disable_mc_addr_filtering_in_fwr(
+		struct wlan_objmgr_psoc *psoc,
+		uint8_t vdev_id,
+		enum pmo_offload_trigger trigger)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline uint8_t
+pmo_ucfg_max_mc_addr_supported(struct wlan_objmgr_psoc *psoc)
+{
+	return 0;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_cache_gtk_offload_req(
+		struct wlan_objmgr_vdev *vdev,
+		struct pmo_gtk_req *gtk_req)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_flush_gtk_offload_req(struct wlan_objmgr_vdev *vdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_enable_gtk_offload_in_fwr(struct wlan_objmgr_vdev *vdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_disable_gtk_offload_in_fwr(struct wlan_objmgr_vdev *vdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_set_pkt_filter(
+		struct wlan_objmgr_psoc *psoc,
+		struct pmo_rcv_pkt_fltr_cfg *pmo_set_pkt_fltr_req,
+		uint8_t vdev_id)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_clear_pkt_filter(
+		struct wlan_objmgr_psoc *psoc,
+		struct pmo_rcv_pkt_fltr_clear_param *pmo_clr_pkt_fltr_param,
+		uint8_t vdev_id)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_get_gtk_rsp(
+		struct wlan_objmgr_vdev *vdev,
+		struct pmo_gtk_rsp_req *gtk_rsp_req)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline void
+pmo_ucfg_update_extscan_in_progress(
+		struct wlan_objmgr_vdev *vdev,
+		bool value)
+{
+}
+
+static inline void
+pmo_ucfg_update_p2plo_in_progress(
+		struct wlan_objmgr_vdev *vdev,
+		bool value)
+{
+}
+
+static inline QDF_STATUS
+pmo_ucfg_lphb_config_req(
+		struct wlan_objmgr_psoc *psoc,
+		struct pmo_lphb_req *lphb_req, void *lphb_cb_ctx,
+		pmo_lphb_callback callback)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline void
+pmo_ucfg_update_alt_modulated_dtim_enable(
+		struct wlan_objmgr_vdev *vdev,
+		bool value)
+{
+}
+
+static inline void
+pmo_ucfg_psoc_update_power_save_mode(
+		struct wlan_objmgr_psoc *psoc,
+		uint8_t value)
+{
+}
+
+static inline void
+pmo_ucfg_psoc_update_dp_handle(
+		struct wlan_objmgr_psoc *psoc,
+		void *dp_handle)
+{
+}
+
+static inline void
+pmo_ucfg_vdev_update_dp_handle(
+		struct wlan_objmgr_vdev *vdev,
+		void *dp_handle)
+{
+}
+
+static inline void
+pmo_ucfg_psoc_update_htc_handle(
+		struct wlan_objmgr_psoc *psoc,
+		void *htc_handle)
+{
+}
+
+static inline void
+pmo_ucfg_psoc_set_hif_handle(
+		struct wlan_objmgr_psoc *psoc,
+		void *hif_handle)
+{
+}
+
+static inline void
+pmo_ucfg_psoc_set_txrx_handle(
+		struct wlan_objmgr_psoc *psoc,
+		void *txrx_handle)
+{
+}
+
+static inline void
+pmo_ucfg_psoc_handle_initial_wake_up(void *cb_ctx)
+{
+}
+
+static inline QDF_STATUS
+pmo_ucfg_psoc_user_space_suspend_req(
+		struct wlan_objmgr_psoc *psoc,
+		enum qdf_suspend_type type)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_psoc_user_space_resume_req(
+		struct wlan_objmgr_psoc *psoc,
+		enum qdf_suspend_type type)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_psoc_bus_suspend_req(
+		struct wlan_objmgr_psoc *psoc,
+		enum qdf_suspend_type type,
+		struct pmo_wow_enable_params *wow_params)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+#ifdef FEATURE_RUNTIME_PM
+static inline QDF_STATUS
+pmo_ucfg_psoc_bus_runtime_suspend(
+		struct wlan_objmgr_psoc *psoc,
+		pmo_pld_auto_suspend_cb pld_cb)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_psoc_bus_runtime_resume(
+		struct wlan_objmgr_psoc *psoc,
+		pmo_pld_auto_suspend_cb pld_cb)
+{
+	return QDF_STATUS_SUCCESS;
+}
+#endif
+
+static inline QDF_STATUS
+pmo_ucfg_psoc_suspend_target(
+		struct wlan_objmgr_psoc *psoc,
+		int disable_target_intr)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_add_wow_user_pattern(
+		struct wlan_objmgr_vdev *vdev,
+		struct pmo_wow_add_pattern *ptrn)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_del_wow_user_pattern(
+		struct wlan_objmgr_vdev *vdev,
+		uint8_t pattern_id)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_psoc_bus_resume_req(
+		struct wlan_objmgr_psoc *psoc,
+		enum qdf_suspend_type type)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline bool
+pmo_ucfg_get_wow_bus_suspend(struct wlan_objmgr_psoc *psoc)
+{
+	return true;
+}
+
+static inline int
+pmo_ucfg_psoc_is_target_wake_up_received(struct wlan_objmgr_psoc *psoc)
+{
+	return 0;
+}
+
+static inline int
+pmo_ucfg_psoc_clear_target_wake_up(struct wlan_objmgr_psoc *psoc)
+{
+	return 0;
+}
+
+static inline void
+pmo_ucfg_psoc_target_suspend_acknowledge(void *context, bool wow_nack)
+{
+}
+
+static inline void
+pmo_ucfg_psoc_wakeup_host_event_received(struct wlan_objmgr_psoc *psoc)
+{
+}
+
+static inline QDF_STATUS
+pmo_ucfg_enable_hw_filter_in_fwr(struct wlan_objmgr_vdev *vdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_disable_hw_filter_in_fwr(struct wlan_objmgr_vdev *vdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_enhanced_mc_filter_enable(struct wlan_objmgr_vdev *vdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static inline QDF_STATUS
+pmo_ucfg_enhanced_mc_filter_disable(struct wlan_objmgr_vdev *vdev)
+{
+	return QDF_STATUS_SUCCESS;
+}
+#endif /* WLAN_POWER_MANAGEMENT_OFFLOAD */
 
 #endif /* end  of _WLAN_PMO_UCFG_API_H_ */
diff --git a/configs/genoa.snoc.debug_defconfig b/configs/genoa.snoc.debug_defconfig
index 2db7eec..57b368c 100644
--- a/configs/genoa.snoc.debug_defconfig
+++ b/configs/genoa.snoc.debug_defconfig
@@ -143,7 +143,9 @@
 CONFIG_WLAN_FEATURE_PACKET_FILTERING := y
 CONFIG_WLAN_NS_OFFLOAD := y
 CONFIG_FEATURE_WLAN_RA_FILTERING:= y
+ifeq ($(CONFIG_POWER_MANAGEMENT_OFFLOAD), y)
 CONFIG_FEATURE_WLAN_LPHB := y
+endif
 CONFIG_FEATURE_WLAN_EXTSCAN := y
 CONFIG_160MHZ_SUPPORT := y
 CONFIG_MCL := y
@@ -153,7 +155,10 @@
 CONFIG_WLAN_FEATURE_DISA := y
 CONFIG_WLAN_FEATURE_FIPS := y
 CONFIG_WLAN_FEATURE_SAE := y
+
+ifeq ($(CONFIG_POWER_MANAGEMENT_OFFLOAD), y)
 CONFIG_GTK_OFFLOAD := y
+endif
 
 ifneq ($(DEVELOPER_DISABLE_BUILD_TIMESTAMP), y)
 ifneq ($(WLAN_DISABLE_BUILD_TAG), y)
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index 25afe5c..1981f75 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -21372,6 +21372,7 @@
 
 }
 
+#ifdef WLAN_FEATURE_GTK_OFFLOAD
 /**
  * wlan_hdd_copy_gtk_kek - Copy the KEK from GTK rekey data to GTK request
  * @gtk_req: Pointer to GTK request
@@ -21494,6 +21495,7 @@
 
 	return ret;
 }
+#endif /* WLAN_FEATURE_GTK_OFFLOAD */
 
 /**
  * __wlan_hdd_cfg80211_set_mac_acl() - set access control policy