# synadhd
#
# Copyright (C) 2025 Synaptics Incorporated. All rights reserved.
#
# This software is licensed to you under the terms of the
# GNU General Public License version 2 (the "GPL") with Broadcom special exception.
#
# INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED "AS-IS," AND SYNAPTICS
# EXPRESSLY DISCLAIMS ALL EXPRESS AND IMPLIED WARRANTIES, INCLUDING ANY
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
# AND ANY WARRANTIES OF NON-INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS.
# IN NO EVENT SHALL SYNAPTICS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, PUNITIVE, OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR IN CONNECTION
# WITH THE USE OF THE INFORMATION CONTAINED IN THIS DOCUMENT, HOWEVER CAUSED
# AND BASED ON ANY THEORY OF LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, AND EVEN IF SYNAPTICS WAS ADVISED OF
# THE POSSIBILITY OF SUCH DAMAGE. IF A TRIBUNAL OF COMPETENT JURISDICTION
# DOES NOT PERMIT THE DISCLAIMER OF DIRECT DAMAGES OR ANY OTHER DAMAGES,
# SYNAPTICS' TOTAL CUMULATIVE LIABILITY TO ANY PARTY SHALL NOT
# EXCEED ONE HUNDRED U.S. DOLLARS
#
# Copyright (C) 2025, Broadcom.
#
#      Unless you and Broadcom execute a separate written software license
# agreement governing use of this software, this software is licensed to you
# under the terms of the GNU General Public License version 2 (the "GPL"),
# available at http://www.broadcom.com/licenses/GPLv2.php, with the
# following added to such license:
#
#      As a special exception, the copyright holders of this software give you
# permission to link this software with independent modules, and to copy and
# distribute the resulting executable under terms of your choice, provided that
# you also meet, for each linked independent module, the terms and conditions of
# the license of that module.  An independent module is a module which is not
# derived from this software.  The special exception does not apply to any
# modifications of the software.
#
#
# <<Broadcom-WL-IPTag/Open:>>
#
# Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#


# Path to the module source, KERNEL_SRC is defined for out-of-tree Kbuild
# and BCMDHD_ROOT is passed as KBUILD_OPTIONS for out-of-tree Makefile

ifeq ($(KERNEL_SRC),)
 ifeq ($(srctree),.)
  BCMDHD_ROOT=$(src)
 else
  BCMDHD_ROOT=$(srctree)/$(src)
 endif
 ifneq ($(CONFIG_ARCH_ASTRA),)
  BCMDHD_ROOT=$(src)
 endif
 $(warning : ** Regular in-tree build BCMDHD_ROOT=$(BCMDHD_ROOT)**)
else
 ifeq ($(BCMDHD_ROOT),)
  BCMDHD_ROOT=$(KERNEL_SRC)/$(src)
 endif
 $(warning : ** out-of-tree Kbuild BCMDHD_ROOT=$(BCMDHD_ROOT)**)
endif

#any customize config put in cust_cfg.mk
include $(BCMDHD_ROOT)/cust_cfg.mk

#Bus specified from build command, apply common configuration
ifeq ($(CONFIG_BCMDHD_BUS), sdio)
 $(warning : ** build sdio**)
 CONFIG_BCMDHD_SDIO=y
 CONFIG_BCMDHD_PCIE=
 CONFIG_BCMDHD_USB=
else ifeq ($(CONFIG_BCMDHD_BUS), pcie)
 $(warning : ** build pcie**)
 CONFIG_BCMDHD_PREALLOC_PKTIDMAP=y
 CONFIG_BCMDHD_SDIO=
 CONFIG_BCMDHD_PCIE=y
 CONFIG_BCMDHD_USB=
 DHDCFLAGS += -DCONFIG_BCMDHD_PREALLOC_PKTIDMAP=$(CONFIG_BCMDHD_PREALLOC_PKTIDMAP)
else ifeq ($(CONFIG_BCMDHD_BUS), usb)
 $(warning : ** build usb**)
 CONFIG_BCMDHD_SDIO=
 CONFIG_BCMDHD_PCIE=
 CONFIG_BCMDHD_USB=y
else
 $(warning : ** no bus specify, decide by kernel config or hard code below!**)
endif

#####################
# SDIO/PCIe Basic feature
#####################
ifeq ($(CONFIG_BCMDHD_SDIO),y)
CONFIG_BCMDHD_PCIE=
CONFIG_BCMDHD_USB=
else
ifeq ($(CONFIG_BCMDHD_PCIE),y)
CONFIG_BCMDHD_SDIO=
CONFIG_BCMDHD_USB=
endif # CONFIG_BCMDHD_PCIE = y
endif # CONFIG_BCMDHD_SDIO =y

# For inbuilt module, below configs will be provided via defconfig
# But for out-of-tree module, explicitly define them here and add
# them as cflags
CONFIG_BCMDHD ?= m
CONFIG_BCMDHD_PCIE ?= y
CONFIG_BCM43752 ?= y
CONFIG_BCM4389 ?=
CONFIG_DHD_OF_SUPPORT ?= y
CONFIG_BROADCOM_WIFI_RESERVED_MEM ?= y
CONFIG_DHD_USE_STATIC_BUF ?= y
CONFIG_DHD_USE_SCHED_SCAN ?= y
CONFIG_DHD_SET_RANDOM_MAC_VAL ?= 0x001A11
CONFIG_WLAN_REGION_CODE ?= 100
CONFIG_WLAIBSS ?= y
CONFIG_WL_RELMCAST ?= y
CONFIG_BCMDHD_PREALLOC_PKTIDMAP ?= y
CONFIG_BCMDHD_PREALLOC_MEMDUMP ?= y
CONFIG_BCMDHD_OOB ?= y
#default for none DHD_LINUX_STD_FW_API
CONFIG_BCMDHD_FW_PATH ?= "\"/vendor/etc/wifi/fw_bcmdhd.bin\""
CONFIG_BCMDHD_NVRAM_PATH ?= "\"/vendor/etc/wifi/bcmdhd.cal\""
CONFIG_BCMDHD_CLM_PATH ?= "\"/vendor/etc/wifi/bcmdhd_clm.blob\""
CONFIG_BCMDHD_MAP_PATH ?= "\"/vendor/etc/wifi/fw_bcmdhd.map\""
CONFIG_WL_STATIC_IF ?= y
CONFIG_WL_VIRTUAL_APSTA ?= y
CONFIG_WL_NAN ?= y

ifneq ($(CONFIG_ARCH_ASTRA),)
CONFIG_BCMDHD_OOB=
endif
# enable HTPUT for 4389
ifneq ($(CONFIG_BCM4389),)
 CONFIG_BCMDHD_HTPUT=y
endif

### Compares two dotted numeric strings (e.g 2.3.16.1) for $1 >= $2
define wlan_version_ge
$(findstring TRUE,$(shell bash -c 'sort -cu -t. -k1,1nr -k2,2nr -k3,3nr -k4,4nr <(echo -e "$2\n$1") 2>&1 || echo TRUE'))
endef # wlan_version_ge
ifeq ($(GCCVER),)
  GCCVER = $(shell $(CC) --version | grep -Eo '[0-9x]+(\.[0-9x]+)+' | tail -1)
endif # GCCVER

ifeq ($(call wlan_version_ge,$(GCCVER),8.0),TRUE)
# increase stack size for wl_cfgvendor_lstats_get_info()
WFLAGS += -Werror=frame-larger-than=2400
endif # ($(call wlan_version_ge,$(GCCVER),8.0),TRUE)

DHDCFLAGS += -DCONFIG_BCMDHD=$(CONFIG_BCMDHD)
DHDCFLAGS += -DCONFIG_BCMDHD_PCIE=$(CONFIG_BCMDHD_PCIE)
DHDCFLAGS += -DCONFIG_BCM43752=$(CONFIG_BCM43752)
DHDCFLAGS += -DCONFIG_BCM4389=$(CONFIG_BCM4389)
DHDCFLAGS += -DCONFIG_BCMDHD_HTPUT=$(CONFIG_BCMDHD_HTPUT)
DHDCFLAGS += -DCONFIG_DHD_OF_SUPPORT=$(CONFIG_DHD_OF_SUPPORT)
DHDCFLAGS += -DCONFIG_BROADCOM_WIFI_RESERVED_MEM=$(CONFIG_BROADCOM_WIFI_RESERVED_MEM)
DHDCFLAGS += -DCONFIG_DHD_USE_STATIC_BUF=$(CONFIG_DHD_USE_STATIC_BUF)
DHDCFLAGS += -DCONFIG_DHD_USE_SCHED_SCAN=$(CONFIG_DHD_USE_SCHED_SCAN)
DHDCFLAGS += -DCONFIG_DHD_SET_RANDOM_MAC_VAL=$(CONFIG_DHD_SET_RANDOM_MAC_VAL)
DHDCFLAGS += -DCONFIG_WLAN_REGION_CODE=$(CONFIG_WLAN_REGION_CODE)
DHDCFLAGS += -DCONFIG_WLAIBSS=$(CONFIG_WLAIBSS)
DHDCFLAGS += -DCONFIG_WL_RELMCAST=$(CONFIG_WL_RELMCAST)
DHDCFLAGS += -DCONFIG_BCMDHD_PREALLOC_PKTIDMAP=$(CONFIG_BCMDHD_PREALLOC_PKTIDMAP)
DHDCFLAGS += -DCONFIG_BCMDHD_PREALLOC_MEMDUMP=$(CONFIG_BCMDHD_PREALLOC_MEMDUMP)

DHDCFLAGS += -DBCMUTILS_ERR_CODES -DUSE_NEW_RSPEC_DEFS -DBCM_FLEX_ARRAY
DHDCFLAGS += -DPMU_NEW_ACCESS_MACROS -DCHIPC_NEW_ACCESS_MACROS \
  -DSR_NEW_ACCESS_MACROS -DPCIE_NEW_ACCESS_MACROS
DHDCFLAGS += -DCLEANED_UP_IOCTL

DHDCFLAGS += -Wall -Wstrict-prototypes -Dlinux -DLINUX -DBCMDRIVER \
	-DBCMDONGLEHOST -DBCMDMA32 -DBCMFILEIMAGE				\
	-DDHDTHREAD -DSHOW_EVENTS -DWLP2P					\
	-DWIFI_ACT_FRAME -DARP_OFFLOAD_SUPPORT -DENABLE_ARP_SNOOP_MODE		\
	-DKEEP_ALIVE -DPKT_FILTER_SUPPORT					\
	-DEMBEDDED_PLATFORM -DPNO_SUPPORT -DSHOW_LOGTRACE			\
	-DGET_CUSTOM_MAC_ENABLE							\
	-DSEC_ENHANCEMENT -DDHD_FW_COREDUMP					\
	-DDHD_DUMP_FILE_WRITE_FROM_KERNEL					\
	-DDHD_USE_RANDMAC							\
	-DWL_P2P_USE_RANDMAC

DHDCFLAGS += -DOEM_ANDROID
DHDCFLAGS += -DDHD_COREDUMP
DHDCFLAGS += -DCUSTOM_DHD_COMMON_DUMP_PATH="\"/root/\""

# Allow wl event forwarding as network packet
DHDCFLAGS += -DWL_EVENT_ENAB

# Support to disable 6GHz band during insmod
DHDCFLAGS += -DDISABLE_6G_SUPPORT

#################
# Common feature
#################
# Enable MLO Backport
# DHDCFLAGS += -DWL_MLO_BKPORT
# Enable GKI update
# DHDCFLAGS += -DANDROID_GKI_UPDATE
# Enable Google project settings
# CONFIG_GOOGLE_CUSTOM=y

ifeq ($(CONFIG_WL_VIRTUAL_APSTA),y)
DHDCFLAGS += -DWL_VIRTUAL_APSTA
endif

DHDCFLAGS += -DEWP_ECNTRS_LOGGING
DHDCFLAGS += -DEWP_RTT_LOGGING
ifneq ($(CONFIG_BCMDHD_PCIE),)
	DHDCFLAGS += -DEWP_ETD_PRSRV_LOGS
	DHDCFLAGS += -DEWP_EDL
	DHDCFLAGS += -DEXT_TRAP
	DHDCFLAGS += -DEVENT_LOG_RATE_HC
	DHDCFLAGS += -DDHD_PCIE_WRAPPER_DUMP
	# Android PCIE features
	DHDCFLAGS += -DBTLOG
	DHDCFLAGS += -DBT_OVER_PCIE
	DHDCFLAGS += -DSNAPSHOT_UPLOAD
	DHDCFLAGS += -DDHD_DB0TS
	DHDCFLAGS += -DTX_STATUS_LATENCY_STATS
endif

DHDCFLAGS += -DDHD_SI_WD_RESET

# Enable wakelock debug function
DHDCFLAGS += -DDHD_TRACE_WAKE_LOCK

# Support of channel stats in HAL V1.3
DHDCFLAGS += -DCHAN_STATS_SUPPORT

# Support of power stats in sysfs
DHDCFLAGS += -DPWRSTATS_SYSFS

# Enable SBN feature
DHDCFLAGS += -DDHD_SBN

# Skip pktlogging of data packets
DHDCFLAGS += -DDHD_SKIP_PKTLOGGING_FOR_DATA_PKTS

# Enable inband device wake feature
DHDCFLAGS += -DPCIE_INB_DW

# Enable 320M support
DHDCFLAGS += -DWL_BW320MHZ

# Debug check for PCIe read latency
#DHDCFLAGS += -DDBG_DW_CHK_PCIE_READ_LATENCY

# Hikey sched is not so optimized and hence need a higher timeout
DHDCFLAGS += -DWAIT_FOR_DISCONNECT_MAX=20

#static if
ifeq ($(CONFIG_WL_STATIC_IF),y)
DHDCFLAGS += -DWL_STATIC_IF
endif

#MLO
DHDCFLAGS += -DWL_MLO #-DWL_MLO_AP

#WPA3
DHDCFLAGS += -DWL_CLIENT_SAE -DWL_GCMP_SUPPORT

# Wapi
#DHDCFLAGS += -DBCMWAPI_WPI -DBCMWAPI_WAI

# FBT
DHDCFLAGS += -DWLFBT

# OKC
DHDCFLAGS += -DOKC_SUPPORT

DHDCFLAGS += -DWL_CFG80211
# Android iface management
DHDCFLAGS += -DWL_IFACE_MGMT
#Debug flag
DHDCFLAGS += -DWL_IFACE_MGMT_CONF

#Debug flag
DHDCFLAGS += -DRTT_GEOFENCE_INTERVAL

#Debug flag
DHDCFLAGS += -DRTT_GEOFENCE_CONT

# Increase ARP Priority to avoid head of queue blocking
DHDCFLAGS += -DPRIORITIZE_ARP

#Debug flag
#dbg ring
DHDCFLAGS += -DDEBUGABILITY
DHDCFLAGS += -DDEBUGABILITY_DISABLE_MEMDUMP
DHDCFLAGS += -DDHD_PKT_LOGGING_DBGRING
DHDCFLAGS += -DDHD_DEBUGABILITY_LOG_DUMP_RING
DHDCFLAGS += -DCUSTOMER_DBG_SYSTEM_TIME -DCUSTOMER_DBG_PREFIX_ENABLE
DHDCFLAGS += -DWL_CFGVENDOR_SEND_ALERT_EVENT
DHDCFLAGS += -DDHD_REPLACE_LOG_INFO_TO_TRACE
DHDCFLAGS += -DDHD_DUMP_BUF_KVMALLOC

#QoS mgmt
DHDCFLAGS += -DQOS_MAP_SET

ifneq ($(CONFIG_ARCH_MESON),)
DHDCFLAGS += -DBOARD_VIM3
DHDCFLAGS += -DCUSTOM_PREFIX_NORTCTIME="\"[DHD] \""
ifneq ($(CONFIG_BCMDHD_SDIO),)
CONFIG_BCMDHD_OOB=y
endif
ifneq ($(CONFIG_ANDROID),)
DHDCFLAGS += -Wframe-larger-than=2400
endif
endif

ifneq ($(CONFIG_X86),)
CONFIG_BCMDHD_OOB=
CONFIG_ARCH_DUMMY=y
endif

## OOB
ifneq ($(CONFIG_BCMDHD_SDIO),)
ifeq ($(CONFIG_BCMDHD_OOB),y)
    DHDCFLAGS += -DDHD_USE_HOST_WAKE
ifeq ($(CONFIG_BCM4339),)
    DHDCFLAGS += -DOOB_INTR_ONLY
endif
    DHDCFLAGS += -DHW_OOB
else
  DHDCFLAGS += -DSDIO_ISR_THREAD
endif
endif


#Debug flag
#loglevel adjustment
DHDCFLAGS += -DDHD_LOGLEVEL

# SCAN TYPES, if kernel < 4.17 ..back port support required
ifneq ($(CONFIG_CFG80211_SCANTYPE_BKPORT),)
 DHDCFLAGS += -DWL_SCAN_TYPE
endif

# Print out kernel panic point of file and line info when assertion happened
DHDCFLAGS += -DBCMASSERT_LOG

# Enable Log Dump
DHDCFLAGS += -DDHD_LOG_DUMP

# Enable MMIO Trace
DHDCFLAGS += -DDHD_MMIO_TRACE

# Enable log print rate limit
DHDCFLAGS += -DDHD_LOG_PRINT_RATE_LIMIT

# Block ARP during DHCP on STA/SoftAP concurrent mode
DHDCFLAGS += -DAPSTA_BLOCK_ARP_DURING_DHCP

# Bypass wpa_supplicant's BSSID selection
# DHDCFLAGS += -DWL_SKIP_CONNECT_HINTS

# Enable auto country to support country 00
DHDCFLAGS += -DWL_AUTO_COUNTRY -DWIPHY_DYNAMIC_UPDATE

# for supporting SAR related feature
DHDCFLAGS += -DSYNA_SAR_CUSTOMER_PARAMETER

ifneq ($(CONFIG_BCMDHD_PCIE),)
ifneq ($(CONFIG_ARCH_MESON),)
# Enable MSI support for vim3
	DHDCFLAGS += -DDHD_MSI_SUPPORT
endif
ifneq ($(CONFIG_ARCH_ASTRA),)
	DHDCFLAGS += -DDHD_MSI_SUPPORT
endif
ifneq ($(CONFIG_BCMDHD_SINGLE_CORE),y)
# Use spin_lock_bh locks
	DHDCFLAGS += -DDHD_USE_SPIN_LOCK_BH
endif # CONFIG_BCMDHD_SINGLE_CORE
# Enable SSSR Dump
	DHDCFLAGS += -DDHD_SSSR_DUMP
# Enable FIS Dump
#	DHDCFLAGS += -DDHD_FIS_DUMP
# Enable System Debug Trace Controller, Embedded Trace Buffer
#	DHDCFLAGS += -DDHD_SDTC_ETB_DUMP
# Enable SMD/Minidump collection
	DHDCFLAGS += -DD2H_MINIDUMP
# ROT and Scan timeout debugging due to Kernel scheduling problem
	DHDCFLAGS += -DDHD_KERNEL_SCHED_DEBUG
# Enable CTO Recovery
	DHDCFLAGS += -DBCMPCIE_CTO_PREVENTION
# no reset during dhd attach
#	DHDCFLAGS += -DDHD_SKIP_DONGLE_RESET_IN_ATTACH
# Dongle Isolation will ensure no resets devreset ON/OFF
	DHDCFLAGS += -DDONGLE_ENABLE_ISOLATION
# Quiesce dongle using DB7 trap
	DHDCFLAGS += -DDHD_DONGLE_TRAP_IN_DETACH
	DHDCFLAGS += -DDHD_FLOW_RING_STATUS_TRACE
# Enable internal Rx packet pool
	DHDCFLAGS += -DRX_PKT_POOL
# Enable workitem aggregation
	DHDCFLAGS += -DDHD_AGGR_WI
# Bits in DHD_AGGR_WI_EN : 0 = TXPOST | 1 = RXPOST | 2 = TXCPL | 3 = RXCPL
	DHDCFLAGS += -DDHD_AGGR_WI_EN=0xE
# Dongle reset during Wifi ON to keep in sane state
	DHDCFLAGS += -DFORCE_DONGLE_RESET_IN_DEVRESET_ON
# Perform Backplane Reset else FLR will happen
#	DHDCFLAGS += -DDHD_USE_BP_RESET_SS_CTRL

# Memory consumed by DHD
	DHDCFLAGS += -DDHD_MEM_STATS
# Check trap in the case of ROT
	DHDCFLAGS += -DCHECK_TRAP_ROT

# Enable Host SFH LLC insertion in Tx pkts
	DHDCFLAGS += -DHOST_SFH_LLC

# Enable PKTID AUDIT
	DHDCFLAGS += -DDHD_PKTID_AUDIT_ENABLED
	DHDCFLAGS += -DDHD_MAP_PKTID_LOGGING

# Enable Tx checksum offloads
	DHDCFLAGS += -DTX_CSO
# Enable Rx checksum offloads
	DHDCFLAGS += -DRX_CSO

ifeq ($(CONFIG_BCMDHD_PCIE_POLLING),y)
	DHDCFLAGS += -DDHD_PCIE_READ_INTSTATUS_IN_DPC
	DHDCFLAGS += -DCUSTOM_DHD_WATCHDOG_MS=10
endif # CONFIG_BCMDHD_PCIE_POLLING
endif # CONFIG_BCMDHD_PCIE

ifneq ($(CONFIG_BCMDHD_HTPUT),)
 $(warning : ** HTPUT build)
 DHDCFLAGS += -DDHD_HTPUT_TUNABLES
endif

ifneq ($(CONFIG_BCMDHD_PCIE),)
# Enable Load Balancing support by default.
# DHD_LB_RXP - Perform RX Packet processing in parallel, default enabled
# DHD_LB_TXP - Perform TX Packet processing in parallel, default disabled, enabled using DHD_LB_TXP_DEFAULT_ENAB
# DHD_LB_STATS - To display the Load Blancing statistics
	DHDCFLAGS += -DDHD_LB -DDHD_LB_RXP -DDHD_LB_TXP -DDHD_LB_STATS
	DHDCFLAGS += -DDHD_LB_PRIMARY_CPUS=0xF0 -DDHD_LB_SECONDARY_CPUS=0x0E
# GRO (Generic Receive Offload) feature
	DHDCFLAGS += -DENABLE_DHD_GRO
# Support Monitor Mode
	DHDCFLAGS += -DWL_MONITOR
# WLBR Regon coordinator
	DHDCFLAGS += -DWBRC
# Enable monitor chanspec setting from cfg80211 ops
	DHDCFLAGS += -DWL_CFG80211_MONITOR
endif

ifeq ($(CONFIG_ARCH_MESON),)
ifeq ($(CONFIG_ARCH_ASTRA),)
ifneq ($(CONFIG_FIB_RULES),)
# Debugability
# HAL File dump is supported only for iptable builds(brcm_wlan_iptables_defconfig)
DHDCFLAGS += -DDHD_FILE_DUMP_EVENT
DHDCFLAGS := $(filter-out -DDHD_DUMP_FILE_WRITE_FROM_KERNEL ,$(DHDCFLAGS))
endif
endif
endif

# CUSTOMER2 flags

# Basic / Common Feature
DHDCFLAGS += -DDHDTCPACK_SUPPRESS
DHDCFLAGS += -DUSE_WL_FRAMEBURST
DHDCFLAGS += -DUSE_WL_TXBF
DHDCFLAGS += -DSOFTAP_UAPSD_OFF
DHDCFLAGS += -DVSDB
DHDCFLAGS += -DWL_CFG80211_STA_EVENT
ifneq ($(CONFIG_CFG80211_FILS_BKPORT),)
DHDCFLAGS += -DWL_FILS
endif
ifneq ($(CONFIG_CFG80211_FILS_ROAM_BKPORT),)
DHDCFLAGS += -DWL_FILS_ROAM_OFFLD
endif

# Android Feature
DHDCFLAGS += -DAPF
DHDCFLAGS += -DDHD_GET_VALID_CHANNELS
DHDCFLAGS += -DLINKSTAT_SUPPORT
# Disabling LINKSTAT_EXT_SUPPORT alike FC30 build
# DHDCFLAGS += -DLINKSTAT_EXT_SUPPORT
DHDCFLAGS += -DPFN_SCANRESULT_2
DHDCFLAGS += -DWL_IFACE_COMB_NUM_CHANNELS
DHDCFLAGS += -DASSOC_PREF_5G
DHDCFLAGS += -DASSOC_PREFER_RSSI_THRESH=-65
DHDCFLAGS += -DCUSTOM_ASSOC_RETRY_MAX=11
# Custom Mapping of DSCP to User Priority
DHDCFLAGS += -DWL_CUSTOM_MAPPING_OF_DSCP
# Scheduled scan (PNO)
DHDCFLAGS += -DWL_SCHED_SCAN
DHDCFLAGS += -DDISABLE_ADAPTIVE_PNO
# FW ROAM control
DHDCFLAGS += -DROAMEXP_SUPPORT
# Skip supplicant bssid and channel hints
# DHDCFLAGS += -DWL_SKIP_CONNECT_HINTS
# Phy / System
DHDCFLAGS += -DCUSTOM_SET_OCLOFF
DHDCFLAGS += -DDHD_ENABLE_LPC
DHDCFLAGS += -DDISABLE_PM_BCNRX
DHDCFLAGS += -DFCC_PWR_LIMIT_2G
DHDCFLAGS += -DSUPPORT_2G_VHT
DHDCFLAGS += -DSUPPORT_5G_1024QAM_VHT
DHDCFLAGS += -DSUPPORT_LTECX
DHDCFLAGS += -DSUPPORT_LQCM
DHDCFLAGS += -DSUPPORT_SET_CAC
DHDCFLAGS += -DSUPPORT_WL_TXPOWER
DHDCFLAGS += -DWL_THERMAL_MITIGATION
# Roaming feature
DHDCFLAGS += -DDHD_LOSSLESS_ROAMING
DHDCFLAGS += -DENABLE_FW_ROAM_SUSPEND
DHDCFLAGS += -DROAM_API
DHDCFLAGS += -DROAM_AP_ENV_DETECTION
DHDCFLAGS += -DROAM_CHANNEL_CACHE
DHDCFLAGS += -DROAM_ENABLE
DHDCFLAGS += -DSKIP_ROAM_TRIGGER_RESET
DHDCFLAGS += -DWBTEXT_SCORE_V2
DHDCFLAGS += -DWL_LASTEVT
DHDCFLAGS += -DROAM_EVT_DISABLE
# Wake
DHDCFLAGS += -DCONFIG_HAS_WAKELOCK
DHDCFLAGS += -DDHD_WAKE_EVENT_STATUS
DHDCFLAGS += -DDHD_WAKE_RX_STATUS
#Android Q
DHDCFLAGS += -DWL_USE_RANDOMIZED_SCAN
DHDCFLAGS += -DSTA_RANDMAC_ENFORCED
#Connected MAC randomization
DHDCFLAGS += -DWL_STA_ASSOC_RAND
#Soft AP MAC randomization
DHDCFLAGS += -DWL_SOFTAP_RAND
#p2p MAC randomization
#DHDCFLAGS += -DWL_P2P_RAND
# Enable below define for production
#DHDCFLAGS += -DMACADDR_PROVISION_ENFORCED
ifneq ($(CONFIG_BCMDHD_PCIE),)
	DHDCFLAGS += -DDHD_WAKE_STATUS
endif
DHDCFLAGS += -DENABLE_BCN_LI_BCN_WAKEUP
# Hang
DHDCFLAGS += -DDHD_HANG_SEND_UP_TEST
DHDCFLAGS += -DDHD_USE_EXTENDED_HANG_REASON
DHDCFLAGS += -DPREVENT_REOPEN_DURING_HANG
DHDCFLAGS += -DSUPPORT_LINKDOWN_RECOVERY
DHDCFLAGS += -DSUPPORT_TRIGGER_HANG_EVENT
# Logging
DHDCFLAGS += -DBCMASSERT_LOG
DHDCFLAGS += -DDHD_8021X_DUMP
DHDCFLAGS += -DDHD_DHCP_DUMP
DHDCFLAGS += -DDHD_ICMP_DUMP
DHDCFLAGS += -DDHD_ARP_DUMP
DHDCFLAGS += -DDHD_DNS_DUMP
DHDCFLAGS += -DDHD_PKT_LOGGING
DHDCFLAGS += -DDHD_PKTDUMP_ROAM
DHDCFLAGS += -DDHD_RANDMAC_LOGGING
DHDCFLAGS += -DDHD_STATUS_LOGGING
DHDCFLAGS += -DDISABLE_PCI_LOGGING -DDISABLE_BEACON_LOGGING
DHDCFLAGS += -DDHD_WL_ERROR_LOGGING -DDHD_IE_ERROR_LOGGING -DDHD_ASSOC_ERROR_LOGGING -DDHD_PMU_ERROR_LOGGING
DHDCFLAGS += -DDHD_8021X_ERROR_LOGGING -DDHD_AMPDU_ERROR_LOGGING -DDHD_SAE_ERROR_LOGGING
DHDCFLAGS += -DDHD_WAKEPKT_DUMP
DHDCFLAGS += -DDHD_WAKEPKT_SET_MARK
DHDCFLAGS += -DRSSI_MONITOR_SUPPORT
DHDCFLAGS += -DSUPPORT_RSSI_SUM_REPORT
DHDCFLAGS += -DSET_SSID_FAIL_CUSTOM_RC=100
DHDCFLAGS += -DDHD_EVENT_LOG_FILTER
DHDCFLAGS += -DWL_CFGVENDOR_SEND_HANG_EVENT
# Packet
DHDCFLAGS += -DBLOCK_IPV6_PACKET
#DHDCFLAGS += -DDHD_DONOT_FORWARD_BCMEVENT_AS_NETWORK_PKT # NAN test failure
DHDCFLAGS += -DENABLE_IPMCAST_FILTER
DHDCFLAGS += -DPASS_ALL_MCAST_PKTS
DHDCFLAGS += -DPKTPRIO_OVERRIDE
DHDCFLAGS += -DNDO_CONFIG_SUPPORT
# Kernel/Platform Related Feature
#DHDCFLAGS += -DDHD_LB_TXP_DEFAULT_ENAB # Not needed for Brix
#DHDCFLAGS += -DDHD_RECOVER_TIMEOUT # Not needed for Brix
#DHDCFLAGS += -DDHD_USE_ATOMIC_PKTGET # Not needed for Brix
#DHDCFLAGS += -DDHD_USE_COHERENT_MEM_FOR_RING # Not needed for Brix
#DHDCFLAGS += -DDONGLE_ENABLE_ISOLATION # Not compatible with Brix platform
#DHDCFLAGS += -DKEEP_WIFION_OPTION # Not compatible with Brix platform
DHDCFLAGS += -DWAIT_DEQUEUE
DHDCFLAGS += -DWL_SUPPORT_BACKPORTED_KPATCHES
# SoftAP
DHDCFLAGS += -DSUPPORT_AP_HIGHER_BEACONRATE
DHDCFLAGS += -DSUPPORT_AP_RADIO_PWRSAVE
DHDCFLAGS += -DSUPPORT_HIDDEN_AP
DHDCFLAGS += -DSUPPORT_SOFTAP_SINGL_DISASSOC
DHDCFLAGS += -DWL_SUPPORT_AUTO_CHANNEL
DHDCFLAGS += -DSUPPORT_SOFTAP_WPAWPA2_MIXED
# P2P
DHDCFLAGS += -DP2P_LISTEN_OFFLOADING
DHDCFLAGS += -DP2P_SKIP_DFS
# High priority P2P support
#DHDCFLAGS += -DDHD_HP2P

DHDCFLAGS += -DSPECIFIC_MAC_GEN_SCHEME
# SCAN
DHDCFLAGS += -DCUSTOMER_SCAN_TIMEOUT_SETTING
DHDCFLAGS += -DDISABLE_PRUNED_SCAN
DHDCFLAGS += -DESCAN_BUF_OVERFLOW_MGMT
#Disabling the SUPPORT_RANDOM_MAC_SCAN
# to make the FW to perform MAC Randomization
#DHDCFLAGS += -DSUPPORT_RANDOM_MAC_SCAN
#DHDCFLAGS += -DUSE_INITIAL_SHORT_DWELL_TIME
DHDCFLAGS += -DWL_CFG80211_VSDB_PRIORITIZE_SCAN_REQUEST

# Suspend/Resume
DHDCFLAGS += -DENABLE_MAX_DTIM_IN_SUSPEND
DHDCFLAGS += -DSUPPORT_DEEP_SLEEP
# Misc Features
DHDCFLAGS += -DDHD_BLOB_EXISTENCE_CHECK
DHDCFLAGS += -DSUPPORT_PM2_ONLY
DHDCFLAGS += -DSUPPORT_AMPDU_MPDU_CMD
DHDCFLAGS += -DWL_RELMCAST
DHDCFLAGS += -DWL_SUPP_EVENT
DHDCFLAGS += -DDISABLE_WL_FRAMEBURST_SOFTAP
DHDCFLAGS += -DFILTER_IE
DHDCFLAGS += -DCUSTOM_LONG_RETRY_LIMIT=12
DHDCFLAGS += -DDHD_POST_EAPOL_M1_AFTER_ROAM_EVT
DHDCFLAGS += -DROAMEXP_SUPPORT
DHDCFLAGS += -DCUSTOM_BSSID_BLACKLIST_NUM=16
DHDCFLAGS += -DCUSTOM_SSID_WHITELIST_NUM=16
# Kind of WAR
DHDCFLAGS += -DENABLE_TDLS_AUTO_MODE
DHDCFLAGS += -DEXPLICIT_DISCIF_CLEANUP
DHDCFLAGS += -DSKIP_WLFC_ON_CONCURRENT
DHDCFLAGS += -DCUSTOM_BLOCK_DEAUTH_AT_EAP_FAILURE
DHDCFLAGS += -DTDLS_MSG_ONLY_WFD
# Custom tuning value
DHDCFLAGS += -DCUSTOM_ROAM_TIME_THRESH_IN_SUSPEND=6000
DHDCFLAGS += -DCUSTOM_EVENT_PM_WAKE=20
DHDCFLAGS += -DCUSTOM_KEEP_ALIVE_SETTING=30000
DHDCFLAGS += -DCUSTOM_PNO_EVENT_LOCK_xTIME=10
DHDCFLAGS += -DSPECIFIC_MAC_GEN_SCHEME
ifneq ($(CONFIG_BCMDHD_PCIE),)
DHDCFLAGS += -DCUSTOM_DHD_WATCHDOG_MS=0
endif

DHDCFLAGS += -DCUSTOM_TDLS_IDLE_MODE_SETTING=10000
DHDCFLAGS += -DCUSTOM_TDLS_RSSI_THRESHOLD_HIGH=-80
DHDCFLAGS += -DCUSTOM_TDLS_RSSI_THRESHOLD_LOW=-85
DHDCFLAGS += -DCUSTOM_TCPACK_SUPP_RATIO=15
DHDCFLAGS += -DCUSTOM_TCPACK_DELAY_TIME=10
DHDCFLAGS += -DD3_ACK_RESP_TIMEOUT=4000
DHDCFLAGS += -DIOCTL_RESP_TIMEOUT=5000
DHDCFLAGS += -DMAX_DTIM_ALLOWED_INTERVAL=925
DHDCFLAGS += -DENABLE_MAX_DTIM_IN_SUSPEND
DHDCFLAGS += -DNUM_SCB_MAX_PROBE=3
DHDCFLAGS += -DWL_SCB_TIMEOUT=10
DHDCFLAGS += -DWIFI_TURNOFF_DELAY=10
DHDCFLAGS += -DWIFI_TURNON_USE_HALINIT
#Static preallocated buffers
DHDCFLAGS += -DDHD_USE_STATIC_MEMDUMP

# TCP TPUT Enhancement
# Expand TCP tx queue to 10 times of default size
DHDCFLAGS += -DTSQ_MULTIPLIER=10
DHDCFLAGS += -DDHD_TCP_LIMIT_OUTPUT
DHDCFLAGS += -DDHD_TCP_PACING_SHIFT

#OCE/MBO
DHDCFLAGS += -DWL_MBO
DHDCFLAGS += -DWL_OCE
#Advertise OCE_STA capability
DHDCFLAGS += -DWL_CAP_OCE_STA

#FAKEAP
DHDCFLAGS += -DWL_BCNRECV

#ADDTS
DHDCFLAGS += -DWL_CAC_TS
#Latency Mode
DHDCFLAGS += -DWL_LATENCY_MODE
DHDCFLAGS += -DSUPPORT_LATENCY_CRITICAL_DATA

# Enable GONEG collision resolution
DHDCFLAGS += -DWL_CFG80211_GON_COLLISION

# HANG send due to private command errors
DHDCFLAGS += -DDHD_SEND_HANG_PRIVCMD_ERRORS

# HANG trigger support on escan syncid mismatch
#DHDCFLAGS += -DDHD_SEND_HANG_ESCAN_SYNCID_MISMATCH

ifneq ($(CONFIG_BCMDHD_PCIE),)
	DHDCFLAGS += -DDHD_USE_STATIC_CTRLBUF
#Use coherent pool
	DHDCFLAGS += -DDHD_USE_COHERENT_MEM_FOR_RING
	DHDCFLAGS += -DDHD_ALLOC_COHERENT_MEM_FROM_ATOMIC_POOL

#disable runtime PM for vim3
ifeq ($(CONFIG_ARCH_MESON),)
ifeq ($(CONFIG_ARCH_ASTRA),)
# Runtime PM feature
	DHDCFLAGS += -DDHD_PCIE_RUNTIMEPM -DMAX_IDLE_COUNT=11
endif
endif

#AXI error logging
DHDCFLAGS += -DDNGL_AXI_ERROR_LOGGING
#DHDCFLAGS += -DDHD_USE_WQ_FOR_DNGL_AXI_ERROR

# 4way handshake disconnection feature
	DHDCFLAGS += -DDHD_4WAYM4_FAIL_DISCONNECT

## OOB
ifeq ($(CONFIG_BCMDHD_OOB),y)
    DHDCFLAGS += -DDHD_USE_HOST_WAKE
    DHDCFLAGS += -DBCMPCIE_OOB_HOST_WAKE
    DHDCFLAGS += -DDHD_USE_PCIE_OOB_THREADED_IRQ
endif
endif

# DMA64 suppports on 64bit Architecture
ifeq ($(CONFIG_64BIT),y)
    DHDCFLAGS := $(filter-out -DBCMDMA32,$(DHDCFLAGS))
    DHDCFLAGS += -DBCMDMA64OSL
endif

DHDCFLAGS += -DVSDB

# TDLS enable
DHDCFLAGS += -DWLTDLS -DWLTDLS_AUTO_ENABLE
# For TDLS tear down inactive time 40 sec
DHDCFLAGS += -DCUSTOM_TDLS_IDLE_MODE_SETTING=10000
# for TDLS RSSI HIGH for establishing TDLS link
DHDCFLAGS += -DCUSTOM_TDLS_RSSI_THRESHOLD_HIGH=-80
# for TDLS RSSI HIGH for tearing down TDLS link
DHDCFLAGS += -DCUSTOM_TDLS_RSSI_THRESHOLD_LOW=-85

ifneq ($(CONFIG_BCMDHD_SDIO),)
	DHDCFLAGS += -DFW_SIGNATURE
	DHDCFLAGS += -DBL_HEAP_START_GAP_SIZE=0x1000 -DBL_HEAP_SIZE=0x10000
endif

# Roaming trigger
DHDCFLAGS += -DCUSTOM_ROAM_TRIGGER_SETTING=-75
DHDCFLAGS += -DCUSTOM_ROAM_DELTA_SETTING=10
# Set PM 2 always regardless suspend/resume
DHDCFLAGS += -DSUPPORT_PM2_ONLY

# ADPS
DHDCFLAGS += -DWLADPS

# For special PNO Event keep wake lock for 10sec
DHDCFLAGS += -DCUSTOM_PNO_EVENT_LOCK_xTIME=10
DHDCFLAGS += -DMIRACAST_AMPDU_SIZE=8
#Vendor Extension
DHDCFLAGS += -DWL_VENDOR_EXT_SUPPORT
#Gscan
DHDCFLAGS += -DGSCAN_SUPPORT
#Background Scan is deprecated
DHDCFLAGS += -DDISABLE_ANDROID_GSCAN
#RSSI Monitor
DHDCFLAGS += -DRSSI_MONITOR_SUPPORT
#RTT
DHDCFLAGS += -DRTT_SUPPORT -DRTT_DEBUG
#NDOffload
DHDCFLAGS += -DNDO_CONFIG_SUPPORT
DHDCFLAGS += -DIPV6_NDO_SUPPORT

#Debugaility
DHDCFLAGS += -DDBG_PKT_MON -DDBG_PKT_MON_INIT_DEFAULT
DHDCFLAGS += -DDNGL_EVENT_SUPPORT -DPARSE_DONGLE_HOST_EVENT

# Early suspend
DHDCFLAGS += -DDHD_USE_EARLYSUSPEND

# For Scan result patch
DHDCFLAGS += -DESCAN_RESULT_PATCH
DHDCFLAGS += -DDUAL_ESCAN_RESULT_BUFFER

# NAN
ifeq ($(CONFIG_WL_NAN),y)
DHDCFLAGS += -DWL_NAN -DWL_NAN_DISC_CACHE -DWL_NANP2P
endif

# TWT HAL
DHDCFLAGS += -DWL_TWT_HAL_IF

# SAR Tx power scenario
DHDCFLAGS += -DWL_SAR_TX_POWER
DHDCFLAGS += -DWL_SAR_TX_POWER_CONFIG

# OWE
DHDCFLAGS += -DWL_OWE
#SAE-FT
DHDCFLAGS += -DWL_SAE_FT

# Hostapd_cfg
#DHDCFLAGS += -DWL_HOSTAPD_CFG

# Silent roam
DHDCFLAGS += -DCONFIG_SILENT_ROAM
# Get ROAM Channel Cache
DHDCFLAGS += -DWL_GET_RCC
# ROAM candidatae RSSI limit
DHDCFLAGS += -DCONFIG_ROAM_RSSI_LIMIT
DHDCFLAGS += -DCUSTOM_ROAMRSSI_2G=-70
DHDCFLAGS += -DCUSTOM_ROAMRSSI_5G=-70

# Thermal mitigation threshold *Mbps
DHDCFLAGS += -DTHERMAL_MITIGATION_THRESHOLD=1

# SAE..if kernel < 4.17 ..back port support required
ifneq ($(CONFIG_CFG80211_SAE_BKPORT),)
DHDCFLAGS += -DWL_SAE
endif
DHDCFLAGS += -DWL_GCMP_SUPPORT

# Disable HE on P2P based on peer support
DHDCFLAGS += -DWL_DISABLE_HE_P2P

# For Static Buffer
ifeq ($(CONFIG_DHD_USE_STATIC_BUF),y)
  DHDCFLAGS += -DENHANCED_STATIC_BUF
  DHDCFLAGS += -DSTATIC_WL_PRIV_STRUCT
endif

# Ioctl timeout 5000ms
DHDCFLAGS += -DIOCTL_RESP_TIMEOUT=5000

# Prevent rx thread monopolize
DHDCFLAGS += -DWAIT_DEQUEUE

# idle count
DHDCFLAGS += -DDHD_USE_IDLECOUNT

# SKB TAILPAD to avoid out of boundary memory access
DHDCFLAGS += -DDHDENABLE_TAILPAD

#SCAN time
DHDCFLAGS += -DCUSTOM_SET_SHORT_DWELL_TIME


# WPS
DHDCFLAGS += -DWL_WPS_SYNC -DBCMCRYPTO_COMPONENT

# TCP SYNC flood attack block
DHDCFLAGS += -DDHDTCPSYNC_FLOOD_BLK -DTCP_SYNC_FLOOD_LIMIT=50

# 11AX CAP
DHDCFLAGS += -DWL_CAP_HE

# Path name to store the FW Debug symbol files
DHDCFLAGS += -DPLATFORM_PATH="\"/vendor/etc/wifi/\""

# Support to update clm/nvram through downloading OTA
DHDCFLAGS += -DSUPPORT_OTA_UPDATE

##########################
# driver type
# m: module type driver
# y: built-in type driver
##########################
DRIVER_TYPE ?= $(CONFIG_BCMDHD)

#########################
# Chip dependent feature
#########################

##### Chip dependent feature
DHDCFLAGS += -DWL11AX -DWL_CAP_HE -DWL11AC
DHDCFLAGS += -DWL_6G_BAND -DWL_NAN_6G -DWL_P2P_6G

# Enable UNII-4
DHDCFLAGS += -DWL_5P9G

# For 4381 and 4382
DHDCFLAGS += -DUSE_WL_TXBF

ifneq ($(CONFIG_BCMDHD_SINGLE_CORE),y)
# Enable set rxf and dpc to different CPUCORE
DHDCFLAGS += -DCUSTOM_SET_CPUCORE
DHDCFLAGS += -DPRIMARY_CPUCORE=2
DHDCFLAGS += -DDPC_CPUCORE=5
DHDCFLAGS += -DRXF_CPUCORE=4
DHDCFLAGS += -DMAX_RETRY_SET_CPUCORE=10
ifneq ($(CONFIG_ARCH_MESON),)
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=4
  DHDCFLAGS += -DCUSTOM_RXF_CPUCORE=4
  # Assign Host Wake Interrupt handler core affinity
  DHDCFLAGS += -DHOST_WAKE_IRQ_CPUCORE=2
else ifneq ($(CONFIG_ARCH_ASTRA),)
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=4
  DHDCFLAGS += -DCUSTOM_RXF_CPUCORE=4
  # Assign Host Wake Interrupt handler core affinity
  DHDCFLAGS += -DHOST_WAKE_IRQ_CPUCORE=2
else
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
endif
endif # CONFIG_BCMDHD_SINGLE_CORE

# New Features
  DHDCFLAGS += -DWL11U
  DHDCFLAGS += -DMFP
ifneq ($(CONFIG_BCMDHD_PCIE),)
# debug info
  DHDCFLAGS += -DDHD_WAKE_STATUS -DDHD_WAKE_RX_STATUS -DDHD_WAKE_EVENT_STATUS -DCUSTOM_WAKE_REASON_STATS
endif
ifneq ($(CONFIG_BCMDHD_SDIO),)
  DHDCFLAGS += -DBDC -DDHD_BCMEVENTS -DMMC_SDIO_ABORT
ifeq ($(CONFIG_BCMDHD_OOB),y)
  DHDCFLAGS += -DOOB_INTR_ONLY -DHW_OOB
else
  DHDCFLAGS += -DSDIO_ISR_THREAD
endif
  DHDCFLAGS += -DTSQ_MULTIPLIER=10
  DHDCFLAGS += -DDHD_TCP_PACING_SHIFT
  DHDCFLAGS += -DBCMSDIO -DBCMLXSDMMC -DUSE_SDIOFIFO_IOVAR
  DHDCFLAGS += -DPROP_TXSTATUS
ifeq ($(CONFIG_BCMDHD_PROPTX_ALWAYS_ON),)
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
endif
  DHDCFLAGS += -DCUSTOM_AMPDU_MPDU=32
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=32
# SDIO wlfc tput enhancement
  DHDCFLAGS += -DBULK_DEQUEUE
  DHDCFLAGS += -DLIMIT_BORROW
# tput enhancement
  DHDCFLAGS += -DCUSTOM_GLOM_SETTING=8 -DCUSTOM_RXCHAIN=1
ifneq ($(CONFIG_ARCH_MESON),)
  DHDCFLAGS += -DCUSTOM_SDIO_F2_BLKSIZE=256
  DHDCFLAGS += -DCUSTOM_SDIO_CREDTRIG=32
  DHDCFLAGS += -DMAX_HDR_READ=256
  DHDCFLAGS += -DDHD_FIRSTREAD=256
  DHDCFLAGS +=  -DDHD_RXBOUND=512
  DHDCFLAGS += -DDISABLE_FLOW_CONTROL
else
  DHDCFLAGS += -DMAX_HDR_READ=128
  DHDCFLAGS += -DDHD_FIRSTREAD=128
endif
  DHDCFLAGS += -DUSE_DYNAMIC_F2_BLKSIZE -DDYNAMIC_F2_BLKSIZE_FOR_NONLEGACY=128
  DHDCFLAGS += -DBCMSDIOH_TXGLOM -DCUSTOM_TXGLOM=1 -DBCMSDIOH_TXGLOM_HIGHSPEED
  DHDCFLAGS += -DDHDTCPACK_SUPPRESS
  DHDCFLAGS += -DRXFRAME_THREAD
  DHDCFLAGS += -DREPEAT_READFRAME
  DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=40

  DHDCFLAGS += -DWLFC_STATE_PREALLOC
  DHDCFLAGS += -DDHD_LINUX_STD_FW_API
endif

# Expand TCP tx queue to 10 times of default size
  DHDCFLAGS += -DTSQ_MULTIPLIER=10

ifneq ($(CONFIG_BCMDHD_PCIE),)
  DHDCFLAGS += -DPCIE_FULL_DONGLE -DBCMPCIE -DCUSTOM_DPC_PRIO_SETTING=-1
  DHDCFLAGS += -DIDLE_TX_FLOW_MGMT
  DHDCFLAGS += -DDHD_PCIE_REG_ACCESS
  DHDCFLAGS += -DDHD_BUS_MEM_ACCESS
# tput enhancement
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
# HEAP ASLR
  DHDCFLAGS += -DBCM_ASLR_HEAP
  DHDCFLAGS += -DMAX_CNTL_TX_TIMEOUT=1
ifneq ($(CONFIG_ARCH_MSM),)
  DHDCFLAGS += -DMSM_PCIE_LINKDOWN_RECOVERY
endif
ifeq ($(CONFIG_DHD_USE_STATIC_BUF),y)
  DHDCFLAGS += -DDHD_USE_STATIC_IOCTLBUF
endif

# Enable health check event handling
  DHDCFLAGS += -DDNGL_EVENT_SUPPORT
  DHDCFLAGS += -DHCHK_COMMON_SW_EVENT
endif

ifeq ($(CONFIG_BCMDHD_USB),y)
  DHDCFLAGS += -DUSBOS_TX_THREAD -DBCMDBUS -DBCMTRXV2 -DDBUS_USB_LOOPBACK -DBDC -DBCMDHDUSB
  DHDCFLAGS += -DBCM_REQUEST_FW
  DHDCFLAGS += -DPROP_TXSTATUS -DPROP_TXSTATUS_VSDB -DLIMIT_BORROW
  DHDCFLAGS += -DBULK_DEQUEUE
endif

ifneq ($(CONFIG_DHD_OF_SUPPORT),)
  DHDCFLAGS += -DDHD_OF_SUPPORT
endif

# Print 802.1X packets
  DHDCFLAGS += -DDHD_8021X_DUMP
# prioritize 802.1x packet
  DHDCFLAGS += -DEAPOL_PKT_PRIO

ifneq ($(filter y, $(CONFIG_BCM4354) $(CONFIG_BCM4356)),)
  DHDCFLAGS += -DUSE_WL_TXBF
  DHDCFLAGS += -DUSE_WL_FRAMEBURST
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
  DHDCFLAGS += -DCUSTOM_PSPRETEND_THR=30
  DHDCFLAGS += -DMAX_AP_CLIENT_CNT=10
  DHDCFLAGS += -DMAX_GO_CLIENT_CNT=5
# New Features
  DHDCFLAGS += -DWL11U
  DHDCFLAGS += -DMFP
  DHDCFLAGS += -DSAR_SUPPORT
# debug info
  DHDCFLAGS += -DDHD_WAKE_STATUS
ifneq ($(CONFIG_BCMDHD_SDIO),)
  DHDCFLAGS += -DBDC -DOOB_INTR_ONLY -DHW_OOB -DDHD_BCMEVENTS -DMMC_SDIO_ABORT
  DHDCFLAGS += -DBCMSDIO -DBCMLXSDMMC -DUSE_SDIOFIFO_IOVAR
  DHDCFLAGS += -DPROP_TXSTATUS
  DHDCFLAGS += -DCUSTOM_AMPDU_MPDU=16
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
# tput enhancement
  DHDCFLAGS += -DCUSTOM_GLOM_SETTING=8 -DCUSTOM_RXCHAIN=1
  DHDCFLAGS += -DUSE_DYNAMIC_F2_BLKSIZE -DDYNAMIC_F2_BLKSIZE_FOR_NONLEGACY=128
  DHDCFLAGS += -DBCMSDIOH_TXGLOM -DCUSTOM_TXGLOM=1 -DBCMSDIOH_TXGLOM_HIGHSPEED
  DHDCFLAGS += -DDHDTCPACK_SUPPRESS
  DHDCFLAGS += -DRXFRAME_THREAD
  DHDCFLAGS += -DREPEAT_READFRAME
  DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=40
  DHDCFLAGS += -DMAX_HDR_READ=128
  DHDCFLAGS += -DDHD_FIRSTREAD=128
  DHDCFLAGS += -DWLFC_STATE_PREALLOC
endif

ifneq ($(CONFIG_BCMDHD_PCIE),)
  DHDCFLAGS += -DPCIE_FULL_DONGLE -DBCMPCIE -DCUSTOM_DPC_PRIO_SETTING=-1
# tput enhancement
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
  DHDCFLAGS += -DMAX_CNTL_TX_TIMEOUT=1
  DHDCFLAGS += -DSUPPORT_LINKDOWN_RECOVERY
# Enable health check event handling
  DHDCFLAGS += -DDNGL_EVENT_SUPPORT
  DHDCFLAGS += -DHCHK_COMMON_SW_EVENT
endif

ifeq ($(CONFIG_DHD_USE_STATIC_BUF),y)
  DHDCFLAGS += -DDHD_USE_STATIC_IOCTLBUF
endif
# Print 802.1X packets
  DHDCFLAGS += -DDHD_8021X_DUMP
# Print DHCP packets
  DHDCFLAGS += -DDHD_DHCP_DUMP
endif

# Enable usable_channel support for HAL layer
  DHDCFLAGS += -DWL_USABLE_CHAN

ifneq ($(CONFIG_BCM4339),)
  DHDCFLAGS += -DBCM4339_CHIP -DHW_OOB

  # tput enhancement
  DHDCFLAGS += -DCUSTOM_GLOM_SETTING=8 -DCUSTOM_RXCHAIN=1
  DHDCFLAGS += -DUSE_DYNAMIC_F2_BLKSIZE -DDYNAMIC_F2_BLKSIZE_FOR_NONLEGACY=128
  DHDCFLAGS += -DBCMSDIOH_TXGLOM -DCUSTOM_TXGLOM=1 -DBCMSDIOH_TXGLOM_HIGHSPEED
  DHDCFLAGS += -DDHDTCPACK_SUPPRESS
  DHDCFLAGS += -DUSE_WL_TXBF
  DHDCFLAGS += -DUSE_WL_FRAMEBURST
  DHDCFLAGS += -DRXFRAME_THREAD
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
  DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=32

  # New Features
  DHDCFLAGS += -DWL11U
  DHDCFLAGS += -DCUSTOM_PSPRETEND_THR=30

endif

# CSI support
  DHDCFLAGS += -DCSI_SUPPORT

#EXTRA_LDFLAGS += --strip-debug

DHDCFLAGS += -DENABLE_INSMOD_NO_FW_LOAD

ifeq ($(DRIVER_TYPE),y)
  DHDCFLAGS += -DWAKEUP_KSOFTIRQD_POST_NAPI_SCHEDULE
  DHDCFLAGS += -DUSE_LATE_INITCALL_SYNC
  # Use kernel strlcpy() implementation instead of one, defined in bcmstdlib_s.c
  DHDCFLAGS += -DBCM_USE_PLATFORM_STRLCPY
endif

ifeq ($(DRIVER_TYPE),m)
  DHDCFLAGS += -DBCMDHD_MODULAR
endif

DHDCFLAGS += -DDHD_CAP_CUSTOMER="\"hw2 \""
ifneq ($(CONFIG_SOC_GOOGLE),)
# The flag will be enabled only on customer platform
	DHDCFLAGS += -DCUSTOMER_HW2_DEBUG
	DHDCFLAGS += -DDHD_CUSTOMER_PCIE_DMA_MASK=36
	DHDCFLAGS += -DDHD_CAP_PLATFORM="\"exynos \""
	DHDCFLAGS += -DCONFIG_ARCH_EXYNOS
	DHDCFLAGS += -DDHD_MODULE_INIT_FORCE_SUCCESS
	DHDCFLAGS += -DBOARD_MODULAR_INIT
# Dongle init fail
	DHDCFLAGS += -DPOWERUP_MAX_RETRY=0
# Add chip specific suffix to the output in case of customer release
ifneq ($(filter y, $(CONFIG_BCM43752)),)
	BCM_WLAN_CHIP_SUFFIX = 43752
	DHDCFLAGS += -DBCMPCI_DEV_ID=0x449d
	DHDCFLAGS += -DBCMPCI_NOOTP_DEV_ID=0x4362
endif
ifneq ($(filter y, $(CONFIG_BCM4389)),)
	BCM_WLAN_CHIP_SUFFIX = 4389
	DHDCFLAGS += -DBCMPCI_DEV_ID=0x4441
	DHDCFLAGS += -DBCMPCI_NOOTP_DEV_ID=0x4389
endif
ifneq ($(CONFIG_BCMDHD_PCIE),)
	DHDCFLAGS += -DBCMPCIE_DISABLE_ASYNC_SUSPEND
	DHDCFLAGS += -DDHD_LINUX_STD_FW_API
	DHDCFLAGS += -DDHD_FW_NAME="\"fw_bcmdhd.bin\""
	DHDCFLAGS += -DDHD_NVRAM_NAME="\"bcmdhd.cal\""
	DHDCFLAGS += -DDHD_CLM_NAME="\"bcmdhd_clm.blob\""
	DHDCFLAGS += -DDHD_MAP_NAME="\"fw_bcmdhd.map\""
	DHDCFLAGS += -DFILTER_IE_NAME="\"filter_ie\""
endif
else ifneq ($(CONFIG_ARCH_TEGRA),)
	DHDCFLAGS += -DBOARD_MODULAR_INIT
	DHDCFLAGS += -Wno-missing-prototypes -Wno-unused-but-set-variable
ifneq ($(CONFIG_BCMDHD_PCIE),)
	DHDCFLAGS += -DDHD_LINUX_STD_FW_API
	DHDCFLAGS += -DDHD_FW_NAME="\"syna4384a0_fw.bin\""
	DHDCFLAGS += -DDHD_NVRAM_NAME="\"syna4384a0_nvram.txt\""
	DHDCFLAGS += -DDHD_CLM_NAME="\"syna4384a0_clm.blob\""
	DHDCFLAGS += -DDHD_MAP_NAME="\"syna4384a0.map\""
	DHDCFLAGS += -DDHD_MSI_SUPPORT
	DHDCFLAGS += -DSKIP_REGON_GPIO
endif
ifneq (,$(findstring ack_6.1,$(NV_BUILD_KERNEL_OPTIONS)))
	DHDCFLAGS += -DWL_AP_PORT_AUTH_BKPORT
	DHDCFLAGS += -DWL_CH_SWITCH_BKPORT
endif
else ifneq ($(CONFIG_ARCH_HISI),)
	DHDCFLAGS += -DBOARD_HIKEY -DBOARD_HIKEY_HW2
	DHDCFLAGS += -DBOARD_MODULAR_INIT
ifneq ($(CONFIG_BCMDHD_PCIE),)
	DHDCFLAGS += -DDHD_LINUX_STD_FW_API
	DHDCFLAGS += -DDHD_FW_NAME="\"fw_bcmdhd.bin\""
	DHDCFLAGS += -DDHD_NVRAM_NAME="\"bcmdhd.cal\""
	DHDCFLAGS += -DDHD_CLM_NAME="\"bcmdhd_clm.blob\""
	DHDCFLAGS += -DDHD_MAP_NAME="\"fw_bcmdhd.map\""
	DHDCFLAGS += -DFILTER_IE_NAME="\"filter_ie\""
endif
	DHDCFLAGS += -DDHD_CAP_PLATFORM="\"hikey \""
# Dongle init fail
	DHDCFLAGS += -DPOWERUP_MAX_RETRY=3
else ifneq ($(CONFIG_ARCH_DUMMY),)
	DHDCFLAGS += -DBOARD_MODULAR_INIT
ifneq ($(CONFIG_BCMDHD_PCIE),)
	DHDCFLAGS += -DDHD_LINUX_STD_FW_API
	DHDCFLAGS += -DDHD_FW_NAME="\"fw_bcmdhd.bin\""
	DHDCFLAGS += -DDHD_NVRAM_NAME="\"bcmdhd.cal\""
	DHDCFLAGS += -DDHD_CLM_NAME="\"bcmdhd_clm.blob\""
	DHDCFLAGS += -DDHD_MAP_NAME="\"fw_bcmdhd.map\""
endif
	DHDCFLAGS += -DDHD_CAP_PLATFORM="\"dummy \""
else ifneq ($(CONFIG_ARCH_ASTRA),)
	DHDCFLAGS += -DBOARD_MODULAR_INIT
	DHDCFLAGS += -DDHD_LINUX_STD_FW_API
	DHDCFLAGS += -DDHD_FW_NAME="\"fw_bcmdhd.bin\""
	DHDCFLAGS += -DDHD_NVRAM_NAME="\"bcmdhd.cal\""
	DHDCFLAGS += -DDHD_CLM_NAME="\"bcmdhd_clm.blob\""
	DHDCFLAGS += -DDHD_MAP_NAME="\"fw_bcmdhd.map\""
else ifneq ($(CONFIG_ARCH_MESON),)
	DHDCFLAGS += -DBOARD_MODULAR_INIT
ifneq ($(CONFIG_BCMDHD_SDIO),)
	DHDCFLAGS += -DEMPTY_CARD_DETECT -DRMMOD_CARD_DETECT
ifeq ($(CONFIG_BCMDHD_OOB),)
	DHDCFLAGS += -DDHD_IGNORE_SD_RESET
endif
endif
	DHDCFLAGS := $(filter-out -DWBRC, $(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DDBG_PKT_MON ,$(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DDBG_PKT_MON_INIT_DEFAULT ,$(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DDHD_LINUX_STD_FW_API ,$(DHDCFLAGS))
	DHDCFLAGS += -DSKIP_FORCE_INIT_DUMP
	DHDCFLAGS += -DDHD_SUPPORT_VFS_CALL
	DHDCFLAGS += -DDHD_FW_NAME="\"fw_bcmdhd.bin\""
	DHDCFLAGS += -DDHD_NVRAM_NAME="\"bcmdhd.cal\""
	DHDCFLAGS += -DDHD_CLM_NAME="\"bcmdhd_clm.blob\""
	DHDCFLAGS += -DDHD_MAP_NAME="\"fw_bcmdhd.map\""
	DHDCFLAGS += -DDHD_CAP_PLATFORM="\"dummy \""
	DHDCFLAGS += -DFILTER_IE_NAME="\"filter_ie\""
else
	# Default target
	DHDCFLAGS += -DBOARD_MODULAR_INIT
	DHDCFLAGS += -DDHD_CAP_PLATFORM="\"default \""
	# Use firmware API by default
	DHDCFLAGS += -DDHD_LINUX_STD_FW_API
ifneq ($(CONFIG_BCMDHD_PCIE),)
ifneq ($(CONFIG_PCI_MSI),)
	DHDCFLAGS += -DDHD_MSI_SUPPORT
endif # MSI
endif # PCIE
endif # Arch

ifneq ($(CONFIG_GOOGLE_CUSTOM),)
        DHDCFLAGS := $(filter-out -DDHD_SUPPORT_VFS_CALL ,$(DHDCFLAGS))
        DHDCFLAGS += -DDHD_LINUX_STD_FW_API
endif

DHDCFLAGS += -DCONFIG_BCMDHD_FW_PATH=$(CONFIG_BCMDHD_FW_PATH)
DHDCFLAGS += -DCONFIG_BCMDHD_NVRAM_PATH=$(CONFIG_BCMDHD_NVRAM_PATH)
DHDCFLAGS += -DCONFIG_BCMDHD_CLM_PATH=$(CONFIG_BCMDHD_CLM_PATH)
DHDCFLAGS += -DCONFIG_BCMDHD_MAP_PATH=$(CONFIG_BCMDHD_MAP_PATH)

# Configuration of default GPIOs when device tree is not used
ifneq ($(CONFIG_WLAN_REG_ON_GPIO),)
DHDCFLAGS += -DWLAN_REG_ON_GPIO_DEFAULT=$(CONFIG_WLAN_REG_ON_GPIO)
endif
ifneq ($(CONFIG_WLAN_HOST_WAKE_GPIO),)
DHDCFLAGS += -DWLAN_HOST_WAKE_GPIO_DEFAULT=$(CONFIG_WLAN_HOST_WAKE_GPIO)
endif


ifneq ($(CONFIG_ARCH_ASTRA),)
	DHDCFLAGS := $(filter-out -DWBRC, $(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DDBG_PKT_MON ,$(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DDBG_PKT_MON_INIT_DEFAULT ,$(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DDHD_USE_COHERENT_MEM_FOR_RING ,$(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DDHD_ALLOC_COHERENT_MEM_FROM_ATOMIC_POOL ,$(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DSYNA_SAR_CUSTOMER_PARAMETER ,$(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DDHD_EVENT_LOG_FILTER ,$(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DCUSTOM_EVENT_PM_WAKE=20 ,$(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DSAR_SUPPORT ,$(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DWL_SAR_TX_POWER ,$(DHDCFLAGS))
	DHDCFLAGS := $(filter-out -DWL_SAR_TX_POWER_CONFIG ,$(DHDCFLAGS))

	DHDCFLAGS += -DCONFIG_ARCH_ASTRA -fno-stack-protector
	DHDCFLAGS += -DEMPTY_CARD_DETECT -DRMMOD_CARD_DETECT
endif

DHDOFILES := dhd_pno.o dhd_common.o dhd_ip.o dhd_custom_gpio.o \
    dhd_linux.o dhd_linux_sched.o dhd_cfg80211.o dhd_linux_wq.o aiutils.o \
    bcmevent.o bcmutils.o bcmwifi_channels.o hndpmu_dhd.o linux_osl.o linux_pkt.o \
    siutils.o siutils_host.o wl_android.o wl_cfg80211.o wl_cfgscan.o wl_cfgp2p.o wl_cfgvif.o \
    wl_cfg_btcoex.o wldev_common.o wl_linux_mon.o dhd_linux_platdev.o \
    dhd_pno.o dhd_rtt.o dhd_linux_pktdump.o wl_cfg_btcoex.o hnd_pktq.o \
    hnd_pktpool.o wl_cfgvendor.o bcmxtlv.o bcm_app_utils.o dhd_debug.o frag.o \
    dhd_debug_linux.o wl_cfgnan.o dhd_mschdbg.o bcmbloom.o dhd_dbg_ring.o bcmstdlib_s.o \
    dhd_linux_exportfs.o dhd_linux_tx.o dhd_linux_rx.o \
    dhd_log_dump.o fwpkg_utils.o bcmcapext.o linuxerrmap.o wl_cfgtwt.o bcmwifi_channels_shared.o
    #dhd_csi.o

# customer configuration file
DHDCFLAGS += -DREAD_CONFIG_FROM_FILE
DHDOFILES += dhd_config.o

# This file will be here only for internal builds and sets flags which may
# affect subsequent behavior. See extended comment within it for details.
_dhd_lx_mk_dir := $(dir $(lastword $(MAKEFILE_LIST)))
-include $(_dhd_lx_mk_dir)bcminternal-android.mk

ifeq ($(CONFIG_ARCH_ASTRA),)
EXTRA_CFLAGS += $(BCMINTERNAL_DFLAGS)
DHDOFILES += $(BCMINTERNAL_DHDOFILES)
endif

DHDCFLAGS += -DDHD_LOGGER
DHDOFILES += dhd_linux_logger.o dhd_logger.o

# extra Source files
DHDOFILES += wl_roam.o
ifneq ($(filter -DWBRC, $(DHDCFLAGS)),)
	DHDOFILES += wb_regon_coordinator.o
endif

ifneq ($(filter -DDHD_PKT_LOGGING,$(DHDCFLAGS)),)
	DHDOFILES += dhd_pktlog.o
endif

ifneq ($(filter -DDHD_STATUS_LOGGING,$(DHDCFLAGS)),)
	DHDOFILES += dhd_statlog.o
endif

ifneq ($(CONFIG_SOC_GOOGLE),)
	DHDOFILES += dhd_custom_google.o
else ifneq ($(CONFIG_ARCH_TEGRA),)
	DHDOFILES += dhd_custom_tegra.o
else ifneq ($(CONFIG_ARCH_HISI),)
	DHDOFILES += dhd_custom_hikey.o
else ifneq ($(CONFIG_ARCH_MESON),)
	DHDOFILES += dhd_custom_meson.o
else ifneq ($(CONFIG_ARCH_DUMMY),)
	DHDOFILES += dhd_custom_dummy.o
else ifneq ($(CONFIG_ARCH_ASTRA),)
	DHDOFILES += dhd_custom_astra.o
else
	DHDOFILES += dhd_custom_default.o
endif

ifneq ($(CONFIG_BROADCOM_WIFI_RESERVED_MEM),)
  DHDOFILES += dhd_custom_memprealloc.o
endif

ifneq ($(CONFIG_BCMDHD_SDIO),)
  DHDOFILES += bcmsdh.o bcmsdh_linux.o bcmsdh_sdmmc.o bcmsdh_sdmmc_linux.o
  DHDOFILES += dhd_cdc.o dhd_wlfc.o dhd_sdio.o
endif

ifneq ($(CONFIG_BCMDHD_PCIE),)
  DHDOFILES += dhd_pcie.o dhd_pcie_linux.o dhd_msgbuf.o dhd_flowring.o
  DHDOFILES += dhd_pcie_dumps.o dhd_pcie_sssr_dump.o pcie_core_host.o

  DHDCFLAGS += -DDHD_TX_PROFILE
  DHDCFLAGS += -DBCMCRYPTO_COMPONENT
  DHDCFLAGS += -DHOST_SFH_LLC

# NCI_BUS support
  DHDCFLAGS += -DSOCI_NCI_BUS
  DHDCFLAGS += -DBCM_ETB_CFG_TRANSITIONAL_FLAG
  DHDOFILES += nciutils.o nciutils_host.o hal_nci_cmn.o
endif # CONFIG_BCMDHD_PCIE

ifneq ($(CONFIG_BCMDHD_USB),)
  DHDOFILES += dbus.o dbus_usb.o dbus_usb_linux.o
  DHDOFILES += dhd_cdc.o dhd_wlfc.o
endif

ifneq ($(filter -DDHD_LB, $(DHDCFLAGS)),)
DHDOFILES += dhd_linux_lb.o
endif

ifneq ($(filter -DDHD_EVENT_LOG_FILTER, $(DHDCFLAGS)),)
DHDOFILES += dhd_event_log_filter.o
endif

EXTRA_CFLAGS += $(DHDCFLAGS) -DDHD_DEBUG
EXTRA_CFLAGS += -DDHD_COMPILED=\"$(BCMDHD_ROOT)\"
EXTRA_CFLAGS += -I$(BCMDHD_ROOT)/include/ -I$(BCMDHD_ROOT)/
KBUILD_CFLAGS += -I$(LINUXDIR)/include -I$(CURDIR) -Wno-date-time

DHD_MODULE_NAME=dhd
ifneq ($(CONFIG_ANDROID),)
DHD_MODULE_NAME=synadhd
endif
$(DHD_MODULE_NAME)$(BCM_WLAN_CHIP_SUFFIX)-objs := $(DHDOFILES)
obj-$(DRIVER_TYPE)   += $(DHD_MODULE_NAME)$(BCM_WLAN_CHIP_SUFFIX).o

ccflags-y := $(KBUILD_CFLAGS)
ccflags-y += $(EXTRA_CFLAGS)

# For in-tree model, define make rules here (KERNEL_SRC will be NULL)
ifeq ($(KERNEL_SRC),)
all:
	@echo "$(MAKE) --no-print-directory -C $(KDIR) SUBDIRS=$(CURDIR) modules $(KBUILD_OPTIONS)"
	@$(MAKE) --no-print-directory -C $(KDIR) SUBDIRS=$(CURDIR) modules $(KBUILD_OPTIONS)

modules_install:
	@$(MAKE) --no-print-directory -C $(KDIR) \
		SUBDIRS=$(CURDIR) modules_install

clean:
	rm -rf *.o *.ko *.mod.c *~ .*.cmd *.o.cmd .*.o.cmd \
	Module.symvers modules.order .tmp_versions modules.builtin
endif
