diff --git a/Kbuild b/Kbuild index 46773c4991..903e9a2c46 100644 --- a/Kbuild +++ b/Kbuild @@ -703,6 +703,7 @@ CLD_TARGET_IF_DIR := components/target_if 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_OBJ := $(CLD_TARGET_IF_DIR)/pmo/src/target_if_pmo_arp.o \ $(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_OBJS := $(WMI_OBJ_DIR)/wmi_unified.o \ $(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 8d3feb77af..23c2463cf6 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 pmo_arp_offload_params { 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 a746a4edf4..5c842c0f8f 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 @@ struct pmo_device_caps { 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 85ac064ba3..4cd0df3a85 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 @@ struct pmo_lphb_rsp { 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 2e65b631a2..7c64182bdb 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_register_is_device_in_low_pwr_mode(struct wlan_objmgr_psoc *psoc, 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 25bc9efb0a..54ba0ff17b 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 @@ void pmo_ucfg_psoc_target_suspend_acknowledge(void *context, bool wow_nack); * 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 2db7eecddf..57b368cba9 100644 --- a/configs/genoa.snoc.debug_defconfig +++ b/configs/genoa.snoc.debug_defconfig @@ -143,7 +143,9 @@ CONFIG_FEATURE_SECURE_FIRMWARE := n 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_SYNC_TSF := y 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 25afe5cd84..1981f753bb 100644 --- a/core/hdd/src/wlan_hdd_cfg80211.c +++ b/core/hdd/src/wlan_hdd_cfg80211.c @@ -21372,6 +21372,7 @@ out: } +#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 @@ int wlan_hdd_cfg80211_set_rekey_data(struct wiphy *wiphy, return ret; } +#endif /* WLAN_FEATURE_GTK_OFFLOAD */ /** * __wlan_hdd_cfg80211_set_mac_acl() - set access control policy