From 6c4599c854bfbb4dffe7baf80dff242d2993785f Mon Sep 17 00:00:00 2001 From: Yu Wang Date: Tue, 9 Oct 2018 10:18:14 +0800 Subject: [PATCH] qcacld-3.0: add support for multi ko To build multiple ko for different wlan targets CRs-Fixed: 2381715 Change-Id: I50593edd316df33486d208abdb2d1019403a53ae --- Android.mk | 80 ++++- Kbuild | 15 +- configs/qca6174_defconfig | 697 +++++++++++++++++++++++++++++++++++++ configs/qca6390_defconfig | 716 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 1492 insertions(+), 16 deletions(-) create mode 100644 configs/qca6174_defconfig create mode 100644 configs/qca6390_defconfig diff --git a/Android.mk b/Android.mk index e9d3e77bf7..e8dba01452 100644 --- a/Android.mk +++ b/Android.mk @@ -1,4 +1,5 @@ # Android makefile for the WLAN Module +LOCAL_PATH := $(call my-dir) # Assume no targets will be supported WLAN_CHIPSET := @@ -14,8 +15,6 @@ endif # Build/Package only in case of supported target ifneq ($(WLAN_CHIPSET),) -LOCAL_PATH := $(call my-dir) - # This makefile is only for DLKM ifneq ($(findstring vendor,$(LOCAL_PATH)),) @@ -23,6 +22,57 @@ ifneq ($(findstring opensource,$(LOCAL_PATH)),) WLAN_BLD_DIR := vendor/qcom/opensource/wlan endif # opensource +# Multi-ko check +LOCAL_MOD_NAME := $(lastword $(strip \ + $(subst ~, , \ + $(subst /, ,$(LOCAL_PATH))))) + +ifeq (1, $(strip $(shell expr $(words $(strip $(TARGET_WLAN_CHIP))) \>= 2))) +ifeq ($(LOCAL_MOD_NAME), qcacld-3.0) +LOCAL_MULTI_KO := true +else +LOCAL_MULTI_KO := false +endif +endif + +ifeq ($(LOCAL_MULTI_KO), true) +LOCAL_ANDROID_ROOT := $(shell pwd) +LOCAL_WLAN_BLD_DIR := $(LOCAL_ANDROID_ROOT)/$(WLAN_BLD_DIR) +$(shell rm -rf $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/~*) + +$(foreach chip, $(TARGET_WLAN_CHIP), \ + $($(shell mkdir -p $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/~$(chip); \ + ln -sf $(LOCAL_WLAN_BLD_DIR)/qca-wifi-host-cmn \ + $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/~$(chip)/qca-wifi-host-cmn); \ + $(foreach node, \ + $(shell find $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/ -maxdepth 1 \ + ! -name '.*' ! -name '~*' ! -name '*~' \ + ! -name '.' ! -name 'qcacld-3.0'), \ + $(shell ln -sf $(node) \ + $(LOCAL_WLAN_BLD_DIR)/qcacld-3.0/~$(chip)/$(lastword $(strip $(subst /, ,$(node)))) \ + )))) + +include $(foreach chip, $(TARGET_WLAN_CHIP), $(LOCAL_PATH)/~$(chip)/Android.mk) + +else # Multi-ok check + +ifeq ($(LOCAL_MOD_NAME), qcacld-3.0) +LOCAL_MOD_NAME := wlan +CMN_OFFSET := .. +LOCAL_SRC_DIR := +WLAN_PROFILE := default +TARGET_FW_DIR := firmware/wlan/qca_cld +TARGET_CFG_PATH := /vendor/etc/wifi +TARGET_MAC_BIN_PATH := /mnt/vendor/persist +else +LOCAL_SRC_DIR := ~$(LOCAL_MOD_NAME) +CMN_OFFSET := . +WLAN_PROFILE := $(LOCAL_MOD_NAME) +TARGET_FW_DIR := firmware/wlan/qca_cld/$(LOCAL_MOD_NAME) +TARGET_CFG_PATH := /vendor/etc/wifi/$(LOCAL_MOD_NAME) +TARGET_MAC_BIN_PATH := /mnt/vendor/persist/$(LOCAL_MOD_NAME) +endif + # DLKM_DIR was moved for JELLY_BEAN (PLATFORM_SDK 16) ifeq ($(call is-platform-sdk-version-at-least,16),true) DLKM_DIR := $(TOP)/device/qcom/common/dlkm @@ -33,21 +83,23 @@ endif # platform-sdk-version # Build wlan.ko as $(WLAN_CHIPSET)_wlan.ko ########################################################### # This is set once per LOCAL_PATH, not per (kernel) module -KBUILD_OPTIONS := WLAN_ROOT=$(WLAN_BLD_DIR)/qcacld-3.0 -KBUILD_OPTIONS += WLAN_COMMON_ROOT=../qca-wifi-host-cmn +KBUILD_OPTIONS := WLAN_ROOT=$(WLAN_BLD_DIR)/qcacld-3.0/$(LOCAL_SRC_DIR) +KBUILD_OPTIONS += WLAN_COMMON_ROOT=$(CMN_OFFSET)/qca-wifi-host-cmn KBUILD_OPTIONS += WLAN_COMMON_INC=$(WLAN_BLD_DIR)/qca-wifi-host-cmn +KBUILD_OPTIONS += WLAN_FW_API=$(WLAN_BLD_DIR)/fw-api +KBUILD_OPTIONS += WLAN_PROFILE=$(WLAN_PROFILE) # We are actually building wlan.ko here, as per the # requirement we are specifying _wlan.ko as LOCAL_MODULE. # This means we need to rename the module to _wlan.ko # after wlan.ko is built. -KBUILD_OPTIONS += MODNAME=wlan +KBUILD_OPTIONS += MODNAME=$(LOCAL_MOD_NAME) KBUILD_OPTIONS += BOARD_PLATFORM=$(TARGET_BOARD_PLATFORM) KBUILD_OPTIONS += $(WLAN_SELECT) include $(CLEAR_VARS) -LOCAL_MODULE := $(WLAN_CHIPSET)_wlan.ko -LOCAL_MODULE_KBUILD_NAME := wlan.ko +LOCAL_MODULE := $(WLAN_CHIPSET)_$(LOCAL_MOD_NAME).ko +LOCAL_MODULE_KBUILD_NAME := $(LOCAL_MOD_NAME).ko LOCAL_MODULE_TAGS := debug LOCAL_MODULE_DEBUG_ENABLE := true ifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true) @@ -68,19 +120,25 @@ ifneq ($(findstring $(WLAN_CHIPSET),$(WIFI_DRIVER_DEFAULT)),) ifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true) ifneq ($(WIFI_DRIVER_INSTALL_TO_KERNEL_OUT),) $(shell mkdir -p $(TARGET_OUT_VENDOR)/lib/modules; \ - ln -sf /$(TARGET_COPY_OUT_VENDOR)/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE) $(TARGET_OUT_VENDOR)/lib/modules/wlan.ko) + ln -sf /$(TARGET_COPY_OUT_VENDOR)/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE) $(TARGET_OUT_VENDOR)/lib/modules/$(LOCAL_MOD_NAME).ko) endif else $(shell mkdir -p $(TARGET_OUT)/lib/modules; \ - ln -sf /system/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE) $(TARGET_OUT)/lib/modules/wlan.ko) + ln -sf /system/lib/modules/$(WLAN_CHIPSET)/$(LOCAL_MODULE) $(TARGET_OUT)/lib/modules/$(LOCAL_MOD_NAME).ko) endif endif ifeq ($(PRODUCT_VENDOR_MOVE_ENABLED),true) -$(shell ln -sf /mnt/vendor/persist/wlan_mac.bin $(TARGET_OUT_VENDOR)/firmware/wlan/qca_cld/wlan_mac.bin) +TARGET_FW_PATH := $(TARGET_OUT_VENDOR)/$(TARGET_FW_DIR) else -$(shell ln -sf /mnt/vendor/persist/wlan_mac.bin $(TARGET_OUT_ETC)/firmware/wlan/qca_cld/wlan_mac.bin) +TARGET_FW_PATH := $(TARGET_OUT_ETC)/$(TARGET_FW_DIR) endif + +$(shell mkdir -p $(TARGET_FW_PATH); \ + ln -sf $(TARGET_MAC_BIN_PATH)/wlan_mac.bin $(TARGET_FW_PATH)/wlan_mac.bin; \ + ln -sf $(TARGET_CFG_PATH)/WCNSS_qcom_cfg.ini $(TARGET_FW_PATH)/WCNSS_qcom_cfg.ini) + +endif # Multi-ko check endif # DLKM check endif # supported target check endif # WLAN enabled check diff --git a/Kbuild b/Kbuild index 6dbce1f605..3dbe6a4f8b 100644 --- a/Kbuild +++ b/Kbuild @@ -13,16 +13,21 @@ ifeq ($(KERNEL_BUILD), y) WLAN_ROOT := drivers/staging/qcacld-3.0 WLAN_COMMON_ROOT := ../qca-wifi-host-cmn WLAN_COMMON_INC := $(WLAN_ROOT)/$(WLAN_COMMON_ROOT) + WLAN_FW_API := $(WLAN_ROOT)/../fw-api/ + WLAN_PROFILE := default endif WLAN_COMMON_ROOT ?= ../qca-wifi-host-cmn WLAN_COMMON_INC ?= $(WLAN_ROOT)/$(WLAN_COMMON_ROOT) +WLAN_FW_API ?= $(WLAN_ROOT)/../fw-api/ +WLAN_PROFILE ?= default +CONFIG_QCA_CLD_WLAN_PROFILE ?= $(WLAN_PROFILE) -CONFIG_QCA_CLD_WLAN_PROFILE ?= default ifeq ($(KERNEL_BUILD), n) ifneq ($(ANDROID_BUILD_TOP),) override WLAN_ROOT := $(ANDROID_BUILD_TOP)/$(WLAN_ROOT) override WLAN_COMMON_INC := $(ANDROID_BUILD_TOP)/$(WLAN_COMMON_INC) + override WLAN_FW_API := $(ANDROID_BUILD_TOP)/$(WLAN_FW_API) endif endif @@ -1652,18 +1657,18 @@ ifeq ($(CONFIG_HIF_USB), y) PLD_OBJS += $(PLD_SRC_DIR)/pld_usb.o endif -TARGET_INC := -I$(WLAN_ROOT)/../fw-api/fw +TARGET_INC := -I$(WLAN_FW_API)/fw ifeq ($(CONFIG_CNSS_QCA6290), y) ifeq ($(CONFIG_QCA6290_11AX), y) -TARGET_INC += -I$(WLAN_ROOT)/../fw-api/hw/qca6290/11ax/v2 +TARGET_INC += -I$(WLAN_FW_API)/hw/qca6290/11ax/v2 else -TARGET_INC += -I$(WLAN_ROOT)/../fw-api/hw/qca6290/v2 +TARGET_INC += -I$(WLAN_FW_API)/hw/qca6290/v2 endif endif ifeq ($(CONFIG_CNSS_QCA6390), y) -TARGET_INC += -I$(WLAN_ROOT)/../fw-api/hw/qca6390/v1 +TARGET_INC += -I$(WLAN_FW_API)/hw/qca6390/v1 endif LINUX_INC := -Iinclude diff --git a/configs/qca6174_defconfig b/configs/qca6174_defconfig new file mode 100644 index 0000000000..c8121e06a4 --- /dev/null +++ b/configs/qca6174_defconfig @@ -0,0 +1,697 @@ +ifeq ($(CONFIG_CLD_HL_SDIO_CORE), y) + CONFIG_QCA_WIFI_SDIO := y +ifndef CONFIG_SDIO_TRANSFER + CONFIG_SDIO_TRANSFER = mailbox +endif +endif + +ifeq ($(CONFIG_QCA_WIFI_SDIO), y) + CONFIG_ROME_IF = sdio +endif + +ifdef CONFIG_ICNSS + CONFIG_ROME_IF = snoc +endif + +ifeq (y,$(findstring y,$(CONFIG_CNSS) $(CONFIG_CNSS2))) +ifndef CONFIG_ROME_IF + #use pci as default interface + CONFIG_ROME_IF = pci +endif +endif + +# Make WLAN as open-source driver by default +WLAN_OPEN_SOURCE := y + +ifeq ($(CONFIG_ICNSS), y) + CONFIG_HELIUMPLUS := y + CONFIG_64BIT_PADDR := y + CONFIG_FEATURE_TSO := y + CONFIG_FEATURE_TSO_DEBUG := y + ifeq ($(CONFIG_INET_LRO), y) + CONFIG_WLAN_LRO := y + else + CONFIG_WLAN_LRO := n + endif +endif + +ifneq ($(DEVELOPER_DISABLE_BUILD_TIMESTAMP), y) +ifneq ($(WLAN_DISABLE_BUILD_TAG), y) +CONFIG_BUILD_TAG := y +endif +endif + +ifeq ($(CONFIG_ARCH_MDM9630), y) +CONFIG_MOBILE_ROUTER := y +endif + +ifeq ($(CONFIG_ARCH_MDM9640), y) +CONFIG_MOBILE_ROUTER := y +endif + +ifeq ($(CONFIG_ARCH_SDX20), y) +CONFIG_MOBILE_ROUTER := y +endif + +ifeq ($(CONFIG_ARCH_SDXPRAIRIE), y) +CONFIG_MOBILE_ROUTER := y +endif + +ifeq ($(CONFIG_ARCH_MSM8917), y) + ifeq ($(CONFIG_ROME_IF), sdio) + CONFIG_WLAN_SYNC_TSF_PLUS := y + endif +endif + +ifeq ($(CONFIG_ARCH_QCS405), y) + CONFIG_WLAN_SYNC_TSF_PLUS := y + CONFIG_WLAN_SYNC_TSF_PLUS_NOIRQ := y +endif + +#Flag to enable Legacy Fast Roaming2(LFR2) +CONFIG_QCACLD_WLAN_LFR2 := y +#Flag to enable Legacy Fast Roaming3(LFR3) +ifneq ($(CONFIG_ARCH_SDX20), y) +CONFIG_QCACLD_WLAN_LFR3 := y +endif + +ifneq ($(CONFIG_MOBILE_ROUTER), y) +#Flag to enable TDLS feature +CONFIG_QCOM_TDLS := y + +CONFIG_WLAN_SYSFS := y +endif + +CONFIG_QCACLD_FEATURE_GREEN_AP := y +CONFIG_CRYPTO_COMPONENT := y +#Flag to enable Android Packet Filtering +CONFIG_QCACLD_FEATURE_APF := y + +#Flag to enable SARv1 -> SARv2 conversion +CONFIG_WLAN_FEATURE_SARV1_TO_SARV2 := n + +ifeq ($(CONFIG_ARCH_MSM8998), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SDM660), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SDM630), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SDM845), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SM8150), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SDM670), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SM6150), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +#Flag to enable Fast Transition (11r) feature +CONFIG_QCOM_VOWIFI_11R := y + +#Flag to enable disable ACTION OUI feature +CONFIG_WLAN_FEATURE_ACTION_OUI := y + +#Flag to enable FILS Feature (11ai) +CONFIG_WLAN_FEATURE_FILS := y +ifneq ($(CONFIG_QCA_CLD_WLAN),) + ifeq (y,$(findstring y,$(CONFIG_CNSS) $(CONFIG_CNSS2) $(CONFIG_ICNSS))) + #Flag to enable Protected Management Frames (11w) feature + CONFIG_WLAN_FEATURE_11W := y + #Flag to enable LTE CoEx feature + CONFIG_QCOM_LTE_COEX := y + ifneq ($(CONFIG_MOBILE_ROUTER), y) + #Flag to enable LPSS feature + CONFIG_WLAN_FEATURE_LPSS := y + endif + endif +endif + +#Flag to enable Protected Management Frames (11w) feature +ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_WLAN_FEATURE_11W := y +endif +ifeq ($(CONFIG_ROME_IF),sdio) + CONFIG_WLAN_FEATURE_11W := y +endif + +#Flag to enable the tx desc sanity check +ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_QCA_TXDESC_SANITY_CHECKS := y +endif + +ifneq ($(CONFIG_MOBILE_ROUTER), y) + #Flag to enable NAN + CONFIG_QCACLD_FEATURE_NAN := y +endif + +ifneq ($(CONFIG_MOBILE_ROUTER), y) + #Flag to enable NAN Data path + CONFIG_WLAN_FEATURE_NAN_DATAPATH := y + CONFIG_NAN_CONVERGENCE := y +endif + +#Flag to enable Linux QCMBR feature as default feature +ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_LINUX_QCMBR :=y +endif + + +CONFIG_FEATURE_EPPING := y + +#Flag to enable offload packets feature +CONFIG_WLAN_OFFLOAD_PACKETS := y + +#enable TSF get feature +CONFIG_WLAN_SYNC_TSF := y +#Enable DSRC feature +ifeq ($(CONFIG_QCA_WIFI_SDIO), y) +CONFIG_WLAN_FEATURE_DSRC := y +endif + +ifneq ($(CONFIG_ROME_IF),usb) +ifneq ($(CONFIG_ROME_IF),sdio) + #Flag to enable DISA + CONFIG_WLAN_FEATURE_DISA := y + + #Flag to enable FIPS + CONFIG_WLAN_FEATURE_FIPS := y + + #Flag to enable SAE + CONFIG_WLAN_FEATURE_SAE := y + + #Flag to enable Fast Path feature + ifneq ($(CONFIG_LITHIUM), y) + CONFIG_WLAN_FASTPATH := y + endif + + # Flag to enable NAPI + CONFIG_WLAN_NAPI := y + CONFIG_WLAN_NAPI_DEBUG := n + + # Flag to enable FW based TX Flow control + ifeq ($(CONFIG_LITHIUM), y) + CONFIG_WLAN_TX_FLOW_CONTROL_V2 := y + else + CONFIG_WLAN_TX_FLOW_CONTROL_V2 := n + endif + +endif +endif + +CONFIG_POWER_MANAGEMENT_OFFLOAD := y + +ifeq ($(CONFIG_ROME_IF), snoc) + CONFIG_WLAN_TX_FLOW_CONTROL_V2 := y +endif + +# Flag to enable LFR Subnet Detection +CONFIG_LFR_SUBNET_DETECTION := y + +# Flag to enable MCC to SCC switch feature +CONFIG_MCC_TO_SCC_SWITCH := y + +ifeq ($(CONFIG_SLUB_DEBUG), y) + # Enable Obj Mgr Degug services if slub build + CONFIG_WLAN_OBJMGR_DEBUG:= y + CONFIG_MPC_UT_FRAMEWORK := y + CONFIG_LOCK_STATS_ON:= y +endif + +ifeq (y,$(findstring y,$(CONFIG_QCA_WIFI_SDIO) $(CONFIG_HIF_USB))) +CONFIG_HL_DP_SUPPORT := y +else +CONFIG_LL_DP_SUPPORT := y +endif + +ifeq ($(CONFIG_HIF_PCI), y) +ifneq ($(CONFIG_WLAN_TX_FLOW_CONTROL_V2), y) +ifneq ($(CONFIG_LITHIUM), y) +CONFIG_WLAN_TX_FLOW_CONTROL_LEGACY := y +endif +endif +endif + +#Whether have QMI support +CONFIG_QMI_SUPPORT := y + +ifeq ($(CONFIG_ICNSS), y) +CONFIG_WIFI_3_0_ADRASTEA := y +CONFIG_ADRASTEA_RRI_ON_DDR := y +# Enable athdiag procfs debug support for adrastea +CONFIG_ATH_PROCFS_DIAG_SUPPORT := y +# Enable 11AC TX compact feature for adrastea +CONFIG_ATH_11AC_TXCOMPACT := y +ifeq ($(CONFIG_QMI_SUPPORT), y) +CONFIG_ADRASTEA_SHADOW_REGISTERS := y +endif +endif + +# NOTE: CONFIG_64BIT_PADDR requires CONFIG_HELIUMPLUS +ifeq ($(CONFIG_HELIUMPLUS), y) +CONFIG_AR900B := y + +ifeq ($(CONFIG_64BIT_PADDR), y) +CONFIG_HTT_PADDR64 := y +endif + +ifeq ($(CONFIG_SLUB_DEBUG_ON), y) +CONFIG_OL_RX_INDICATION_RECORD := y +CONFIG_TSOSEG_DEBUG := y +endif + +endif #CONFIG_HELIUMPLUS + +ifeq ($(CONFIG_LITHIUM), y) +# +# Enable Shadow V2 for all lithium platform +# +CONFIG_SHADOW_V2 := y + +CONFIG_QCA_WIFI_QCA8074 := y +CONFIG_QCA_WIFI_QCA8074_VP := y +CONFIG_DP_INTR_POLL_BASED := y +CONFIG_TX_PER_PDEV_DESC_POOL := y +CONFIG_DP_TRACE := y +CONFIG_FEATURE_TSO := y +CONFIG_TSO_DEBUG_LOG_ENABLE := y +CONFIG_DP_LFR := y +CONFIG_HTT_PADDR64 := y +CONFIG_RX_OL := y +CONFIG_TX_TID_OVERRIDE := y +endif + +# As per target team, build is done as follows: +# Defconfig : build with default flags +# Slub : defconfig + CONFIG_SLUB_DEBUG=y + +# CONFIG_SLUB_DEBUG_ON=y + CONFIG_PAGE_POISONING=y +# Perf : Using appropriate msmXXXX-perf_defconfig +# +# Shipment builds (user variants) should not have any debug feature +# enabled. This is identified using 'TARGET_BUILD_VARIANT'. Slub builds +# are identified using the CONFIG_SLUB_DEBUG_ON configuration. Since +# there is no other way to identify defconfig builds, QCOMs internal +# representation of perf builds (identified using the string 'perf'), +# is used to identify if the build is a slub or defconfig one. This +# way no critical debug feature will be enabled for perf and shipment +# builds. Other OEMs are also protected using the TARGET_BUILD_VARIANT +# config. +ifneq ($(TARGET_BUILD_VARIANT),user) + ifeq ($(CONFIG_LITHIUM), y) + CONFIG_FEATURE_PKTLOG := n + else + CONFIG_FEATURE_PKTLOG := y + endif + CONFIG_WLAN_DEBUG_CRASH_INJECT := y +endif + +#Enable WLAN/Power debugfs feature only if debug_fs is enabled +ifeq ($(CONFIG_DEBUG_FS), y) + # Flag to enable debugfs. Depends on CONFIG_DEBUG_FS in kernel + # configuration. + CONFIG_WLAN_DEBUGFS := y + + CONFIG_WLAN_POWER_DEBUGFS := y +endif + +# Feature flags which are not (currently) configurable via Kconfig + +#Whether to build debug version +BUILD_DEBUG_VERSION := y + +#Enable this flag to build driver in diag version +BUILD_DIAG_VERSION := y + +ifeq ($(CONFIG_SLUB_DEBUG), y) + PANIC_ON_BUG := y + WLAN_WARN_ON_ASSERT := y +else ifeq ($(CONFIG_PERF_DEBUG), y) + PANIC_ON_BUG := y + WLAN_WARN_ON_ASSERT := y +else + PANIC_ON_BUG := n + WLAN_WARN_ON_ASSERT := n +endif + +# Compile all log levels by default +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 +CONFIG_WLAN_LOG_ENTER := y +CONFIG_WLAN_LOG_EXIT := y + +#Enable OL debug and wmi unified functions +CONFIG_ATH_PERF_PWR_OFFLOAD := y + +#Disable packet log +CONFIG_REMOVE_PKT_LOG := n + +#Enable 11AC TX +ifeq ($(CONFIG_ROME_IF),pci) + CONFIG_ATH_11AC_TXCOMPACT := y +endif + +ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_ATH_11AC_TXCOMPACT := n +endif + +#Enable PCI specific APIS (dma, etc) +ifeq ($(CONFIG_ROME_IF),pci) + CONFIG_HIF_PCI := y +endif + +#Enable USB specific APIS +ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_HIF_USB := y +endif + +#Enable SDIO specific APIS +ifeq ($(CONFIG_ROME_IF),sdio) + CONFIG_HIF_SDIO := y + CONFIG_TX_DESC_HI_PRIO_RESERVE := y + CONFIG_PER_VDEV_TX_DESC_POOL := y + CONFIG_FEATURE_HL_GROUP_CREDIT_FLOW_CONTROL := y +endif + +ifeq ($(CONFIG_ROME_IF),snoc) + CONFIG_HIF_SNOC:= y +endif + +# enable/disable feature flags based upon mobile router profile +ifeq ($(CONFIG_MOBILE_ROUTER), y) +CONFIG_FEATURE_WLAN_MCC_TO_SCC_SWITCH := y +CONFIG_FEATURE_WLAN_AUTO_SHUTDOWN := y +CONFIG_FEATURE_WLAN_AP_AP_ACS_OPTIMIZE := y +CONFIG_FEATURE_WLAN_STA_4ADDR_SCHEME := y +CONFIG_MDM_PLATFORM := y +CONFIG_FEATURE_WLAN_STA_AP_MODE_DFS_DISABLE := y +CONFIG_FEATURE_AP_MCC_CH_AVOIDANCE := y +else +CONFIG_QCOM_ESE := y +CONFIG_QCA_IBSS_SUPPORT := y +CONFIG_FEATURE_WLAN_RMC := y +CONFIG_WLAN_OPEN_P2P_INTERFACE := y +CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := y +endif + +#enable 4addr support for QCS405 +ifeq ($(CONFIG_ARCH_QCS405), y) +CONFIG_FEATURE_WLAN_STA_4ADDR_SCHEME := y +endif + +#Enable power management suspend/resume functionality to PCI +CONFIG_ATH_BUS_PM := y + +#Enable FLOWMAC module support +CONFIG_ATH_SUPPORT_FLOWMAC_MODULE := n + +#Enable spectral support +CONFIG_ATH_SUPPORT_SPECTRAL := n + +#Enable WDI Event support +ifeq ($(CONFIG_REMOVE_PKT_LOG), y) +CONFIG_WDI_EVENT_ENABLE := n +else +CONFIG_WDI_EVENT_ENABLE := y +endif + +#Endianness selection +CONFIG_LITTLE_ENDIAN := y + +#Enable TX reclaim support +CONFIG_TX_CREDIT_RECLAIM_SUPPORT := n + +#Enable FTM support +CONFIG_QCA_WIFI_FTM := y + +ifeq ($(CONFIG_QCA_WIFI_FTM), y) + +ifeq ($(CONFIG_NL80211_TESTMODE), y) + QCA_WIFI_FTM_NL80211 :=y +else + QCA_WIFI_FTM_NL80211 :=n +endif + CONFIG_LINUX_QCMBR :=y + +else + QCA_WIFI_FTM_NL80211 :=n + CONFIG_LINUX_QCMBR :=n +endif + + +#Enable Checksum Offload +CONFIG_CHECKSUM_OFFLOAD := y + +#Enable GTK offload +CONFIG_GTK_OFFLOAD := y + +#Enable EXT WOW +ifeq ($(CONFIG_HIF_PCI), y) + CONFIG_EXT_WOW := y +endif + +#Set this to 1 to catch erroneous Target accesses during debug. +CONFIG_ATH_PCIE_ACCESS_DEBUG := n + +#Enable IPA offload +ifeq ($(CONFIG_IPA), y) +CONFIG_IPA_OFFLOAD := y +endif +ifeq ($(CONFIG_IPA3), y) +CONFIG_IPA_OFFLOAD := y +endif + +#Flag to enable SMMU S1 support +ifeq ($(CONFIG_ARCH_SDM845), y) +ifeq ($(CONFIG_IPA_OFFLOAD), y) +CONFIG_ENABLE_SMMU_S1_TRANSLATION := y +endif +endif + +ifeq ($(CONFIG_ARCH_SM8150), y) +ifeq ($(CONFIG_IPA_OFFLOAD), y) +CONFIG_ENABLE_SMMU_S1_TRANSLATION := y +endif +endif + +ifeq ($(CONFIG_ARCH_SDX20), y) +ifeq ($(CONFIG_QCA_WIFI_SDIO), y) +ifeq ($(CONFIG_WCNSS_SKB_PRE_ALLOC), y) +CONFIG_FEATURE_SKB_PRE_ALLOC := y +endif +endif +endif + +#Enable Signed firmware support for split binary format +CONFIG_QCA_SIGNED_SPLIT_BINARY_SUPPORT := n + +#Enable single firmware binary format +CONFIG_QCA_SINGLE_BINARY_SUPPORT := n + +#Enable collecting target RAM dump after kernel panic +CONFIG_TARGET_RAMDUMP_AFTER_KERNEL_PANIC := y + +#Flag to enable/disable secure firmware feature +CONFIG_FEATURE_SECURE_FIRMWARE := n + +#Flag to enable Stats Ext implementation +CONFIG_FEATURE_STATS_EXT := y + +#Flag to allocate memory dynamically for different buffers +CONFIG_WLAN_LOGGING_BUFFERS_DYNAMICALLY := n +CONFIG_WLAN_DFS_STATIC_MEM_ALLOC := y + +#Flag to enable HTC credit history feature +CONFIG_FEATURE_HTC_CREDIT_HISTORY := y + +#Flag to enable MTRACE feature +CONFIG_TRACE_RECORD_FEATURE := y + +#Flag to enable p2p debug feature +CONFIG_WLAN_FEATURE_P2P_DEBUG := y + +#Flag to enable roam debug log +CONFIG_FEATURE_ROAM_DEBUG := y + +#Flag to enable DFS Master feature +CONFIG_WLAN_DFS_MASTER_ENABLE := y + +#Flag to enable WEXT support for STA/AP/P2P interfaces +CONFIG_WLAN_WEXT_SUPPORT_ENABLE := y + +#Flag to enable/disable MTRACE feature +CONFIG_ENABLE_MTRACE_LOG := y + +#Flag to enable nud tracking feature +CONFIG_WLAN_NUD_TRACKING := y + +#Flag to enable wbuff feature +CONFIG_WLAN_WBUFF := y + +#Flag to enable set and get disable channel list feature +CONFIG_DISABLE_CHANNEL_LIST :=y + +#Flag to enable Dynamic Voltage WDCVS (Config Voltage Mode) +CONFIG_WLAN_DYNAMIC_CVM := y + +CONFIG_WIFI_POS_CONVERGED := y +ifneq ($(CONFIG_WIFI_POS_CONVERGED), y) +CONFIG_WIFI_POS_LEGACY := y +endif + +CONFIG_CP_STATS := y + +CONFIG_FEATURE_WLAN_WAPI := y + +CONFIG_AGEIE_ON_SCAN_RESULTS := y + +#Flag to enable FW log parsing support feature +CONFIG_FEATURE_FW_LOG_PARSING := y + +CONFIG_PTT_SOCK_SVC_ENABLE := y +CONFIG_SOFTAP_CHANNEL_RANGE := y +CONFIG_FEATURE_WLAN_SCAN_PNO := y +CONFIG_WLAN_FEATURE_PACKET_FILTERING := y +CONFIG_WLAN_NS_OFFLOAD := y +CONFIG_FEATURE_WLAN_RA_FILTERING:= y +CONFIG_FEATURE_WLAN_LPHB := y +CONFIG_QCA_SUPPORT_TX_THROTTLE := y +CONFIG_WMI_INTERFACE_EVENT_LOGGING := y +CONFIG_WLAN_FEATURE_LINK_LAYER_STATS := y +CONFIG_FEATURE_WLAN_EXTSCAN := y +CONFIG_WMI_BCN_OFFLOAD := y +CONFIG_160MHZ_SUPPORT := y +CONFIG_MCL := y +CONFIG_MCL_REGDB := 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_FEATURE_MONITOR_MODE_SUPPORT := y +CONFIG_WLAN_ALLOCATE_GLOBAL_BUFFERS_DYNAMICALLY := n +CONFIG_WLAN_FEATURE_TWT := y +CONFIG_WLAN_FEATURE_BMI := y + +#Flags to enable/disable vendor commands +CONFIG_FEATURE_RSSI_MONITOR := y +CONFIG_FEATURE_BSS_TRANSITION := y +CONFIG_FEATURE_STATION_INFO := y +CONFIG_FEATURE_TX_POWER := y +CONFIG_FEATURE_OTA_TEST := y +CONFIG_FEATURE_ACTIVE_TOS := y +CONFIG_FEATURE_SAR_LIMITS := y +CONFIG_FEATURE_CONCURRENCY_MATRIX := y +CONFIG_FEATURE_SAP_COND_CHAN_SWITCH := y +CONFIG_FEATURE_P2P_LISTEN_OFFLOAD := y + +#Flags to enable/disable WMI APIs +CONFIG_WMI_ROAM_SUPPORT := y +CONFIG_WMI_CONCURRENCY_SUPPORT := y +CONFIG_WMI_STA_SUPPORT := y + +ifeq ($(CONFIG_HELIUMPLUS), y) +ifneq ($(CONFIG_FORCE_ALLOC_FROM_DMA_ZONE), y) +CONFIG_ENABLE_DEBUG_ADDRESS_MARKING := y +endif +CONFIG_RX_OL := y +endif + +ifeq ($(CONFIG_SLUB_DEBUG_ON), y) + CONFIG_DSC_DEBUG := y + CONFIG_DESC_TIMESTAMP_DEBUG_INFO := y + CONFIG_FEATURE_UNIT_TEST_SUSPEND := y + CONFIG_LEAK_DETECTION := y + CONFIG_MAX_LOGS_PER_SEC := 500 + CONFIG_SCHED_HISTORY_SIZE := 256 + CONFIG_TALLOC_DEBUG := y + CONFIG_UNIT_TEST := y +endif + +ifeq ($(CONFIG_UNIT_TEST), y) + CONFIG_DSC_TEST := y + CONFIG_QDF_TEST := y +endif + +# enable unit-test suspend for napier builds +ifeq ($(CONFIG_LITHIUM), y) + CONFIG_FEATURE_UNIT_TEST_SUSPEND := y +endif + +#Flag to enable hdd memory dump feature +CONFIG_FEATURE_MEMDUMP_ENABLE := y + +#Flag to enable/disable WLAN D0-WOW +ifeq ($(CONFIG_PCI_MSM), y) +ifeq ($(CONFIG_HIF_PCI), y) +CONFIG_FEATURE_WLAN_D0WOW := y +endif +endif + +#Enable Channel Matrix restriction for all Rome only targets +ifneq ($(CONFIG_ICNSS), y) +CONFIG_CHNL_MATRIX_RESTRICTION := y +endif + +ifeq ($(CONFIG_ARCH_MDM9607), y) +CONFIG_TUFELLO_DUAL_FW_SUPPORT := y +endif + +ifeq ($(CONFIG_ARCH_MSM8996), y) +CONFIG_CHANNEL_HOPPING_ALL_BANDS := y +endif + +ifneq ($(CONFIG_HIF_USB), y) +CONFIG_WLAN_LOGGING_SOCK_SVC := y +endif + +ifneq ($(TARGET_BUILD_VARIANT),user) +CONFIG_DESC_DUP_DETECT_DEBUG := y +CONFIG_DEBUG_RX_RING_BUFFER := y +endif + +CONFIG_DP_TRACE := y + +ifeq ($(CONFIG_CNSS), y) +ifeq ($(CONFIG_CNSS_SDIO), y) +CONFIG_PLD_SDIO_CNSS_FLAG := y +endif +ifeq ($(CONFIG_HIF_PCI), y) +CONFIG_PLD_PCIE_CNSS_FLAG := y +endif +endif + +ifeq ($(CONFIG_CNSS2), y) +ifeq ($(CONFIG_HIF_PCI), y) +CONFIG_PLD_PCIE_CNSS_FLAG := y +CONFIG_PLD_PCIE_INIT_FLAG := y +endif +endif + +#Enable VDEV STATE MACHINE +CONFIG_CMN_VDEV_MLME_SM := n +ifeq ($(CONFIG_CMN_VDEV_MLME_SM), y) +#Enable STATE MACHINE HISTORY +CONFIG_SM_ENG_HIST := n +endif +#Enable Beacon Reception Stats +CONFIG_FEATURE_BECN_STATS := y diff --git a/configs/qca6390_defconfig b/configs/qca6390_defconfig new file mode 100644 index 0000000000..a6e00cbf9f --- /dev/null +++ b/configs/qca6390_defconfig @@ -0,0 +1,716 @@ +CONFIG_CNSS_QCA6390 := y +CONFIG_BUS_AUTO_SUSPEND := y + +ifeq ($(CONFIG_CNSS_QCA6390), y) + ifeq ($(CONFIG_CNSS_EMULATION), y) + CONFIG_QCA_WIFI_NAPIER_EMULATION := y + endif + CONFIG_LITHIUM := y + CONFIG_WLAN_FEATURE_11AX := y + CONFIG_WLAN_FEATURE_DFS_OFFLOAD := y + CONFIG_IPA3 := n + CONFIG_SCALE_INCLUDES := y +endif + +ifeq ($(CONFIG_CLD_HL_SDIO_CORE), y) + CONFIG_QCA_WIFI_SDIO := y +ifndef CONFIG_SDIO_TRANSFER + CONFIG_SDIO_TRANSFER = mailbox +endif +endif + +ifeq ($(CONFIG_QCA_WIFI_SDIO), y) + CONFIG_ROME_IF = sdio +endif + +ifdef CONFIG_ICNSS + CONFIG_ROME_IF = snoc +endif + +ifeq (y,$(findstring y,$(CONFIG_CNSS) $(CONFIG_CNSS2))) +ifndef CONFIG_ROME_IF + #use pci as default interface + CONFIG_ROME_IF = pci +endif +endif + +# Make WLAN as open-source driver by default +WLAN_OPEN_SOURCE := y + +ifeq ($(CONFIG_ICNSS), y) + CONFIG_HELIUMPLUS := y + CONFIG_64BIT_PADDR := y + CONFIG_FEATURE_TSO := y + CONFIG_FEATURE_TSO_DEBUG := y + ifeq ($(CONFIG_INET_LRO), y) + CONFIG_WLAN_LRO := y + else + CONFIG_WLAN_LRO := n + endif +endif + +ifneq ($(DEVELOPER_DISABLE_BUILD_TIMESTAMP), y) +ifneq ($(WLAN_DISABLE_BUILD_TAG), y) +CONFIG_BUILD_TAG := y +endif +endif + +ifeq ($(CONFIG_ARCH_MDM9630), y) +CONFIG_MOBILE_ROUTER := y +endif + +ifeq ($(CONFIG_ARCH_MDM9640), y) +CONFIG_MOBILE_ROUTER := y +endif + +ifeq ($(CONFIG_ARCH_SDX20), y) +CONFIG_MOBILE_ROUTER := y +endif + +ifeq ($(CONFIG_ARCH_SDXPRAIRIE), y) +CONFIG_MOBILE_ROUTER := y +endif + +ifeq ($(CONFIG_ARCH_MSM8917), y) + ifeq ($(CONFIG_ROME_IF), sdio) + CONFIG_WLAN_SYNC_TSF_PLUS := y + endif +endif + +ifeq ($(CONFIG_ARCH_QCS405), y) + CONFIG_WLAN_SYNC_TSF_PLUS := y + CONFIG_WLAN_SYNC_TSF_PLUS_NOIRQ := y +endif + +#Flag to enable Legacy Fast Roaming2(LFR2) +CONFIG_QCACLD_WLAN_LFR2 := y +#Flag to enable Legacy Fast Roaming3(LFR3) +ifneq ($(CONFIG_ARCH_SDX20), y) +CONFIG_QCACLD_WLAN_LFR3 := y +endif + +ifneq ($(CONFIG_MOBILE_ROUTER), y) +#Flag to enable TDLS feature +CONFIG_QCOM_TDLS := y + +CONFIG_WLAN_SYSFS := y +endif + +CONFIG_QCACLD_FEATURE_GREEN_AP := y +CONFIG_CRYPTO_COMPONENT := y +#Flag to enable Android Packet Filtering +CONFIG_QCACLD_FEATURE_APF := y + +#Flag to enable SARv1 -> SARv2 conversion +CONFIG_WLAN_FEATURE_SARV1_TO_SARV2 := n + +ifeq ($(CONFIG_ARCH_MSM8998), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SDM660), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SDM630), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SDM845), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SM8150), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SDM670), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +ifeq ($(CONFIG_ARCH_SM6150), y) +CONFIG_QCACLD_FEATURE_METERING := y +endif + +#Flag to enable Fast Transition (11r) feature +CONFIG_QCOM_VOWIFI_11R := y + +#Flag to enable disable ACTION OUI feature +CONFIG_WLAN_FEATURE_ACTION_OUI := y + +#Flag to enable FILS Feature (11ai) +CONFIG_WLAN_FEATURE_FILS := y +ifneq ($(CONFIG_QCA_CLD_WLAN),) + ifeq (y,$(findstring y,$(CONFIG_CNSS) $(CONFIG_CNSS2) $(CONFIG_ICNSS))) + #Flag to enable Protected Management Frames (11w) feature + CONFIG_WLAN_FEATURE_11W := y + #Flag to enable LTE CoEx feature + CONFIG_QCOM_LTE_COEX := y + ifneq ($(CONFIG_MOBILE_ROUTER), y) + #Flag to enable LPSS feature + CONFIG_WLAN_FEATURE_LPSS := y + endif + endif +endif + +#Flag to enable Protected Management Frames (11w) feature +ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_WLAN_FEATURE_11W := y +endif +ifeq ($(CONFIG_ROME_IF),sdio) + CONFIG_WLAN_FEATURE_11W := y +endif + +#Flag to enable the tx desc sanity check +ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_QCA_TXDESC_SANITY_CHECKS := y +endif + +ifneq ($(CONFIG_MOBILE_ROUTER), y) + #Flag to enable NAN + CONFIG_QCACLD_FEATURE_NAN := y +endif + +ifneq ($(CONFIG_MOBILE_ROUTER), y) + #Flag to enable NAN Data path + CONFIG_WLAN_FEATURE_NAN_DATAPATH := y + CONFIG_NAN_CONVERGENCE := y +endif + +#Flag to enable Linux QCMBR feature as default feature +ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_LINUX_QCMBR :=y +endif + + +CONFIG_FEATURE_EPPING := y + +#Flag to enable offload packets feature +CONFIG_WLAN_OFFLOAD_PACKETS := y + +#enable TSF get feature +CONFIG_WLAN_SYNC_TSF := y +#Enable DSRC feature +ifeq ($(CONFIG_QCA_WIFI_SDIO), y) +CONFIG_WLAN_FEATURE_DSRC := y +endif + +ifneq ($(CONFIG_ROME_IF),usb) +ifneq ($(CONFIG_ROME_IF),sdio) + #Flag to enable DISA + CONFIG_WLAN_FEATURE_DISA := y + + #Flag to enable FIPS + CONFIG_WLAN_FEATURE_FIPS := y + + #Flag to enable SAE + CONFIG_WLAN_FEATURE_SAE := y + + #Flag to enable Fast Path feature + ifneq ($(CONFIG_LITHIUM), y) + CONFIG_WLAN_FASTPATH := y + endif + + # Flag to enable NAPI + CONFIG_WLAN_NAPI := y + CONFIG_WLAN_NAPI_DEBUG := n + + # Flag to enable FW based TX Flow control + ifeq ($(CONFIG_LITHIUM), y) + CONFIG_WLAN_TX_FLOW_CONTROL_V2 := y + else + CONFIG_WLAN_TX_FLOW_CONTROL_V2 := n + endif + +endif +endif + +CONFIG_POWER_MANAGEMENT_OFFLOAD := y + +ifeq ($(CONFIG_ROME_IF), snoc) + CONFIG_WLAN_TX_FLOW_CONTROL_V2 := y +endif + +# Flag to enable LFR Subnet Detection +CONFIG_LFR_SUBNET_DETECTION := y + +# Flag to enable MCC to SCC switch feature +CONFIG_MCC_TO_SCC_SWITCH := y + +ifeq ($(CONFIG_SLUB_DEBUG), y) + # Enable Obj Mgr Degug services if slub build + CONFIG_WLAN_OBJMGR_DEBUG:= y + CONFIG_MPC_UT_FRAMEWORK := y + CONFIG_LOCK_STATS_ON:= y +endif + +ifeq (y,$(findstring y,$(CONFIG_QCA_WIFI_SDIO) $(CONFIG_HIF_USB))) +CONFIG_HL_DP_SUPPORT := y +else +CONFIG_LL_DP_SUPPORT := y +endif + +ifeq ($(CONFIG_HIF_PCI), y) +ifneq ($(CONFIG_WLAN_TX_FLOW_CONTROL_V2), y) +ifneq ($(CONFIG_LITHIUM), y) +CONFIG_WLAN_TX_FLOW_CONTROL_LEGACY := y +endif +endif +endif + +#Whether have QMI support +CONFIG_QMI_SUPPORT := y + +ifeq ($(CONFIG_ICNSS), y) +CONFIG_WIFI_3_0_ADRASTEA := y +CONFIG_ADRASTEA_RRI_ON_DDR := y +# Enable athdiag procfs debug support for adrastea +CONFIG_ATH_PROCFS_DIAG_SUPPORT := y +# Enable 11AC TX compact feature for adrastea +CONFIG_ATH_11AC_TXCOMPACT := y +ifeq ($(CONFIG_QMI_SUPPORT), y) +CONFIG_ADRASTEA_SHADOW_REGISTERS := y +endif +endif + +# NOTE: CONFIG_64BIT_PADDR requires CONFIG_HELIUMPLUS +ifeq ($(CONFIG_HELIUMPLUS), y) +CONFIG_AR900B := y + +ifeq ($(CONFIG_64BIT_PADDR), y) +CONFIG_HTT_PADDR64 := y +endif + +ifeq ($(CONFIG_SLUB_DEBUG_ON), y) +CONFIG_OL_RX_INDICATION_RECORD := y +CONFIG_TSOSEG_DEBUG := y +endif + +endif #CONFIG_HELIUMPLUS + +ifeq ($(CONFIG_LITHIUM), y) +# +# Enable Shadow V2 for all lithium platform +# +CONFIG_SHADOW_V2 := y + +ifeq ($(CONFIG_CNSS_QCA6390), y) + CONFIG_QCA6390_HEADERS_DEF := y + CONFIG_QCA_WIFI_QCA6390 := y +endif + +CONFIG_QCA_WIFI_QCA8074 := y +CONFIG_QCA_WIFI_QCA8074_VP := y +CONFIG_DP_INTR_POLL_BASED := y +CONFIG_TX_PER_PDEV_DESC_POOL := y +CONFIG_DP_TRACE := y +CONFIG_FEATURE_TSO := y +CONFIG_TSO_DEBUG_LOG_ENABLE := y +CONFIG_DP_LFR := y +CONFIG_HTT_PADDR64 := y +CONFIG_RX_OL := y +CONFIG_TX_TID_OVERRIDE := y +endif + +# As per target team, build is done as follows: +# Defconfig : build with default flags +# Slub : defconfig + CONFIG_SLUB_DEBUG=y + +# CONFIG_SLUB_DEBUG_ON=y + CONFIG_PAGE_POISONING=y +# Perf : Using appropriate msmXXXX-perf_defconfig +# +# Shipment builds (user variants) should not have any debug feature +# enabled. This is identified using 'TARGET_BUILD_VARIANT'. Slub builds +# are identified using the CONFIG_SLUB_DEBUG_ON configuration. Since +# there is no other way to identify defconfig builds, QCOMs internal +# representation of perf builds (identified using the string 'perf'), +# is used to identify if the build is a slub or defconfig one. This +# way no critical debug feature will be enabled for perf and shipment +# builds. Other OEMs are also protected using the TARGET_BUILD_VARIANT +# config. +ifneq ($(TARGET_BUILD_VARIANT),user) + ifeq ($(CONFIG_LITHIUM), y) + CONFIG_FEATURE_PKTLOG := n + else + CONFIG_FEATURE_PKTLOG := y + endif + CONFIG_WLAN_DEBUG_CRASH_INJECT := y +endif + +#Enable WLAN/Power debugfs feature only if debug_fs is enabled +ifeq ($(CONFIG_DEBUG_FS), y) + # Flag to enable debugfs. Depends on CONFIG_DEBUG_FS in kernel + # configuration. + CONFIG_WLAN_DEBUGFS := y + + CONFIG_WLAN_POWER_DEBUGFS := y +endif + +# Feature flags which are not (currently) configurable via Kconfig + +#Whether to build debug version +BUILD_DEBUG_VERSION := y + +#Enable this flag to build driver in diag version +BUILD_DIAG_VERSION := y + +ifeq ($(CONFIG_SLUB_DEBUG), y) + PANIC_ON_BUG := y + WLAN_WARN_ON_ASSERT := y +else ifeq ($(CONFIG_PERF_DEBUG), y) + PANIC_ON_BUG := y + WLAN_WARN_ON_ASSERT := y +else + PANIC_ON_BUG := n + WLAN_WARN_ON_ASSERT := n +endif + +# Compile all log levels by default +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 +CONFIG_WLAN_LOG_ENTER := y +CONFIG_WLAN_LOG_EXIT := y + +#Enable OL debug and wmi unified functions +CONFIG_ATH_PERF_PWR_OFFLOAD := y + +#Disable packet log +CONFIG_REMOVE_PKT_LOG := n + +#Enable 11AC TX +ifeq ($(CONFIG_ROME_IF),pci) + CONFIG_ATH_11AC_TXCOMPACT := y +endif + +ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_ATH_11AC_TXCOMPACT := n +endif + +#Enable PCI specific APIS (dma, etc) +ifeq ($(CONFIG_ROME_IF),pci) + CONFIG_HIF_PCI := y +endif + +#Enable USB specific APIS +ifeq ($(CONFIG_ROME_IF),usb) + CONFIG_HIF_USB := y +endif + +#Enable SDIO specific APIS +ifeq ($(CONFIG_ROME_IF),sdio) + CONFIG_HIF_SDIO := y + CONFIG_TX_DESC_HI_PRIO_RESERVE := y + CONFIG_PER_VDEV_TX_DESC_POOL := y + CONFIG_FEATURE_HL_GROUP_CREDIT_FLOW_CONTROL := y +endif + +ifeq ($(CONFIG_ROME_IF),snoc) + CONFIG_HIF_SNOC:= y +endif + +# enable/disable feature flags based upon mobile router profile +ifeq ($(CONFIG_MOBILE_ROUTER), y) +CONFIG_FEATURE_WLAN_MCC_TO_SCC_SWITCH := y +CONFIG_FEATURE_WLAN_AUTO_SHUTDOWN := y +CONFIG_FEATURE_WLAN_AP_AP_ACS_OPTIMIZE := y +CONFIG_FEATURE_WLAN_STA_4ADDR_SCHEME := y +CONFIG_MDM_PLATFORM := y +CONFIG_FEATURE_WLAN_STA_AP_MODE_DFS_DISABLE := y +CONFIG_FEATURE_AP_MCC_CH_AVOIDANCE := y +else +CONFIG_QCOM_ESE := y +CONFIG_QCA_IBSS_SUPPORT := y +CONFIG_FEATURE_WLAN_RMC := y +CONFIG_WLAN_OPEN_P2P_INTERFACE := y +CONFIG_WLAN_ENABLE_SOCIAL_CHANNELS_5G_ONLY := y +endif + +#enable 4addr support for QCS405 +ifeq ($(CONFIG_ARCH_QCS405), y) +CONFIG_FEATURE_WLAN_STA_4ADDR_SCHEME := y +endif + +#Enable power management suspend/resume functionality to PCI +CONFIG_ATH_BUS_PM := y + +#Enable FLOWMAC module support +CONFIG_ATH_SUPPORT_FLOWMAC_MODULE := n + +#Enable spectral support +CONFIG_ATH_SUPPORT_SPECTRAL := n + +#Enable WDI Event support +ifeq ($(CONFIG_REMOVE_PKT_LOG), y) +CONFIG_WDI_EVENT_ENABLE := n +else +CONFIG_WDI_EVENT_ENABLE := y +endif + +#Endianness selection +CONFIG_LITTLE_ENDIAN := y + +#Enable TX reclaim support +CONFIG_TX_CREDIT_RECLAIM_SUPPORT := n + +#Enable FTM support +CONFIG_QCA_WIFI_FTM := y + +ifeq ($(CONFIG_QCA_WIFI_FTM), y) + +ifeq ($(CONFIG_NL80211_TESTMODE), y) + QCA_WIFI_FTM_NL80211 :=y +else + QCA_WIFI_FTM_NL80211 :=n +endif + CONFIG_LINUX_QCMBR :=y + +else + QCA_WIFI_FTM_NL80211 :=n + CONFIG_LINUX_QCMBR :=n +endif + + +#Enable Checksum Offload +CONFIG_CHECKSUM_OFFLOAD := y + +#Enable GTK offload +CONFIG_GTK_OFFLOAD := y + +#Enable EXT WOW +ifeq ($(CONFIG_HIF_PCI), y) + CONFIG_EXT_WOW := y +endif + +#Set this to 1 to catch erroneous Target accesses during debug. +CONFIG_ATH_PCIE_ACCESS_DEBUG := n + +#Enable IPA offload +ifeq ($(CONFIG_IPA), y) +CONFIG_IPA_OFFLOAD := y +endif +ifeq ($(CONFIG_IPA3), y) +CONFIG_IPA_OFFLOAD := y +endif + +#Flag to enable SMMU S1 support +ifeq ($(CONFIG_ARCH_SDM845), y) +ifeq ($(CONFIG_IPA_OFFLOAD), y) +CONFIG_ENABLE_SMMU_S1_TRANSLATION := y +endif +endif + +ifeq ($(CONFIG_ARCH_SM8150), y) +ifeq ($(CONFIG_IPA_OFFLOAD), y) +CONFIG_ENABLE_SMMU_S1_TRANSLATION := y +endif +endif + +ifeq ($(CONFIG_ARCH_SDX20), y) +ifeq ($(CONFIG_QCA_WIFI_SDIO), y) +ifeq ($(CONFIG_WCNSS_SKB_PRE_ALLOC), y) +CONFIG_FEATURE_SKB_PRE_ALLOC := y +endif +endif +endif + +#Enable Signed firmware support for split binary format +CONFIG_QCA_SIGNED_SPLIT_BINARY_SUPPORT := n + +#Enable single firmware binary format +CONFIG_QCA_SINGLE_BINARY_SUPPORT := n + +#Enable collecting target RAM dump after kernel panic +CONFIG_TARGET_RAMDUMP_AFTER_KERNEL_PANIC := y + +#Flag to enable/disable secure firmware feature +CONFIG_FEATURE_SECURE_FIRMWARE := n + +#Flag to enable Stats Ext implementation +CONFIG_FEATURE_STATS_EXT := y + +#Flag to allocate memory dynamically for different buffers +CONFIG_WLAN_LOGGING_BUFFERS_DYNAMICALLY := n +CONFIG_WLAN_DFS_STATIC_MEM_ALLOC := y + +#Flag to enable HTC credit history feature +CONFIG_FEATURE_HTC_CREDIT_HISTORY := y + +#Flag to enable MTRACE feature +CONFIG_TRACE_RECORD_FEATURE := y + +#Flag to enable p2p debug feature +CONFIG_WLAN_FEATURE_P2P_DEBUG := y + +#Flag to enable roam debug log +CONFIG_FEATURE_ROAM_DEBUG := y + +#Flag to enable DFS Master feature +CONFIG_WLAN_DFS_MASTER_ENABLE := y + +#Flag to enable WEXT support for STA/AP/P2P interfaces +CONFIG_WLAN_WEXT_SUPPORT_ENABLE := y + +#Flag to enable/disable MTRACE feature +CONFIG_ENABLE_MTRACE_LOG := y + +#Flag to enable nud tracking feature +CONFIG_WLAN_NUD_TRACKING := y + +#Flag to enable wbuff feature +CONFIG_WLAN_WBUFF := y + +#Flag to enable set and get disable channel list feature +CONFIG_DISABLE_CHANNEL_LIST :=y + +#Flag to enable Dynamic Voltage WDCVS (Config Voltage Mode) +CONFIG_WLAN_DYNAMIC_CVM := y + +CONFIG_WIFI_POS_CONVERGED := y +ifneq ($(CONFIG_WIFI_POS_CONVERGED), y) +CONFIG_WIFI_POS_LEGACY := y +endif + +CONFIG_CP_STATS := y + +CONFIG_FEATURE_WLAN_WAPI := y + +CONFIG_AGEIE_ON_SCAN_RESULTS := y + +#Flag to enable FW log parsing support feature +CONFIG_FEATURE_FW_LOG_PARSING := y + +CONFIG_PTT_SOCK_SVC_ENABLE := y +CONFIG_SOFTAP_CHANNEL_RANGE := y +CONFIG_FEATURE_WLAN_SCAN_PNO := y +CONFIG_WLAN_FEATURE_PACKET_FILTERING := y +CONFIG_WLAN_NS_OFFLOAD := y +CONFIG_FEATURE_WLAN_RA_FILTERING:= y +CONFIG_FEATURE_WLAN_LPHB := y +CONFIG_QCA_SUPPORT_TX_THROTTLE := y +CONFIG_WMI_INTERFACE_EVENT_LOGGING := y +CONFIG_WLAN_FEATURE_LINK_LAYER_STATS := y +CONFIG_FEATURE_WLAN_EXTSCAN := y +CONFIG_WMI_BCN_OFFLOAD := y +CONFIG_160MHZ_SUPPORT := y +CONFIG_MCL := y +CONFIG_MCL_REGDB := 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_FEATURE_MONITOR_MODE_SUPPORT := y +CONFIG_WLAN_ALLOCATE_GLOBAL_BUFFERS_DYNAMICALLY := n +CONFIG_WLAN_FEATURE_TWT := y +CONFIG_WLAN_FEATURE_BMI := y + +#Flags to enable/disable vendor commands +CONFIG_FEATURE_RSSI_MONITOR := y +CONFIG_FEATURE_BSS_TRANSITION := y +CONFIG_FEATURE_STATION_INFO := y +CONFIG_FEATURE_TX_POWER := y +CONFIG_FEATURE_OTA_TEST := y +CONFIG_FEATURE_ACTIVE_TOS := y +CONFIG_FEATURE_SAR_LIMITS := y +CONFIG_FEATURE_CONCURRENCY_MATRIX := y +CONFIG_FEATURE_SAP_COND_CHAN_SWITCH := y +CONFIG_FEATURE_P2P_LISTEN_OFFLOAD := y + +#Flags to enable/disable WMI APIs +CONFIG_WMI_ROAM_SUPPORT := y +CONFIG_WMI_CONCURRENCY_SUPPORT := y +CONFIG_WMI_STA_SUPPORT := y + +ifeq ($(CONFIG_HELIUMPLUS), y) +ifneq ($(CONFIG_FORCE_ALLOC_FROM_DMA_ZONE), y) +CONFIG_ENABLE_DEBUG_ADDRESS_MARKING := y +endif +CONFIG_RX_OL := y +endif + +ifeq ($(CONFIG_SLUB_DEBUG_ON), y) + CONFIG_DSC_DEBUG := y + CONFIG_DESC_TIMESTAMP_DEBUG_INFO := y + CONFIG_FEATURE_UNIT_TEST_SUSPEND := y + CONFIG_LEAK_DETECTION := y + CONFIG_MAX_LOGS_PER_SEC := 500 + CONFIG_SCHED_HISTORY_SIZE := 256 + CONFIG_TALLOC_DEBUG := y + CONFIG_UNIT_TEST := y +endif + +ifeq ($(CONFIG_UNIT_TEST), y) + CONFIG_DSC_TEST := y + CONFIG_QDF_TEST := y +endif + +# enable unit-test suspend for napier builds +ifeq ($(CONFIG_LITHIUM), y) + CONFIG_FEATURE_UNIT_TEST_SUSPEND := y +endif + +#Flag to enable hdd memory dump feature +CONFIG_FEATURE_MEMDUMP_ENABLE := y + +#Flag to enable/disable WLAN D0-WOW +ifeq ($(CONFIG_PCI_MSM), y) +ifeq ($(CONFIG_HIF_PCI), y) +CONFIG_FEATURE_WLAN_D0WOW := y +endif +endif + +#Enable Channel Matrix restriction for all Rome only targets +ifneq ($(CONFIG_ICNSS), y) +CONFIG_CHNL_MATRIX_RESTRICTION := y +endif + +ifeq ($(CONFIG_ARCH_MDM9607), y) +CONFIG_TUFELLO_DUAL_FW_SUPPORT := y +endif + +ifeq ($(CONFIG_ARCH_MSM8996), y) +CONFIG_CHANNEL_HOPPING_ALL_BANDS := y +endif + +ifneq ($(CONFIG_HIF_USB), y) +CONFIG_WLAN_LOGGING_SOCK_SVC := y +endif + +ifneq ($(TARGET_BUILD_VARIANT),user) +CONFIG_DESC_DUP_DETECT_DEBUG := y +CONFIG_DEBUG_RX_RING_BUFFER := y +endif + +CONFIG_DP_TRACE := y + +ifeq ($(CONFIG_CNSS), y) +ifeq ($(CONFIG_CNSS_SDIO), y) +CONFIG_PLD_SDIO_CNSS_FLAG := y +endif +ifeq ($(CONFIG_HIF_PCI), y) +CONFIG_PLD_PCIE_CNSS_FLAG := y +endif +endif + +ifeq ($(CONFIG_CNSS2), y) +ifeq ($(CONFIG_HIF_PCI), y) +CONFIG_PLD_PCIE_CNSS_FLAG := y +CONFIG_PLD_PCIE_INIT_FLAG := y +endif +endif + +#Enable VDEV STATE MACHINE +CONFIG_CMN_VDEV_MLME_SM := n +ifeq ($(CONFIG_CMN_VDEV_MLME_SM), y) +#Enable STATE MACHINE HISTORY +CONFIG_SM_ENG_HIST := n +endif +#Enable Beacon Reception Stats +CONFIG_FEATURE_BECN_STATS := y