# Protocol specific features
CONFIG_QCACLD_WLAN_LFR2 := y
CONFIG_QCACLD_WLAN_LFR3 := y
CONFIG_QCOM_TDLS := y
CONFIG_QCACLD_FEATURE_GREEN_AP := y
CONFIG_QCOM_VOWIFI_11R := y
CONFIG_WLAN_FEATURE_FILS := y
CONFIG_WLAN_FEATURE_11W := y
CONFIG_QCOM_LTE_COEX := y
CONFIG_WLAN_FEATURE_LPSS := y
CONFIG_QCACLD_FEATURE_NAN := y
CONFIG_WLAN_FEATURE_NAN_DATAPATH := y
CONFIG_NAN_CONVERGENCE := y
CONFIG_POWER_MANAGEMENT_OFFLOAD := y
CONFIG_LFR_SUBNET_DETECTION := y
CONFIG_MCC_TO_SCC_SWITCH := y
CONFIG_QCOM_ESE := y
CONFIG_QCA_IBSS_SUPPORT := y
CONFIG_WLAN_OPEN_P2P_INTERFACE := y
CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := y
CONFIG_WLAN_DFS_MASTER_ENABLE := y
CONFIG_WIFI_POS_CONVERGED := y
CONFIG_WIFI_POS_LEGACY := n
CONFIG_FEATURE_WLAN_WAPI := y
CONFIG_AGEIE_ON_SCAN_RESULTS := y
CONFIG_LEGACY_CHAN_ENUM := y
CONFIG_WLAN_PMO_ENABLE := y
CONFIG_CONVERGED_P2P_ENABLE := y
CONFIG_WLAN_POLICY_MGR_ENABLE := y
CONFIG_SUPPORT_11AX := y
CONFIG_HDD_INIT_WITH_RTNL_LOCK := y
CONFIG_CONVERGED_TDLS_ENABLE := y
CONFIG_WLAN_CONV_SPECTRAL_ENABLE := y
CONFIG_WLAN_SPECTRAL_ENABLE := y
CONFIG_WMI_CMD_STRINGS := y
CONFIG_SOFTAP_CHANNEL_RANGE := y
CONFIG_FEATURE_WLAN_SCAN_PNO := y

# Interface specific features
CONFIG_ROME_IF = snoc
CONFIG_HELIUMPLUS := y
CONFIG_64BIT_PADDR := y
CONFIG_QMI_SUPPORT := y
CONFIG_WIFI_3_0_ADRASTEA := y
CONFIG_ADRASTEA_RRI_ON_DDR := y
CONFIG_ATH_PROCFS_DIAG_SUPPORT := y
CONFIG_ADRASTEA_SHADOW_REGISTERS := y
CONFIG_HTT_PADDR64 := y
CONFIG_AR900B := y
CONFIG_HIF_SNOC:= y

# Data Path specific features
CONFIG_WLAN_FASTPATH := y
CONFIG_FEATURE_TSO := y
CONFIG_WLAN_NAPI := y
CONFIG_WLAN_TX_FLOW_CONTROL_V2 := y
CONFIG_ATH_11AC_TXCOMPACT := y
CONFIG_TX_CREDIT_RECLAIM_SUPPORT := n
CONFIG_CHECKSUM_OFFLOAD := y
CONFIG_QCA_SUPPORT_TX_THROTTLE := y
CONFIG_RX_OL := y
CONFIG_FEATURE_MONITOR_MODE_SUPPORT := y
CONFIG_DESC_DUP_DETECT_DEBUG := y
CONFIG_DEBUG_RX_RING_BUFFER := y
CONFIG_DP_TRACE := y

ifeq ($(CONFIG_INET_LRO), y)
CONFIG_WLAN_LRO := y
else
CONFIG_WLAN_LRO := n
endif

ifeq ($(CONFIG_IPA), y)
CONFIG_IPA_OFFLOAD := y
endif
ifeq ($(CONFIG_IPA3), y)
CONFIG_IPA_OFFLOAD := y
endif

ifneq ($(CONFIG_FORCE_ALLOC_FROM_DMA_ZONE), y)
CONFIG_ENABLE_DEBUG_ADDRESS_MARKING := y
endif

# Debug specific features
BUILD_DEBUG_VERSION := y
BUILD_DIAG_VERSION := y
CONFIG_FEATURE_TSO_DEBUG := y
CONFIG_MPC_UT_FRAMEWORK := y
CONFIG_FEATURE_EPPING := y
CONFIG_WLAN_NAPI_DEBUG := n
CONFIG_REMOVE_PKT_LOG := n
CONFIG_FEATURE_STATS_EXT := y
CONFIG_FEATURE_HTC_CREDIT_HISTORY := y
CONFIG_TRACE_RECORD_FEATURE := y
CONFIG_WLAN_FEATURE_P2P_DEBUG := y
CONFIG_WLAN_NUD_TRACKING := y
CONFIG_CP_STATS := y
CONFIG_FEATURE_FW_LOG_PARSING := y
CONFIG_PTT_SOCK_SVC_ENABLE := y
CONFIG_WMI_INTERFACE_EVENT_LOGGING := y
CONFIG_WLAN_FEATURE_LINK_LAYER_STATS := y

CONFIG_WLAN_LOG_FATAL := y
CONFIG_WLAN_LOG_ERROR := y
CONFIG_WLAN_LOG_WARN := y
CONFIG_WLAN_LOG_INFO := y
CONFIG_WLAN_LOG_DEBUG := y

ifeq ($(CONFIG_REMOVE_PKT_LOG), y)
CONFIG_WDI_EVENT_ENABLE := n
else
CONFIG_WDI_EVENT_ENABLE := y
endif

# Features gets enabled on slub debug
CONFIG_WLAN_OBJMGR_DEBUG:= y
CONFIG_OL_RX_INDICATION_RECORD := y
CONFIG_TSOSEG_DEBUG := y
CONFIG_FEATURE_PKTLOG := y
CONFIG_WLAN_DEBUG_CRASH_INJECT := y
PANIC_ON_BUG := y
WLAN_WARN_ON_ASSERT := y
CONFIG_FEATURE_MEMDUMP_ENABLE := y
CONFIG_WLAN_LOGGING_SOCK_SVC := y
CONFIG_FEATURE_UNIT_TEST_SUSPEND := y
CONFIG_LEAK_DETECTION := y

ifeq ($(CONFIG_DEBUG_FS), y)
       CONFIG_WLAN_DEBUGFS := y
       CONFIG_WLAN_POWER_DEBUGFS := y
endif

# other features
WLAN_OPEN_SOURCE := y
CONFIG_ATH_PERF_PWR_OFFLOAD := y
CONFIG_ATH_BUS_PM := y
CONFIG_ATH_SUPPORT_FLOWMAC_MODULE := n
CONFIG_ATH_SUPPORT_SPECTRAL := n
CONFIG_LITTLE_ENDIAN := y
CONFIG_QCA_WIFI_FTM := y
CONFIG_ATH_PCIE_ACCESS_DEBUG := n
CONFIG_QCA_SIGNED_SPLIT_BINARY_SUPPORT := n
CONFIG_QCA_SINGLE_BINARY_SUPPORT := n
CONFIG_TARGET_RAMDUMP_AFTER_KERNEL_PANIC := y
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
CONFIG_MCL_REGDB := y
CONFIG_WLAN_OFFLOAD_PACKETS := y
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)
CONFIG_BUILD_TAG := y
endif
endif

ifeq ($(CONFIG_ARCH_SDM845), y)
ifeq ($(CONFIG_IPA_OFFLOAD), y)
CONFIG_ENABLE_SMMU_S1_TRANSLATION := y
endif
endif

###################################
