# bcmdhd
######################
# default feature list
######################

DHDCFLAGS += -Wall -Wstrict-prototypes -Dlinux -DLINUX -DBCMDRIVER            \
        -DBCMDONGLEHOST -DUNRELEASEDCHIP -DBCMDMA32 -DBCMFILEIMAGE            \
        -DDHDTHREAD -DSHOW_EVENTS -DBCMDBG -DWLP2P                            \
        -DWIFI_ACT_FRAME -DARP_OFFLOAD_SUPPORT                                \
        -DKEEP_ALIVE -DCSCAN -DPKT_FILTER_SUPPORT                             \
        -DEMBEDDED_PLATFORM -DPNO_SUPPORT -DREAD_CONFIG_FROM_FILE             \
	-DSEC_ENHANCEMENT

######################################
# bus(SDIO/PCIe) specific feature list
######################################

ifeq ($(CONFIG_BCMDHD_SDIO),y)
  DHDCFLAGS += -DBDC -DDHD_BCMEVENTS -DMMC_SDIO_ABORT
  DHDCFLAGS += -DBCMSDIO -DBCMLXSDMMC
  DHDCFLAGS += -DCUSTOM_DPC_PRIO_SETTING=98
  DHDCFLAGS += -DDHD_USE_IDLECOUNT
  # SKB TAILPAD to avoid out of boundary memory access
  DHDCFLAGS += -DDHDENABLE_TAILPAD
else ifeq ($(CONFIG_BCMDHD_PCIE),y)
  DHDCFLAGS += -DPCIE_FULL_DONGLE -DBCMPCIE
  # DPC priority
  DHDCFLAGS += -DCUSTOM_DPC_PRIO_SETTING=-1
  DHDCFLAGS += -DDHD_USE_COHERENT_MEM_FOR_RING
  # Alloc Coherent memory from DMA coherent pool
  DHDCFLAGS += -DDHD_ALLOC_COHERENT_MEM_FROM_ATOMIC_POOL
  # Disable watchdog thread
  DHDCFLAGS += -DCUSTOM_DHD_WATCHDOG_MS=500
  DHDCFLAGS += -DNUM_SCB_MAX_PROBE=3
  # Enable wakelock for legacy scan
  DHDCFLAGS += -DDHD_USE_SCAN_WAKELOCK
  # Enable wakelock debug function
  DHDCFLAGS += -DDHD_TRACE_WAKE_LOCK
  # Extended HANG event with reason codes
  #DHDCFLAGS += -DDHD_USE_EXTENDED_HANG_REASON
  # Enable Link down recovery
ifeq ($(CONFIG_ARCH_MSM),y)
  DHDCFLAGS += -DSUPPORT_LINKDOWN_RECOVERY
  DHDCFLAGS += -DBCMPCIE_DISABLE_ASYNC_SUSPEND
endif
  # Enable OTP write feature
ifeq ($(CONFIG_BCMDHD_COB),y)
  DHDCFLAGS += -DOTP_WRITE_ON
endif
  # Enable Firmware Coredump
  #DHDCFLAGS += -DDHD_FW_COREDUMP

  # Enable OOB Host wake up
  DHDCFLAGS += -DBCMPCIE_OOB_HOST_WAKE

  # Enable Load Balancing support by default.
  # DHD_LB_RXP - Perform RX Packet processing in parallel
  # DHD_LB_STATS - To display the Load Blancing statistics
  DHDCFLAGS += -DDHD_LB -DDHD_LB_RXP -DDHD_LB_STATS
  DHDCFLAGS += -DDHD_LB_PRIMARY_CPUS=0xc
  DHDCFLAGS += -DDHD_LB_SECONDARY_CPUS=0x03

endif

######################################
# common feature for customer platform
######################################


ifeq ($(CONFIG_BCMDHD_HOSTWAKEUP_USE_GPIO),y)
ifeq ($(CONFIG_BCMDHD_HW_OOB),y)
DHDCFLAGS += -DHW_OOB
endif
DHDCFLAGS += -DOOB_INTR_ONLY
DHDCFLAGS += -DCUSTOM_OOB_GPIO_NUM=$(CONFIG_BCMDHD_GPIO_WL_HOSTWAKEUP)
else
DHDCFLAGS += -DSDIO_ISR_THREAD
endif
# DMA64 suppports on 64bit Architecture
ifeq ($(CONFIG_64BIT),y)
DHDCFLAGS := $(filter-out -DBCMDMA32,$(DHDCFLAGS))
DHDCFLAGS += -DBCMDMA64OSL
endif

# Wi-Fi Turning on Time
DHDCFLAGS += -DWIFI_TURNON_DELAY=0

DHDCFLAGS += -DCUSTOMER_HW4
#For LGE changes
DHDCFLAGS += -DCUSTOMER_HW10
DHDCFLAGS += -DWL_CFG80211
DHDCFLAGS += -DCUSTOM_COUNTRY_CODE

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

# Print 8021X
#DHDCFLAGS += -DDHD_8021X_DUMP

# Print DHCP
#DHDCFLAGS += -DDHD_DHCP_DUMP

# VSDB
DHDCFLAGS += -DVSDB
DHDCFLAGS += -DPROP_TXSTATUS

# Wi-Fi Direct
DHDCFLAGS += -DWL_CFG80211_VSDB_PRIORITIZE_SCAN_REQUEST
# For p2p connection issue
DHDCFLAGS += -DWL_SCB_TIMEOUT=10
# For TDLS tear down inactive time 10 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

# Disable TDLS when P2P connection used
DHDCFLAGS += -DDISABLE_TDLS_IN_P2P

# Roaming
#DHDCFLAGS += -DROAM_AP_ENV_DETECTION
DHDCFLAGS += -DROAM_ENABLE -DROAM_API
#DHDCFLAGS += -DENABLE_FW_ROAM_SUSPEND

# CCX
ifeq ($(CONFIG_BRCM_CCX),y)
  DHDCFLAGS += -DBCMCCX
endif

# For WAPI
ifeq ($(CONFIG_BRCM_WAPI),y)
DHDCFLAGS += -DBCMWAPI_WPI -DBCMWAPI_WAI
endif

DHDCFLAGS += -DDHD_DONOT_FORWARD_BCMEVENT_AS_NETWORK_PKT

# SoftAP
DHDCFLAGS += -DWL_SUPPORT_AUTO_CHANNEL -DSUPPORT_HIDDEN_AP
DHDCFLAGS += -DSUPPORT_SOFTAP_SINGL_DISASSOC
DHDCFLAGS += -DDISABLE_11H_SOFTAP

# HW4 specific features
DHDCFLAGS += -DSUPPORT_PM2_ONLY
#DHDCFLAGS += -DSUPPORT_DEEP_SLEEP
DHDCFLAGS += -DSUPPORT_AMPDU_MPDU_CMD
DHDCFLAGS += -DPASS_IPV4_SUSPEND

# For special PNO Event keep wake lock for 10sec
DHDCFLAGS += -DCUSTOM_PNO_EVENT_LOCK_xTIME=10

# For Passing all multicast packets to host when not in suspend mode.
# undefine for to apply Runtime multicast pkt filter
# DHDCFLAGS += -DPASS_ALL_MCAST_PKTS
DHDCFLAGS += -DMANUAL_ALL_MCAST_PKTS

# Early suspend
#DHDCFLAGS += -DDHD_USE_EARLYSUSPEND

# WiFi turn off delay
#DHDCFLAGS += -DWIFI_TURNOFF_DELAY=100
DHDCFLAGS += -DWIFI_TURNON_DELAY=0

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

# For Static Buffer
ifeq ($(CONFIG_BROADCOM_WIFI_RESERVED_MEM),y)
  DHDCFLAGS += -DCONFIG_DHD_USE_STATIC_BUF
  DHDCFLAGS += -DENHANCED_STATIC_BUF
  DHDCFLAGS += -DSTATIC_WL_PRIV_STRUCT
ifeq ($(CONFIG_BCMDHD_PCIE),y)
ifeq ($(CONFIG_BCMDHD_PREALLOC_PKTIDMAP),y)
  DHDCFLAGS += -DDHD_USE_STATIC_CTRLBUF
  DHDCFLAGS += -DDHD_USE_STATIC_PKTIDMAP
endif #CONFIG_BCMDHD_PREALLOC_PKTIDMAP
ifeq ($(CONFIG_BCMDHD_PREALLOC_MEMDUMP),y)
  DHDCFLAGS += -DDHD_USE_STATIC_MEMDUMP
endif #CONFIG_BCMDHD_PREALLOC_MEMDUMP
endif #CONFIG_BCMDHD_PCIE
endif #CONFIG_BROADCOM_WIFI_RESERVED_MEM

# For CCX
ifeq ($(CONFIG_BRCM_CCX),y)
  DHDCFLAGS += -DBCMCCX
endif

# allow supplicant to make probe response even in P2P nego state for first one time.
DHDCFLAGS += -DP2P_IE_MISSING_FIX

# DTIM listen interval in suspend mode(0 means follow AP's DTIM period)
ifeq ($(CONFIG_BCMDHD_FOLLOW_AP_DTIM_PERIOD),y)
DHDCFLAGS += -DCUSTOM_SUSPEND_BCN_LI_DTIM=0
else
DHDCFLAGS += -DCUSTOM_SUSPEND_BCN_LI_DTIM=3
endif
# Ioctl timeout 5000ms
DHDCFLAGS += -DIOCTL_RESP_TIMEOUT=5000

# Priority mismatch fix with kernel stack
DHDCFLAGS += -DPKTPRIO_OVERRIDE

# for only AP Certification
#DHDCFLAGS += -DSUPPORT_SOFTAP_WPAWPA2_MIXED

# B/G/BGN mode support in HOSTAPD
ifeq ($(CONFIG_BCMDHD_HOSTAPD_BGN_MODE),y)
DHDCFLAGS += -DSUPPORT_HOSTAPD_BGN_MODE
endif

# Used short dwell time during initial scan
DHDCFLAGS += -DUSE_INITIAL_SHORT_DWELL_TIME
# Used short passive scan time during initial scan
DHDCFLAGS += -DCHANGE_PASSIVE_SCAN_TIME

ifeq ($(CONFIG_HAS_WAKELOCK),)
DHDCFLAGS += -DCONFIG_HAS_WAKELOCK
endif

ifeq ($(CONFIG_BCMDHD_USE_SCHED_SCAN),y)
DHDCFLAGS += -DWL_SCHED_SCAN
endif

# softAP parametet set
DHDCFLAGS += -DSOFTAP_TPUT_ENHANCE
#DHDCFLAGS += -DDHD_TCP_WINSIZE_ADJUST
DHDCFLAGS += -DCUSTOM_DSCP_TO_PRIO_MAPPING

# WFDS
DHDCFLAGS += -DWLWFDS

# Prevent delete p2p discovery interface when suspended.
DHDCFLAGS += -DKEEP_WIFION_OPTION

# Prevent send hang event even though p2p discovery interface is not removed.
DHDCFLAGS += -DEXPLICIT_DISCIF_CLEANUP

# BT Coex Off Timeout when bt sco and dhcp co-exists
DHDCFLAGS += -DBT_DHCP_OPPR_WIN_TIME=10000

# Debugability feature enable
ifeq ($(CONFIG_DHD_DEBUG_ENABLED),y)
DHDCFLAGS += -DSHOW_LOGTRACE
DHDCFLAGS += -DDHD_DEBUG_ENABLED
#DHDCFLAGS += -DDEBUGABILITY
DHDCFLAGS += -DDBG_PKT_MON
endif

##############################
# Android Platform Definition
##############################

#################
# Android N
#################
#Android N features
DHDCFLAGS += -DWL_ENABLE_P2P_IF
DHDCFLAGS += -DWL_CFG80211_STA_EVENT
DHDCFLAGS += -DWL_SUPPORT_BACKPORTED_KPATCHES
DHDCFLAGS += -DWL_IFACE_COMB_NUM_CHANNELS
DHDCFLAGS += -DCONFIG_CONTROL_PM
DHDCFLAGS += -DPFN_SCANRESULT_2

ifneq ($(filter y, $(CONFIG_BCM4359) $(CONFIG_BCM4358) $(CONFIG_BCM43455) $(CONFIG_BCM4356) $(CONFIG_BCM4339)),)
 ifneq ($(CONFIG_MACH_MSM8996_H1),y)
  #DHDCFLAGS += -DLINKSTAT_SUPPORT #removed by yongock.cho 20160630
  DHDCFLAGS += -DGSCAN_SUPPORT
  DHDCFLAGS += -DRSSI_MONITOR_SUPPORT
  #DHDCFLAGS += -DAPF #removed by cheolsook.lee 20160621, p2p disconnect issue
 endif
DHDCFLAGS += -DWL_VENDOR_EXT_SUPPORT
ANDROID_OFILES := src/wl/sys/wl_cfgvendor.o \
		  src/shared/bcmxtlv.o		src/shared/bcm_app_utils.o
endif


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

#############################
# Platform dependent feature
#############################
ifeq ($(DRIVER_TYPE),y)
DHDCFLAGS += -DENABLE_INSMOD_NO_FW_LOAD
endif

ifeq ($(CONFIG_BCMDHD_COB),y)
DHDCFLAGS += -DGET_CUSTOM_MAC_ENABLE
endif

#########################
# Chip dependent feature
#########################
ifneq ($(CONFIG_BCM4358),)
  DHDCFLAGS += -DBCM4358_CHIP
#  DHDCFLAGS += -DSUPPORT_MULTIPLE_REVISION
#  DHDCFLAGS += -DMIMO_ANT_SETTING
#  DHDCFLAGS += -DUSE_CID_CHECK
  DHDCFLAGS += -DENABLE_BCN_LI_BCN_WAKEUP
  DHDCFLAGS += -DSOFTAP_UAPSD_OFF

# tput enhancement
  DHDCFLAGS += -DUSE_WL_TXBF
  DHDCFLAGS += -DUSE_WL_FRAMEBURST
  DHDCFLAGS += -DDISABLE_FRAMEBURST_VSDB

# VSDB
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB

ifneq ($(CONFIG_BCMDHD_SDIO),)
  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 += -DRXF_DEQUEUE_ON_BUSY
  DHDCFLAGS += -DREPEAT_READFRAME
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64 -DCUSTOM_IBSS_AMPDU_BA_WSIZE=16
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
ifeq ($(CONFIG_ARCH_MSM),y)
  DHDCFLAGS += -DCUSTOM_DEF_TXGLOM_SIZE=40 -DDHD_TXBOUND=40
  DHDCFLAGS += -DENABLE_ADAPTIVE_SCHED -DCUSTOM_CPUFREQ_THRESH=1000000
endif
  DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=40
  DHDCFLAGS += -DMAX_HDR_READ=128
  DHDCFLAGS += -DDHD_FIRSTREAD=128
  DHDCFLAGS += -DCUSTOM_AMPDU_MPDU=16

  DHDCFLAGS += -DWAIT_DEQUEUE
  DHDCFLAGS += -DCUSTOM_PSPRETEND_THR=30
else ifneq ($(CONFIG_BCMDHD_PCIE),)
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
  DHDCFLAGS += -DCUSTOM_AMPDU_MPDU=32
  DHDCFLAGS += -DCUSTOM_AMPDU_RELEASE=16

  DHDCFLAGS += -DCUSTOM_AMSDU_AGGSF=4
  DHDCFLAGS += -DCUSTOM_TCPACK_SUPP_RATIO=15
  DHDCFLAGS += -DCUSTOM_TCPACK_DELAY_TIME=5
  DHDCFLAGS += -DDHDTCPACK_SUPPRESS
  DHDCFLAGS += -DTCPACK_SUPPRESS_HOLD_HRT
endif

# New Features
  DHDCFLAGS += -DWL11U
  DHDCFLAGS += -DBCMCCX
#  DHDCFLAGS += -DWES_SUPPORT
  DHDCFLAGS += -DOKC_SUPPORT
  DHDCFLAGS += -DWLTDLS
  DHDCFLAGS += -DWLFBT
  DHDCFLAGS += -DDHD_ENABLE_LPC
#  DHDCFLAGS += -DWLAIBSS
  DHDCFLAGS += -DSUPPORT_LTECX
  DHDCFLAGS += -DSUPPORT_2G_VHT
  DHDCFLAGS += -DSUPPORT_WL_TXPOWER
  DHDCFLAGS += -DSUPPORT_AP_POWERSAVE
ifeq ($(DRIVER_TYPE),y)
  DHDCFLAGS += -DUSE_LATE_INITCALL_SYNC
endif
  DHDCFLAGS += -DMFP
endif
ifeq ($(CONFIG_ARCH_MSM8996),y)
  # Runtime PM
  DHDCFLAGS += -DDHD_PCIE_RUNTIMEPM -DMAX_IDLE_COUNT=11 -DCUSTOM_DHD_RUNTIME_MS=100
  # Enable Dongle Isolation
  DHDCFLAGS += -DDONGLE_ENABLE_ISOLATION
endif

ifneq ($(CONFIG_BCM4356),)
  DHDCFLAGS += -DBCM4356_CHIP
#  DHDCFLAGS += -DSUPPORT_MULTIPLE_REVISION
#  DHDCFLAGS += -DMIMO_ANT_SETTING
#  DHDCFLAGS += -DUSE_CID_CHECK
  DHDCFLAGS += -DENABLE_BCN_LI_BCN_WAKEUP
  DHDCFLAGS += -DSOFTAP_UAPSD_OFF

# tput enhancement
  DHDCFLAGS += -DUSE_WL_TXBF
  DHDCFLAGS += -DUSE_WL_FRAMEBURST
  DHDCFLAGS += -DDISABLE_FRAMEBURST_VSDB

# VSDB
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB

ifneq ($(CONFIG_BCMDHD_SDIO),)
  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 += -DRXF_DEQUEUE_ON_BUSY
  DHDCFLAGS += -DREPEAT_READFRAME
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64 -DCUSTOM_IBSS_AMPDU_BA_WSIZE=16
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
ifeq ($(CONFIG_ARCH_MSM),y)
  DHDCFLAGS += -DCUSTOM_DEF_TXGLOM_SIZE=40 -DDHD_TXBOUND=40
  DHDCFLAGS += -DENABLE_ADAPTIVE_SCHED -DCUSTOM_CPUFREQ_THRESH=1000000
endif
  DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=40
  DHDCFLAGS += -DMAX_HDR_READ=128
  DHDCFLAGS += -DDHD_FIRSTREAD=128
  DHDCFLAGS += -DCUSTOM_AMPDU_MPDU=16

  DHDCFLAGS += -DWAIT_DEQUEUE
  DHDCFLAGS += -DCUSTOM_PSPRETEND_THR=30
else ifneq ($(CONFIG_BCMDHD_PCIE),)
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
  DHDCFLAGS += -DCUSTOM_AMPDU_MPDU=32
  DHDCFLAGS += -DCUSTOM_AMPDU_RELEASE=16
endif

# New Features
  DHDCFLAGS += -DWL11U
  DHDCFLAGS += -DBCMCCX
#  DHDCFLAGS += -DWES_SUPPORT
  DHDCFLAGS += -DOKC_SUPPORT
  DHDCFLAGS += -DWLTDLS
  DHDCFLAGS += -DWLFBT
  DHDCFLAGS += -DDHD_ENABLE_LPC
#  DHDCFLAGS += -DWLAIBSS
  DHDCFLAGS += -DSUPPORT_LTECX
  DHDCFLAGS += -DSUPPORT_2G_VHT
  DHDCFLAGS += -DSUPPORT_WL_TXPOWER
  DHDCFLAGS += -DSUPPORT_AP_POWERSAVE
ifeq ($(DRIVER_TYPE),y)
  DHDCFLAGS += -DUSE_LATE_INITCALL_SYNC
endif
  DHDCFLAGS += -DMFP
endif

ifneq ($(CONFIG_BCM4354),)
  DHDCFLAGS += -DBCM4354_CHIP
#  DHDCFLAGS += -DSUPPORT_MULTIPLE_REVISION
#  DHDCFLAGS += -DMIMO_ANT_SETTING
#  DHDCFLAGS += -DUSE_CID_CHECK
  DHDCFLAGS += -DENABLE_BCN_LI_BCN_WAKEUP
  DHDCFLAGS += -DSOFTAP_UAPSD_OFF

# tput enhancement
  DHDCFLAGS += -DUSE_WL_TXBF
  DHDCFLAGS += -DUSE_WL_FRAMEBURST
  DHDCFLAGS += -DDISABLE_FRAMEBURST_VSDB

# VSDB
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB

ifneq ($(CONFIG_BCMDHD_SDIO),)
  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 += -DRXF_DEQUEUE_ON_BUSY
  DHDCFLAGS += -DREPEAT_READFRAME
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64 -DCUSTOM_IBSS_AMPDU_BA_WSIZE=16
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
ifeq ($(CONFIG_ARCH_MSM),y)
  DHDCFLAGS += -DCUSTOM_DEF_TXGLOM_SIZE=40 -DDHD_TXBOUND=40
  DHDCFLAGS += -DENABLE_ADAPTIVE_SCHED -DCUSTOM_CPUFREQ_THRESH=1000000
endif
  DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=40
  DHDCFLAGS += -DMAX_HDR_READ=128
  DHDCFLAGS += -DDHD_FIRSTREAD=128
  DHDCFLAGS += -DCUSTOM_AMPDU_MPDU=16

  DHDCFLAGS += -DWAIT_DEQUEUE
  DHDCFLAGS += -DCUSTOM_PSPRETEND_THR=30
else ifneq ($(CONFIG_BCMDHD_PCIE),)
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
  DHDCFLAGS += -DCUSTOM_AMPDU_MPDU=32
  DHDCFLAGS += -DCUSTOM_AMPDU_RELEASE=16
  DHDCFLAGS += -DCUSTOM_AMSDU_AGGSF=4
endif

# New Features
  DHDCFLAGS += -DWL11U
  DHDCFLAGS += -DBCMCCX
#  DHDCFLAGS += -DWES_SUPPORT
  DHDCFLAGS += -DOKC_SUPPORT
  DHDCFLAGS += -DWLTDLS
  DHDCFLAGS += -DWLFBT
  DHDCFLAGS += -DDHD_ENABLE_LPC
#  DHDCFLAGS += -DWLAIBSS
  DHDCFLAGS += -DSUPPORT_LTECX
  DHDCFLAGS += -DSUPPORT_2G_VHT
  DHDCFLAGS += -DSUPPORT_WL_TXPOWER
  DHDCFLAGS += -DSUPPORT_AP_POWERSAVE
ifeq ($(DRIVER_TYPE),y)
  DHDCFLAGS += -DUSE_LATE_INITCALL_SYNC
endif
  DHDCFLAGS += -DMFP
endif

ifneq ($(CONFIG_BCM43455),)
  DHDCFLAGS += -DBCM43455_CHIP
  DHDCFLAGS += -DENABLE_BCN_LI_BCN_WAKEUP
  DHDCFLAGS += -DSDIO_CRC_ERROR_FIX
  DHDCFLAGS += -DROAM_CHANNEL_CACHE
ifeq ($(CONFIG_BCMDHD_SDIO),y)
  # 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 += -DRXF_DEQUEUE_ON_BUSY
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
ifeq ($(CONFIG_ARCH_MSM),y)
  DHDCFLAGS += -DCUSTOM_DEF_TXGLOM_SIZE=32 -DDHD_TXBOUND=32
  DHDCFLAGS += -DENABLE_ADAPTIVE_SCHED -DCUSTOM_CPUFREQ_THRESH=1000000
endif
  DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=32
  DHDCFLAGS += -DWAIT_DEQUEUE
else ifneq ($(CONFIG_BCMDHD_PCIE),)
  DHDCFLAGS += -DUSE_WL_FRAMEBURST
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
  DHDCFLAGS += -DCUSTOM_AMPDU_MPDU=32
  DHDCFLAGS += -DCUSTOM_AMPDU_RELEASE=16
  DHDCFLAGS += -DCUSTOM_TCPACK_SUPP_RATIO=15
  DHDCFLAGS += -DCUSTOM_TCPACK_DELAY_TIME=5
  DHDCFLAGS += -DDHDTCPACK_SUPPRESS
  DHDCFLAGS += -DTCPACK_SUPPRESS_HOLD_HRT
endif
#Runtime TCPACK Suppress for global model
ifeq ($(CONFIG_RUNTIME_TCPACK_SUPPRESS), y)
DHDCFLAGS += -DSET_TCPACK_SUPPRESS
endif

# For Passpoint
  DHDCFLAGS += -DWL11U
# For CCX
  DHDCFLAGS += -DBCMCCX
#  DHDCFLAGS += -DDISABLE_11AC
#  DHDCFLAGS += -DWES_SUPPORT
  DHDCFLAGS += -DOKC_SUPPORT
  DHDCFLAGS += -DWLTDLS -DWLTDLS_AUTO_ENABLE
# For V.E
  DHDCFLAGS += -DWLFBT
  DHDCFLAGS += -DDHD_ENABLE_LPC
#  DHDCFLAGS += -DWLAIBSS
  DHDCFLAGS += -DSUPPORT_LTECX
  DHDCFLAGS += -DSUPPORT_2G_VHT
  DHDCFLAGS += -DSUPPORT_WL_TXPOWER
  DHDCFLAGS += -DCUSTOM_PSPRETEND_THR=30
ifeq ($(DRIVER_TYPE),y)
  DHDCFLAGS += -DUSE_LATE_INITCALL_SYNC
endif
  DHDCFLAGS += -DMFP
endif


ifneq ($(CONFIG_BCM4343),)
  DHDCFLAGS += -DBCM43430_CHIP
  DHDCFLAGS += -DSDIO_CRC_ERROR_FIX
  DHDCFLAGS += -DWL_CFG80211_GON_COLLISION
  DHDCFLAGS += -DUSE_DYNAMIC_F2_BLKSIZE -DDYNAMIC_F2_BLKSIZE_FOR_NONLEGACY=64
  DHDCFLAGS += -DCUSTOM_GLOM_SETTING=5 -DENABLE_BCN_LI_BCN_WAKEUP
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
  DHDCFLAGS += -DRXFRAME_THREAD -DCUSTOM_RXCHAIN=1
  DHDCFLAGS += -DRXF_DEQUEUE_ON_BUSY
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
ifeq ($(CONFIG_ARCH_MSM),y)
  DHDCFLAGS += -DENABLE_ADAPTIVE_SCHED -DCUSTOM_CPUFREQ_THRESH=1000000
endif
#  DHDCFLAGS += -DROAM_CHANNEL_CACHE
  DHDCFLAGS += -DWAIT_DEQUEUE
endif

ifneq ($(CONFIG_BCM4339),)
  DHDCFLAGS += -DBCM4339_CHIP
  DHDCFLAGS += -DENABLE_BCN_LI_BCN_WAKEUP
  DHDCFLAGS += -DSDIO_CRC_ERROR_FIX
  DHDCFLAGS += -DROAM_CHANNEL_CACHE
  # 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 += -DRXF_DEQUEUE_ON_BUSY
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
ifeq ($(CONFIG_ARCH_MSM),y)
  DHDCFLAGS += -DCUSTOM_DEF_TXGLOM_SIZE=32 -DDHD_TXBOUND=32
  DHDCFLAGS += -DENABLE_ADAPTIVE_SCHED -DCUSTOM_CPUFREQ_THRESH=1000000
endif
  DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=32
  DHDCFLAGS += -DWAIT_DEQUEUE

# For Passpoint
  DHDCFLAGS += -DWL11U
# For CCX
  DHDCFLAGS += -DBCMCCX
#  DHDCFLAGS += -DDISABLE_11AC
#  DHDCFLAGS += -DWES_SUPPORT
  DHDCFLAGS += -DOKC_SUPPORT
  DHDCFLAGS += -DWLTDLS -DWLTDLS_AUTO_ENABLE
# For V.E
  DHDCFLAGS += -DWLFBT
  DHDCFLAGS += -DDHD_ENABLE_LPC
#  DHDCFLAGS += -DWLAIBSS
  DHDCFLAGS += -DSUPPORT_LTECX
  DHDCFLAGS += -DSUPPORT_2G_VHT
  DHDCFLAGS += -DSUPPORT_WL_TXPOWER
  DHDCFLAGS += -DCUSTOM_PSPRETEND_THR=30
  DHDCFLAGS += -DMFP
endif

ifneq ($(CONFIG_BCM4335),)
  DHDCFLAGS += -DBCM4335_CHIP
  DHDCFLAGS += -DENABLE_BCN_LI_BCN_WAKEUP
  DHDCFLAGS += -DSDIO_CRC_ERROR_FIX
  DHDCFLAGS += -DROAM_CHANNEL_CACHE
# 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 += -DDHD_SET_FW_HIGHSPEED
  DHDCFLAGS += -DUSE_WL_TXBF
  DHDCFLAGS += -DUSE_WL_FRAMEBURST
  DHDCFLAGS += -DRXFRAME_THREAD
  DHDCFLAGS += -DRXF_DEQUEUE_ON_BUSY
  DHDCFLAGS += -DREPEAT_READFRAME
  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
ifeq ($(CONFIG_ARCH_MSM),y)
  DHDCFLAGS += -DCUSTOM_DEF_TXGLOM_SIZE=32 -DDHD_TXBOUND=32
  DHDCFLAGS += -DENABLE_ADAPTIVE_SCHED -DCUSTOM_CPUFREQ_THRESH=1000000
endif
  DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=32
# DHDCFLAGS += -DTPUT_DEBUG

# For Passpoint
  DHDCFLAGS += -DWL11U
# For CCX
  DHDCFLAGS += -DBCMCCX
#  DHDCFLAGS += -DDISABLE_11AC
#  DHDCFLAGS += -DWES_SUPPORT
#  DHDCFLAGS += -DOKC_SUPPORT
  DHDCFLAGS += -DWLTDLS -DWLTDLS_AUTO_ENABLE

# For V.E
  DHDCFLAGS += -DWLFBT
  DHDCFLAGS += -DDHD_ENABLE_LPC
#  DHDCFLAGS += -DWLAIBSS
  DHDCFLAGS += -DSUPPORT_LTECX
  DHDCFLAGS += -DSUPPORT_2G_VHT
  DHDCFLAGS += -DSUPPORT_WL_TXPOWER
  DHDCFLAGS += -DWAIT_DEQUEUE

# For BT LOCK
ifeq ($(CONFIG_BCM4335BT),y)
#  DHDCFLAGS += -DENABLE_4335BT_WAR
endif
endif

ifneq ($(CONFIG_BCM43341),)
  DHDCFLAGS += -DBCM43341_CHIP
  DHDCFLAGS += -DENABLE_BCN_LI_BCN_WAKEUP
  # 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_FRAMEBURST
  DHDCFLAGS += -DRXFRAME_THREAD
  DHDCFLAGS += -DRXF_DEQUEUE_ON_BUSY
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
#  DHDCFLAGS += -DROAM_CHANNEL_CACHE
ifeq ($(CONFIG_ARCH_MSM),y)
  DHDCFLAGS += -DENABLE_ADAPTIVE_SCHED -DCUSTOM_CPUFREQ_THRESH=1000000
endif
  DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=32
  DHDCFLAGS += -DWAIT_DEQUEUE
endif

ifneq ($(CONFIG_BCM4334),)
  DHDCFLAGS += -DBCM4334_CHIP
  DHDCFLAGS += -DSDIO_CRC_ERROR_FIX
  DHDCFLAGS += -DWL_CFG80211_GON_COLLISION
  DHDCFLAGS += -DUSE_DYNAMIC_F2_BLKSIZE -DDYNAMIC_F2_BLKSIZE_FOR_NONLEGACY=64
  DHDCFLAGS += -DCUSTOM_GLOM_SETTING=5 -DENABLE_BCN_LI_BCN_WAKEUP
  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
  DHDCFLAGS += -DRXFRAME_THREAD -DCUSTOM_RXCHAIN=1
  DHDCFLAGS += -DRXF_DEQUEUE_ON_BUSY
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
# For Passpoint
  DHDCFLAGS += -DWL11U
#  DHDCFLAGS += -DROAM_CHANNEL_CACHE
ifeq ($(CONFIG_ARCH_MSM),y)
  DHDCFLAGS += -DENABLE_ADAPTIVE_SCHED -DCUSTOM_CPUFREQ_THRESH=1000000
endif
  DHDCFLAGS += -DWAIT_DEQUEUE
endif

ifneq ($(CONFIG_BCM4330),)
  DHDCFLAGS += -DBCM4330_CHIP
  DHDCFLAGS += -DMCAST_LIST_ACCUMULATION
  DHDCFLAGS += -DSDIO_CRC_ERROR_FIX
  DHDCFLAGS += -DCUSTOM_GLOM_SETTING=0
  DHDCFLAGS += -DWL_CFG80211_GON_COLLISION

  DHDCFLAGS += -DRXFRAME_THREAD -DCUSTOM_RXCHAIN=1
  DHDCFLAGS += -DRXF_DEQUEUE_ON_BUSY
  DHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
#  DHDCFLAGS += -DPASS_ARP_PACKET
  DHDCFLAGS += -DWAIT_DEQUEUE
endif


#########
# Others
#########

#EXTRA_LDFLAGS += --strip-debug

EXTRA_CFLAGS += $(DHDCFLAGS) -DDHD_DEBUG
EXTRA_CFLAGS += -DSRCBASE=\"$(src)\"
EXTRA_CFLAGS += -I$(src)/src/include/
EXTRA_CFLAGS += -I$(src)/src/dhd/sys/
EXTRA_CFLAGS += -I$(src)/src/dongle/
EXTRA_CFLAGS += -I$(src)/src/bcmsdio/sys/
EXTRA_CFLAGS += -I$(src)/src/wl/sys/
EXTRA_CFLAGS += -I$(src)/src/shared/
EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/include/
EXTRA_CFLAGS += -I$(src)/src/shared/bcmwifi/src/
EXTRA_CFLAGS += -I$(src)/include/ -I$(src)/

KBUILD_CFLAGS += -I$(LINUXDIR)/include -I$(shell pwd)

DHDOFILES := src/dhd/sys/dhd_pno.o		src/dhd/sys/dhd_common.o\
	src/dhd/sys/dhd_ip.o			src/dhd/sys/dhd_custom_gpio.o \
	src/dhd/sys/dhd_custom_lge.o		src/dhd/sys/dhd_linux.o \
	src/dhd/sys/dhd_linux_sched.o		src/dhd/sys/dhd_cfg80211.o \
	src/dhd/sys/dhd_linux_platdev.o		src/dhd/sys/dhd_linux_wq.o \
	src/shared/aiutils.o \
	src/shared/bcmevent.o			src/shared/bcmutils.o \
	src/shared/hnd_pktq.o			src/shared/hnd_pktpool.o \
	src/shared/bcmwifi/src/bcmwifi_channels.o	src/shared/hndpmu.o \
	src/shared/linux_osl.o			src/shared/sbutils.o \
	src/shared/siutils.o			src/wl/sys/wl_android.o \
	src/wl/sys/wl_cfg80211.o		src/wl/sys/wl_cfgp2p.o \
	src/wl/sys/wl_cfg_btcoex.o		src/wl/sys/wldev_common.o \
	src/wl/sys/wl_linux_mon.o		src/wl/sys/wl_roam.o \
	src/dhd/sys/dhd_wlfc.o

ifeq ($(CONFIG_BCMDHD_SDIO),y)
DHDOFILES += src/bcmsdio/sys/bcmsdh.o		src/bcmsdio/sys/bcmsdh_linux.o \
	src/bcmsdio/sys/bcmsdh_sdmmc.o		src/bcmsdio/sys/bcmsdh_sdmmc_linux.o \
	src/dhd/sys/dhd_cdc.o			src/dhd/sys/dhd_sdio.o
else ifeq ($(CONFIG_BCMDHD_PCIE),y)
DHDOFILES += src/dhd/sys/dhd_pcie.o		src/dhd/sys/dhd_pcie_linux.o \
	src/dhd/sys/dhd_flowring.o		src/dhd/sys/dhd_msgbuf.o \
	src/shared/pcie_core.o
endif

# for debugablity features
ifeq ($(CONFIG_DHD_DEBUG_ENABLED),y)
DHDOFILES += src/dhd/sys/dhd_debug.o		src/dhd/sys/dhd_debug_linux.o
endif

ifeq ($(CONFIG_BROADCOM_WIFI_RESERVED_MEM),y)
DHDOFILES += src/dhd/sys/dhd_custom_memprealloc.o \
		src/dhd/sys/dhd_custom_msm_lge.o
endif #CONFIG_BROADCOM_WIFI_RESERVED_MEM

DHDOFILES += $(ANDROID_OFILES)

obj-$(CONFIG_BCMDHD) += bcmdhd.o

bcmdhd-objs := $(DHDOFILES)

all:
	@echo "$(MAKE) --no-print-directory -C $(KDIR) SUBDIRS=$(CURDIR) modules"
	@$(MAKE) --no-print-directory -C $(KDIR) SUBDIRS=$(CURDIR) modules

clean:
	rm -rf *.o *.ko *.mod.c *~ .*.cmd \
	Module.symvers modules.order .tmp_versions modules.builtin \
ifeq ($(CONFIG_BCMDHD_SDIO),y)
	src/bcmsdio/sys/*.o \
	src/bcmsdio/sys/*.o.cmd \
endif
	src/bcmsdio/sys/.*.o.cmd \
	src/dhd/sys/*.o \
	src/dhd/sys/*.o.cmd \
	src/dhd/sys/.*.o.cmd \
	src/shared/*.o \
	src/shared/*.o.cmd \
	src/shared/.*.o.cmd \
	src/wl/sys/*.o \
	src/wl/sys/*.o.cmd \
	src/wl/sys/.*.o.cmd \
	src/shared/bcmwifi/src/bcmwifi_channels.o \
	src/shared/bcmwifi/src/.*.o.cmd

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