xref: /OK3568_Linux_fs/external/rkwifibt/drivers/infineon/chips/CYW5557X_PCIE_Makefile (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# bcmdhd
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# Portions of this code are copyright (c) 2021 Cypress Semiconductor Corporation
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun# Copyright (C) 1999-2017, Broadcom Corporation
6*4882a593Smuzhiyun#
7*4882a593Smuzhiyun#      Unless you and Broadcom execute a separate written software license
8*4882a593Smuzhiyun# agreement governing use of this software, this software is licensed to you
9*4882a593Smuzhiyun# under the terms of the GNU General Public License version 2 (the "GPL"),
10*4882a593Smuzhiyun# available at http://www.broadcom.com/licenses/GPLv2.php, with the
11*4882a593Smuzhiyun# following added to such license:
12*4882a593Smuzhiyun#
13*4882a593Smuzhiyun#      As a special exception, the copyright holders of this software give you
14*4882a593Smuzhiyun# permission to link this software with independent modules, and to copy and
15*4882a593Smuzhiyun# distribute the resulting executable under terms of your choice, provided that
16*4882a593Smuzhiyun# you also meet, for each linked independent module, the terms and conditions of
17*4882a593Smuzhiyun# the license of that module.  An independent module is a module which is not
18*4882a593Smuzhiyun# derived from this software.  The special exception does not apply to any
19*4882a593Smuzhiyun# modifications of the software.
20*4882a593Smuzhiyun#
21*4882a593Smuzhiyun#      Notwithstanding the above, under no circumstances may you combine this
22*4882a593Smuzhiyun# software in any way with any other Broadcom software provided under a license
23*4882a593Smuzhiyun# other than the GPL, without Broadcom's express prior written consent.
24*4882a593Smuzhiyun#
25*4882a593Smuzhiyun#
26*4882a593Smuzhiyun# <<Broadcom-WL-IPTag/Open:>>
27*4882a593Smuzhiyun#
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun#####################
30*4882a593Smuzhiyun# SDIO Basic feature
31*4882a593Smuzhiyun#####################
32*4882a593Smuzhiyun
33*4882a593SmuzhiyunDHDCFLAGS += -Wall -Wstrict-prototypes -Dlinux -DLINUX -DBCMDRIVER        \
34*4882a593Smuzhiyun	-DBCMDONGLEHOST -DUNRELEASEDCHIP -DBCMDMA32 -DBCMFILEIMAGE            \
35*4882a593Smuzhiyun	-DDHDTHREAD -DSHOW_EVENTS -DBCMDBG -DWLP2P                            \
36*4882a593Smuzhiyun	-DWIFI_ACT_FRAME -DARP_OFFLOAD_SUPPORT                                \
37*4882a593Smuzhiyun	-DKEEP_ALIVE -DCSCAN -DPKT_FILTER_SUPPORT                             \
38*4882a593Smuzhiyun	-DEMBEDDED_PLATFORM -DPNO_SUPPORT                                     \
39*4882a593Smuzhiyun	-DGET_CUSTOM_MAC_ENABLE      \
40*4882a593Smuzhiyun	-DSEC_ENHANCEMENT -DCHIPS_CUSTOMER_HW6	\
41*4882a593Smuzhiyun	-DDHD_DUMP_FILE_WRITE_FROM_KERNEL		\
42*4882a593Smuzhiyun	-DDHD_DONOT_FORWARD_BCMEVENT_AS_NETWORK_PKT
43*4882a593Smuzhiyun
44*4882a593SmuzhiyunGCCVERSIONGTEQ9 := $(shell expr `$(CROSS_COMPILE)gcc -dumpversion | cut -f1 -d.` \>= 9)
45*4882a593Smuzhiyunifeq "$(GCCVERSIONGTEQ9)" "1"
46*4882a593Smuzhiyun    DHDCFLAGS += -Wno-error=date-time
47*4882a593Smuzhiyunendif
48*4882a593SmuzhiyunDHDCFLAGS += $(call cc-disable-warning, date-time)
49*4882a593SmuzhiyunDHDCFLAGS += $(call cc-disable-warning, stringop-overflow)
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun##########################
52*4882a593Smuzhiyun# Platform Configuration
53*4882a593Smuzhiyun##########################
54*4882a593SmuzhiyunDHD_MODULE_NAME := CYW5557X_PCIE
55*4882a593Smuzhiyun
56*4882a593SmuzhiyunCONFIG_DHD_CHIP := cyw5557x
57*4882a593SmuzhiyunCONFIG_DHD_PLATFORM := Rockchip
58*4882a593SmuzhiyunCONFIG_BCMDHD = m
59*4882a593SmuzhiyunCONFIG_BCMDHD_PCIE = y
60*4882a593SmuzhiyunCONFIG_BCMDHD_SDIO :=
61*4882a593SmuzhiyunCONFIG_BCMDHD_OOB :=
62*4882a593SmuzhiyunCONFIG_BCMDHD_SDMMC :=
63*4882a593SmuzhiyunCONFIG_BCMDHD_WPA3 := y
64*4882a593SmuzhiyunCONFIG_DHD_ANDROID_VTS :=y
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun#################
67*4882a593Smuzhiyun# Common feature
68*4882a593Smuzhiyun#################
69*4882a593Smuzhiyun#DHDCFLAGS += -DAUTOMOTIVE_FEATURE
70*4882a593SmuzhiyunDHDCFLAGS += -DWL_VIRTUAL_APSTA
71*4882a593Smuzhiyun# Dongle init fail
72*4882a593SmuzhiyunDHDCFLAGS += -DDEBUG_DNGL_INIT_FAIL
73*4882a593Smuzhiyun#DHDCFLAGS += -DPOWERUP_MAX_RETRY=0
74*4882a593SmuzhiyunDHDCFLAGS += -DWL_SUPPORT_AUTO_CHANNEL
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun# Print 802.1X packets
77*4882a593SmuzhiyunDHDCFLAGS += -DDHD_8021X_DUMP
78*4882a593Smuzhiyun# prioritize 802.1x packet
79*4882a593SmuzhiyunDHDCFLAGS += -DEAPOL_PKT_PRIO
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun# Wapi
82*4882a593SmuzhiyunDHDCFLAGS += -DBCMWAPI_WPI -DBCMWAPI_WAI
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun# Allow wl event forwarding as network packet
85*4882a593SmuzhiyunDHDCFLAGS += -DWL_EVENT_ENAB
86*4882a593Smuzhiyun
87*4882a593SmuzhiyunDHDCFLAGS += -DWL_CFG80211
88*4882a593Smuzhiyun# Print out kernel panic point of file and line info when assertion happened
89*4882a593SmuzhiyunDHDCFLAGS += -DBCMASSERT_LOG
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun# Enable Log Dump
92*4882a593SmuzhiyunDHDCFLAGS += -DDHD_LOG_DUMP
93*4882a593SmuzhiyunDHDCFLAGS += -DOEM_ANDROID
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun# Enable Register access via dhd IOVAR
96*4882a593SmuzhiyunDHDCFLAGS += -DDHD_PCIE_REG_ACCESS -DDHD_BUS_MEM_ACCESS
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun# CUSTOMER4 flags
99*4882a593SmuzhiyunDHDCFLAGS += -DDHD_PKTID_AUDIT_ENABLED
100*4882a593SmuzhiyunDHDCFLAGS += -DSUPPORT_HIDDEN_AP
101*4882a593SmuzhiyunDHDCFLAGS += -DPASS_ALL_MCAST_PKTS -DESCAN_BUF_OVERFLOW_MGMT -DPKTPRIO_OVERRIDE
102*4882a593SmuzhiyunDHDCFLAGS += -DUSE_INITIAL_SHORT_DWELL_TIME
103*4882a593SmuzhiyunDHDCFLAGS += -DSOFTAP_UAPSD_OFF
104*4882a593SmuzhiyunDHDCFLAGS += -DSUPPORT_LTECX -DSUPPORT_2G_VHT
105*4882a593SmuzhiyunDHDCFLAGS += -DSUPPORT_WL_TXPOWER -DBLOCK_IPV6_PACKET -DSUPPORT_DEEP_SLEEP
106*4882a593SmuzhiyunDHDCFLAGS += -DSUPPORT_AMPDU_MPDU_CMD -DSOFTAP_SEND_HANGEVT -DNUM_SCB_MAX_PROBE=3
107*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_TCPACK_DELAY_TIME=10
108*4882a593SmuzhiyunDHDCFLAGS += -DDEBUGFS_CFG80211
109*4882a593SmuzhiyunDHDCFLAGS += -DSUPPORT_SOFTAP_WPAWPA2_MIXED
110*4882a593SmuzhiyunDHDCFLAGS += -DSUPPORT_2G_VHT -DSUPPORT_5G_1024QAM_VHT
111*4882a593Smuzhiyun#DHDCFLAGS += -DEWP_ECNTRS_LOGGING
112*4882a593Smuzhiyun#DHDCFLAGS += -DEWP_ETD_PRSRV_LOGS
113*4882a593SmuzhiyunDHDCFLAGS += -DCFI_CHECK
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun# Runtime PM feature
116*4882a593Smuzhiyun# DHDCFLAGS += -DDHD_PCIE_RUNTIMEPM -DMAX_IDLE_COUNT=11 -DCUSTOM_DHD_RUNTIME_MS=100
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun# DMA64 suppports on 64bit Architecture
119*4882a593Smuzhiyunifeq ($(CONFIG_ARM64),y)
120*4882a593Smuzhiyun	DHDCFLAGS := $(filter-out -DBCMDMA32,$(DHDCFLAGS))
121*4882a593Smuzhiyun	DHDCFLAGS += -DBCMDMA64OSL
122*4882a593Smuzhiyunendif
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun# DMA64 suppports on x64bit Architecture
125*4882a593Smuzhiyun#ifeq ($(CONFIG_64BIT),y)
126*4882a593Smuzhiyun#	DHDCFLAGS := $(filter-out -DBCMDMA32,$(DHDCFLAGS))
127*4882a593Smuzhiyun#	DHDCFLAGS += -DBCMDMA64OSL
128*4882a593Smuzhiyun#endif // endif
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun## OOB
131*4882a593Smuzhiyunifeq ($(CONFIG_BCMDHD_OOB_HOST_WAKE),y)
132*4882a593Smuzhiyun	DHDCFLAGS += -DBCMPCIE_OOB_HOST_WAKE
133*4882a593Smuzhiyunendif
134*4882a593Smuzhiyun
135*4882a593Smuzhiyun# keepalive
136*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_KEEP_ALIVE_SETTING=28000
137*4882a593Smuzhiyun
138*4882a593SmuzhiyunDHDCFLAGS += -DVSDB
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun# For p2p connection issue
141*4882a593SmuzhiyunDHDCFLAGS += -DWL_SCB_TIMEOUT=10
142*4882a593Smuzhiyun
143*4882a593Smuzhiyun# TDLS enable
144*4882a593SmuzhiyunDHDCFLAGS += -DWLTDLS -DWLTDLS_AUTO_ENABLE
145*4882a593Smuzhiyun# For TDLS tear down inactive time 40 sec
146*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_TDLS_IDLE_MODE_SETTING=10000
147*4882a593Smuzhiyun# for TDLS RSSI HIGH for establishing TDLS link
148*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_TDLS_RSSI_THRESHOLD_HIGH=-80
149*4882a593Smuzhiyun# for TDLS RSSI HIGH for tearing down TDLS link
150*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_TDLS_RSSI_THRESHOLD_LOW=-85
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun# Roaming
153*4882a593SmuzhiyunDHDCFLAGS += -DROAM_AP_ENV_DETECTION
154*4882a593SmuzhiyunDHDCFLAGS += -DROAM_ENABLE -DROAM_CHANNEL_CACHE -DROAM_API
155*4882a593SmuzhiyunDHDCFLAGS += -DENABLE_FW_ROAM_SUSPEND
156*4882a593Smuzhiyun# Roaming trigger
157*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_ROAM_TRIGGER_SETTING=-75
158*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_ROAM_DELTA_SETTING=10
159*4882a593Smuzhiyun# Set PM 2 always regardless suspend/resume
160*4882a593SmuzhiyunDHDCFLAGS += -DSUPPORT_PM2_ONLY
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun# FT roam
163*4882a593SmuzhiyunDHDCFLAGS += -DWLFBT -DGTK_OFFLOAD_SUPPORT
164*4882a593SmuzhiyunDHDCFLAGS += -DBCMCCX
165*4882a593SmuzhiyunDHDCFLAGS += -DWBTEXT
166*4882a593SmuzhiyunDHDCFLAGS += -DDHD_LOSSLESS_ROAMING
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun# For special PNO Event keep wake lock for 10sec
169*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_PNO_EVENT_LOCK_xTIME=10
170*4882a593SmuzhiyunDHDCFLAGS += -DMIRACAST_AMPDU_SIZE=8
171*4882a593Smuzhiyun#Vendor Extension
172*4882a593Smuzhiyun#DHDCFLAGS += -DWL_VENDOR_EXT_SUPPORT
173*4882a593Smuzhiyun#Gscan
174*4882a593SmuzhiyunDHDCFLAGS += -DGSCAN_SUPPORT
175*4882a593Smuzhiyun#PNO Scan Result Version
176*4882a593SmuzhiyunDHDCFLAGS += -DPFN_SCANRESULT_2
177*4882a593Smuzhiyun#RSSI Monitor
178*4882a593SmuzhiyunDHDCFLAGS += -DRSSI_MONITOR_SUPPORT
179*4882a593Smuzhiyun#APF
180*4882a593SmuzhiyunDHDCFLAGS += -DAPF
181*4882a593Smuzhiyun#NDOffload
182*4882a593SmuzhiyunDHDCFLAGS += -DNDO_CONFIG_SUPPORT
183*4882a593SmuzhiyunDHDCFLAGS += -DIPV6_NDO_SUPPORT
184*4882a593Smuzhiyun
185*4882a593Smuzhiyun#Link Statistics
186*4882a593SmuzhiyunDHDCFLAGS += -DLINKSTAT_SUPPORT
187*4882a593Smuzhiyun
188*4882a593SmuzhiyunDHDCFLAGS += -DWL_SCHED_SCAN
189*4882a593SmuzhiyunDHDCFLAGS += -DDNGL_EVENT_SUPPORT
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun#RSSI Monitor
192*4882a593SmuzhiyunDHDCFLAGS += -DRSSI_MONITOR_SUPPORT
193*4882a593Smuzhiyun
194*4882a593Smuzhiyun# Early suspend
195*4882a593SmuzhiyunDHDCFLAGS += -DDHD_USE_EARLYSUSPEND
196*4882a593Smuzhiyun
197*4882a593Smuzhiyun# For Scan result patch
198*4882a593SmuzhiyunDHDCFLAGS += -DESCAN_RESULT_PATCH
199*4882a593Smuzhiyun
200*4882a593Smuzhiyun# NAN
201*4882a593Smuzhiyun#DHDCFLAGS += -DWL_NAN -DWL_NAN_DISC_CACHE
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun# For Static Buffer
204*4882a593Smuzhiyunifeq ($(CONFIG_DHD_USE_STATIC_BUF),y)
205*4882a593Smuzhiyun  DHDCFLAGS += -DENHANCED_STATIC_BUF
206*4882a593Smuzhiyun  DHDCFLAGS += -DSTATIC_WL_PRIV_STRUCT
207*4882a593Smuzhiyunendif
208*4882a593Smuzhiyunifneq ($(CONFIG_DHD_USE_SCHED_SCAN),)
209*4882a593SmuzhiyunDHDCFLAGS += -DWL_SCHED_SCAN
210*4882a593Smuzhiyunendif
211*4882a593Smuzhiyun
212*4882a593Smuzhiyun# Prevent rx thread monopolize
213*4882a593SmuzhiyunDHDCFLAGS += -DWAIT_DEQUEUE
214*4882a593Smuzhiyun
215*4882a593Smuzhiyun# idle count
216*4882a593SmuzhiyunDHDCFLAGS += -DDHD_USE_IDLECOUNT
217*4882a593Smuzhiyun
218*4882a593Smuzhiyun# SKB TAILPAD to avoid out of boundary memory access
219*4882a593SmuzhiyunDHDCFLAGS += -DDHDENABLE_TAILPAD
220*4882a593Smuzhiyun
221*4882a593Smuzhiyun# Wi-Fi Direct
222*4882a593SmuzhiyunDHDCFLAGS += -DWL_CFG80211_VSDB_PRIORITIZE_SCAN_REQUEST
223*4882a593SmuzhiyunDHDCFLAGS += -DWL_CFG80211_STA_EVENT
224*4882a593SmuzhiyunDHDCFLAGS += -DWL_IFACE_COMB_NUM_CHANNELS
225*4882a593SmuzhiyunDHDCFLAGS += -DWL_SUPPORT_MULTIP2P
226*4882a593Smuzhiyun#SCAN time
227*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_SET_SHORT_DWELL_TIME
228*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_FORCE_NODFS_FLAG
229*4882a593Smuzhiyunifeq ($(CONFIG_ANDROID),y)
230*4882a593Smuzhiyun  DHDCFLAGS += -DKEEP_WIFION_OPTION
231*4882a593Smuzhiyun  DHDCFLAGS += -Wno-date-time
232*4882a593Smuzhiyunendif
233*4882a593Smuzhiyun
234*4882a593Smuzhiyun# SoftAP
235*4882a593SmuzhiyunDHDCFLAGS += -DSET_RANDOM_MAC_SOFTAP
236*4882a593SmuzhiyunDHDCFLAGS += -DWL_CFG80211_ACL
237*4882a593Smuzhiyunifeq ($(CONFIG_WL_AP_IF),y)
238*4882a593Smuzhiyun  DHDCFLAGS += -DWL_STATIC_IF
239*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_NUM_STATIC_IFACES=2
240*4882a593Smuzhiyunendif
241*4882a593Smuzhiyun
242*4882a593Smuzhiyun# QT support
243*4882a593Smuzhiyunifeq ($(CONFIG_QT), y)
244*4882a593Smuzhiyun  DHDCFLAGS += -DBCMQT_HW -DBCMSLTGT -DBCMQT
245*4882a593Smuzhiyunendif
246*4882a593Smuzhiyun
247*4882a593Smuzhiyun# Disable FRAMEBURST on VSDB
248*4882a593SmuzhiyunDHDCFLAGS += -DDISABLE_FRAMEBURST_VSDB
249*4882a593Smuzhiyun
250*4882a593Smuzhiyun# WPS
251*4882a593SmuzhiyunDHDCFLAGS += -DWL_WPS_SYNC -DBCMCRYPTO_COMPONENT
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun#WPA3
254*4882a593Smuzhiyunifneq ($(CONFIG_BCMDHD_WPA3),)
255*4882a593Smuzhiyun  DHDCFLAGS += -DWL_SAE
256*4882a593Smuzhiyunendif
257*4882a593Smuzhiyun
258*4882a593Smuzhiyunifneq ($(CONFIG_BCMDHD_PCIE),)
259*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_4WAYM4_FAIL_DISCONNECT
260*4882a593Smuzhiyunendif
261*4882a593Smuzhiyun
262*4882a593Smuzhiyun# Uncomment the below line for AP to receive disconnect management frame.
263*4882a593Smuzhiyun# DHDCFLAGS += -DWL_CFG80211_AP_RX_MGMT_DISCONNECT
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun# Bandsteer support
266*4882a593Smuzhiyun# DHDCFLAGS += -DDHD_BANDSTEER
267*4882a593Smuzhiyun
268*4882a593Smuzhiyun# Android VTS
269*4882a593Smuzhiyunifneq ($(CONFIG_DHD_ANDROID_VTS),)
270*4882a593Smuzhiyun#Debugaility
271*4882a593Smuzhiyun  DHDCFLAGS += -DDEBUGABILITY
272*4882a593Smuzhiyun  DHDCFLAGS += -DDBG_PKT_MON -DDBG_PKT_MON_INIT_DEFAULT
273*4882a593Smuzhiyun
274*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_FW_COREDUMP
275*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_WAKE_STATUS -DDHD_WAKE_RX_STATUS
276*4882a593Smuzhiyunendif
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun##########################
279*4882a593Smuzhiyun# driver type
280*4882a593Smuzhiyun# m: module type driver
281*4882a593Smuzhiyun# y: built-in type driver
282*4882a593Smuzhiyun##########################
283*4882a593SmuzhiyunDRIVER_TYPE ?= $(CONFIG_BCMDHD)
284*4882a593Smuzhiyun
285*4882a593Smuzhiyun#############################
286*4882a593Smuzhiyun# Bring up WARs for CYW89570.
287*4882a593Smuzhiyun# # To be removed later
288*4882a593Smuzhiyun# #############################
289*4882a593Smuzhiyunifneq ($(CONFIG_WIRELESS_EXT),)
290*4882a593Smuzhiyun  DHDOFILES += wl_iw.o bcm_app_utils.o
291*4882a593Smuzhiyun  DHDCFLAGS += -DWL_WIRELESS_EXT -DWLLXIW -DUSE_IW
292*4882a593Smuzhiyunendif
293*4882a593Smuzhiyun
294*4882a593Smuzhiyunifeq ($(CONFIG_TRXHDR_V3),y)
295*4882a593Smuzhiyun   DHDCFLAGS += -DBCMTRXV3
296*4882a593Smuzhiyunelse
297*4882a593Smuzhiyun   DHDCFLAGS += -DBCMTRXV4
298*4882a593Smuzhiyunendif
299*4882a593Smuzhiyun
300*4882a593Smuzhiyun#########################
301*4882a593Smuzhiyun# Chip dependent feature
302*4882a593Smuzhiyun#########################
303*4882a593SmuzhiyunDHDCFLAGS += -DUSE_WL_TXBF
304*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_DPC_CPUCORE=0
305*4882a593Smuzhiyun
306*4882a593Smuzhiyun# New Features
307*4882a593SmuzhiyunDHDCFLAGS += -DWL11U
308*4882a593SmuzhiyunDHDCFLAGS += -DMFP
309*4882a593Smuzhiyun# Disabling LPC for 89570 for now.
310*4882a593Smuzhiyun# DHDCFLAGS += -DDHD_ENABLE_LPC
311*4882a593SmuzhiyunDHDCFLAGS += -DCUSTOM_COUNTRY_CODE
312*4882a593SmuzhiyunDHDCFLAGS += -DNDO_CONFIG_SUPPORT
313*4882a593SmuzhiyunDHDCFLAGS += -DIPV6_NDO_SUPPORT
314*4882a593Smuzhiyun
315*4882a593Smuzhiyun# Expand TCP tx queue to 10 times of default size
316*4882a593SmuzhiyunDHDCFLAGS += -DTSQ_MULTIPLIER=10
317*4882a593Smuzhiyun
318*4882a593Smuzhiyunifeq ($(CONFIG_BCMDHD_SDMMC),y)
319*4882a593Smuzhiyun  DHDCFLAGS += -DBCMLXSDMMC -DCUSTOM_TXGLOM=1
320*4882a593Smuzhiyunendif
321*4882a593Smuzhiyun
322*4882a593Smuzhiyunifeq ($(CONFIG_BCMDHD_SDIOH_STD),y)
323*4882a593Smuzhiyun  DHDCFLAGS += -DBCMSDIOH_STD
324*4882a593Smuzhiyunendif
325*4882a593Smuzhiyun
326*4882a593Smuzhiyunifeq ($(CONFIG_BCMDHD_SDIO),y)
327*4882a593Smuzhiyun  DHDCFLAGS += -DBDC -DHW_OOB -DDHD_BCMEVENTS -DMMC_SDIO_ABORT
328*4882a593Smuzhiyun  DHDCFLAGS += -DBCMSDIO -DUSE_SDIOFIFO_IOVAR
329*4882a593Smuzhiyun  DHDCFLAGS += -DPROP_TXSTATUS -DLIMIT_BORROW
330*4882a593Smuzhiyun  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
331*4882a593Smuzhiyun  DHDCFLAGS += -DUSE_WL_FRAMEBURST
332*4882a593Smuzhiyun# tput enhancement
333*4882a593Smuzhiyun  DHDCFLAGS += -DCUSTOM_GLOM_SETTING=8 -DCUSTOM_RXCHAIN=1
334*4882a593Smuzhiyun  DHDCFLAGS += -DUSE_DYNAMIC_F2_BLKSIZE -DDYNAMIC_F2_BLKSIZE_FOR_NONLEGACY=128
335*4882a593Smuzhiyun  DHDCFLAGS += -DBCMSDIOH_TXGLOM -DAMPDU_HOSTREORDER
336*4882a593Smuzhiyun  DHDCFLAGS += -DDHDTCPACK_SUPPRESS
337*4882a593Smuzhiyun  DHDCFLAGS += -DRXFRAME_THREAD
338*4882a593Smuzhiyun  DHDCFLAGS += -DREPEAT_READFRAME
339*4882a593Smuzhiyun  DHDCFLAGS += -DCUSTOM_MAX_TXGLOM_SIZE=40
340*4882a593Smuzhiyun  DHDCFLAGS += -DMAX_HDR_READ=128
341*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_FIRSTREAD=64
342*4882a593Smuzhiyun
343*4882a593Smuzhiyun# bcn_timeout
344*4882a593Smuzhiyun  DHDCFLAGS += -DCUSTOM_BCN_TIMEOUT_SETTING=5
345*4882a593Smuzhiyun
346*4882a593Smuzhiyun  DHDCFLAGS += -DWLFC_STATE_PREALLOC
347*4882a593Smuzhiyun  DHDCFLAGS += -DREVERSE_AIFSN
348*4882a593Smuzhiyun
349*4882a593Smuzhiyun# SDIO OOB
350*4882a593Smuzhiyunifeq ($(CONFIG_BCMDHD_OOB),y)
351*4882a593Smuzhiyun    DHDCFLAGS += -DOOB_INTR_ONLY -DCUSTOMER_OOB -DHW_OOB
352*4882a593Smuzhiyunelse
353*4882a593Smuzhiyun    DHDCFLAGS += -DSDIO_ISR_THREAD
354*4882a593Smuzhiyunendif
355*4882a593Smuzhiyunendif
356*4882a593Smuzhiyun
357*4882a593Smuzhiyunifneq ($(CONFIG_BCMDHD_PCIE),)
358*4882a593Smuzhiyun  DHDCFLAGS += -DPCIE_FULL_DONGLE -DBCMPCIE -DCUSTOM_DPC_PRIO_SETTING=-1
359*4882a593Smuzhiyun# tput enhancement
360*4882a593Smuzhiyun  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
361*4882a593Smuzhiyun  DHDCFLAGS += -DPROP_TXSTATUS_VSDB
362*4882a593Smuzhiyun# Disable watchdog thread
363*4882a593Smuzhiyun  DHDCFLAGS += -DCUSTOM_DHD_WATCHDOG_MS=0
364*4882a593Smuzhiyun# HEAP ASLR
365*4882a593Smuzhiyun  DHDCFLAGS += -DBCM_ASLR_HEAP
366*4882a593Smuzhiyun  DHDCFLAGS += -DMAX_CNTL_TX_TIMEOUT=1
367*4882a593Smuzhiyun
368*4882a593Smuzhiyun# Enable health check event handling
369*4882a593Smuzhiyun  DHDCFLAGS += -DDNGL_EVENT_SUPPORT
370*4882a593Smuzhiyun  DHDCFLAGS += -DHCHK_COMMON_SW_EVENT
371*4882a593Smuzhiyun
372*4882a593Smuzhiyun# Enable Load Balancing support by default.
373*4882a593Smuzhiyun# DHD_LB_RXP - Perform RX Packet processing in parallel
374*4882a593Smuzhiyun# DHD_LB_STATS - To display the Load Blancing statistics
375*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_LB -DDHD_LB_RXP -DDHD_LB_STATS
376*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_LB_PRIMARY_CPUS=0xF0 -DDHD_LB_SECONDARY_CPUS=0x0E
377*4882a593Smuzhiyun
378*4882a593Smuzhiyun# Runtime PM feature
379*4882a593Smuzhiyun# DHDCFLAGS += -DDHD_PCIE_RUNTIMEPM -DMAX_IDLE_COUNT=11 -DCUSTOM_DHD_RUNTIME_MS=100
380*4882a593Smuzhiyun
381*4882a593Smuzhiyun# debug info
382*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_WAKE_STATUS -DDHD_WAKE_RX_STATUS
383*4882a593Smuzhiyun
384*4882a593Smuzhiyun# Enable SSSR Dump
385*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_SSSR_DUMP
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun# Enabling temporarily due to build failure
388*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_PKTTS -DTX_STATUS_LATENCY_STATS
389*4882a593Smuzhiyun
390*4882a593Smuzhiyun# Enable MSI interrupt Support
391*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_MSI_SUPPORT
392*4882a593Smuzhiyun  DHDCFLAGS += -DDHD_RECOVER_TIMEOUT
393*4882a593Smuzhiyunendif
394*4882a593Smuzhiyun
395*4882a593Smuzhiyunifeq ($(CONFIG_DHD_CHIP), cyw43455)
396*4882a593Smuzhiyun  DHDCFLAGS += -DCONFIG_DHD_CYW43455
397*4882a593Smuzhiyunendif
398*4882a593Smuzhiyun
399*4882a593Smuzhiyunifeq ($(CONFIG_DHD_CHIP), cyw4354)
400*4882a593Smuzhiyun  DHDCFLAGS += -DMAX_AP_CLIENT_CNT=10
401*4882a593Smuzhiyun  DHDCFLAGS += -DMAX_GO_CLIENT_CNT=5
402*4882a593Smuzhiyunifeq ($(CONFIG_BCMDHD_SDIO),y)
403*4882a593Smuzhiyun  DHDCFLAGS += -DCUSTOM_AMPDU_MPDU=16
404*4882a593Smuzhiyun  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
405*4882a593Smuzhiyunendif
406*4882a593Smuzhiyunifneq ($(CONFIG_BCMDHD_PCIE),)
407*4882a593Smuzhiyun  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=64
408*4882a593Smuzhiyunendif
409*4882a593Smuzhiyunendif
410*4882a593Smuzhiyun
411*4882a593Smuzhiyunifeq ($(CONFIG_DHD_CHIP), cyw4373)
412*4882a593Smuzhiyun  DHDCFLAGS += -DCUSTOM_AMPDU_BA_WSIZE=32
413*4882a593Smuzhiyunendif
414*4882a593Smuzhiyun
415*4882a593Smuzhiyunifeq ($(CONFIG_DHD_CHIP), cyw54591)
416*4882a593Smuzhiyun  DHDCFLAGS += -DWL_FW_ARCH_MSCH
417*4882a593Smuzhiyun  DHDCFLAGS += -DIGUANA_LEGACY_CHIPS
418*4882a593Smuzhiyunendif
419*4882a593Smuzhiyun
420*4882a593Smuzhiyunifeq ($(CONFIG_DHD_CHIP), cyw5557x)
421*4882a593Smuzhiyun  DHDCFLAGS += -DWL_FW_ARCH_MSCH
422*4882a593Smuzhiyun  DHDCFLAGS += -DIGUANA_LEGACY_CHIPS
423*4882a593Smuzhiyunendif
424*4882a593Smuzhiyun
425*4882a593Smuzhiyun#EXTRA_LDFLAGS += --strip-debug
426*4882a593Smuzhiyun
427*4882a593Smuzhiyunifeq ($(DRIVER_TYPE),y)
428*4882a593Smuzhiyun  DHDCFLAGS += -DENABLE_INSMOD_NO_FW_LOAD
429*4882a593Smuzhiyun  DHDCFLAGS += -DUSE_LATE_INITCALL_SYNC
430*4882a593Smuzhiyun  # Use kernel strlcpy() implementation instead of one, defined in bcmstdlib_s.c
431*4882a593Smuzhiyun  DHDCFLAGS += -DBCM_USE_PLATFORM_STRLCPY
432*4882a593Smuzhiyunendif
433*4882a593Smuzhiyun
434*4882a593SmuzhiyunDHDOFILES += dhd_pno.o dhd_common.o dhd_ip.o dhd_custom_gpio.o \
435*4882a593Smuzhiyun    dhd_linux.o dhd_linux_sched.o dhd_cfg80211.o dhd_linux_wq.o aiutils.o \
436*4882a593Smuzhiyun    bcmevent.o bcmutils.o bcmwifi_channels.o hndpmu.o linux_osl.o linux_pkt.o \
437*4882a593Smuzhiyun    sbutils.o siutils.o wl_android.o wl_roam.o wl_cfg80211.o wl_cfgscan.o wl_cfgp2p.o \
438*4882a593Smuzhiyun    wl_cfg_btcoex.o wldev_common.o wl_linux_mon.o dhd_linux_platdev.o \
439*4882a593Smuzhiyun    dhd_pno.o dhd_linux_pktdump.o wl_cfg_btcoex.o hnd_pktq.o \
440*4882a593Smuzhiyun    hnd_pktpool.o wl_cfgvendor.o bcmxtlv.o bcm_app_utils.o dhd_debug.o \
441*4882a593Smuzhiyun    dhd_debug_linux.o dhd_mschdbg.o bcmbloom.o dhd_dbg_ring.o bcmstdlib_s.o \
442*4882a593Smuzhiyun    dhd_linux_exportfs.o
443*4882a593Smuzhiyun
444*4882a593Smuzhiyunifeq ($(CONFIG_DHD_PLATFORM), Rockchip)
445*4882a593Smuzhiyun    DHDCFLAGS += -DCONFIG_DHD_PLAT_ROCKCHIP
446*4882a593Smuzhiyun    DHDCFLAGS += -DWL_ENABLE_P2P_IF
447*4882a593Smuzhiyun    DHDCFLAGS += -DDHD_MAP_CHIP_FIRMWARE_PATH
448*4882a593Smuzhiyun    DHDCFLAGS += -DDHD_FIRMWARE_DIR_PATH=\"/vendor/etc/firmware\"
449*4882a593Smuzhiyunifeq ($(CONFIG_BCMDHD_SDIO),y)
450*4882a593Smuzhiyun    DHDCFLAGS += -DDHD_OF_SUPPORT
451*4882a593Smuzhiyun    DHDCFLAGS += -DDHD_CUSTOM_PLAT_DATA
452*4882a593Smuzhiyun    DHDCFLAGS += -DDHD_SDIO_MEM_BUF
453*4882a593Smuzhiyun#    DHDCFLAGS += -DANDROID_SDIO_RESET
454*4882a593Smuzhiyun    DHDOFILES += dhd_custom_rockchip.o
455*4882a593Smuzhiyunendif
456*4882a593Smuzhiyunendif
457*4882a593Smuzhiyun
458*4882a593Smuzhiyunifeq ($(CONFIG_DHD_PLATFORM), msm)
459*4882a593Smuzhiyunifneq ($(CONFIG_DHD_OF_SUPPORT),)
460*4882a593Smuzhiyun    DHDCFLAGS += -DDHD_OF_SUPPORT
461*4882a593Smuzhiyun    DHDOFILES += dhd_custom_msm.o
462*4882a593Smuzhiyunifneq ($(CONFIG_BROADCOM_WIFI_RESERVED_MEM),)
463*4882a593Smuzhiyun  DHDOFILES += dhd_custom_memprealloc.o
464*4882a593Smuzhiyunendif
465*4882a593Smuzhiyunendif
466*4882a593Smuzhiyunendif
467*4882a593Smuzhiyun
468*4882a593Smuzhiyunifeq ($(CONFIG_BCMDHD_SDMMC),y)
469*4882a593Smuzhiyun  DHDOFILES += bcmsdh_sdmmc.o bcmsdh_sdmmc_linux.o
470*4882a593Smuzhiyunendif
471*4882a593Smuzhiyun
472*4882a593Smuzhiyunifeq ($(CONFIG_BCMDHD_SDIO),y)
473*4882a593Smuzhiyun  DHDOFILES += bcmsdh.o bcmsdh_linux.o
474*4882a593Smuzhiyun  DHDOFILES += dhd_cdc.o dhd_wlfc.o dhd_sdio.o
475*4882a593Smuzhiyunendif
476*4882a593Smuzhiyun
477*4882a593Smuzhiyunifeq ($(CONFIG_BCMDHD_SDIOH_STD),y)
478*4882a593Smuzhiyun  DHDOFILES += bcmsdstd.o bcmsdstd_linux.o
479*4882a593Smuzhiyunendif
480*4882a593Smuzhiyun
481*4882a593Smuzhiyunifneq ($(CONFIG_BCMDHD_PCIE),)
482*4882a593Smuzhiyun  DHDOFILES += dhd_pcie.o dhd_pcie_linux.o dhd_msgbuf.o dhd_flowring.o
483*4882a593Smuzhiyun  DHDOFILES += pcie_core.o
484*4882a593Smuzhiyunendif
485*4882a593Smuzhiyun
486*4882a593Smuzhiyunifneq ($(filter -DDHD_LB, $(DHDCFLAGS)),)
487*4882a593SmuzhiyunDHDOFILES += dhd_linux_lb.o
488*4882a593Smuzhiyunendif
489*4882a593Smuzhiyunifneq ($(filter -DDHD_BANDSTEER, $(DHDCFLAGS)),)
490*4882a593Smuzhiyun    DHDOFILES += dhd_bandsteer.o
491*4882a593Smuzhiyunendif
492*4882a593Smuzhiyun
493*4882a593Smuzhiyunifneq ($(CONFIG_QT),y)
494*4882a593Smuzhiyun  DHDCFLAGS += -DRTT_SUPPORT -DRTT_DEBUG
495*4882a593Smuzhiyun  DHDOFILES += dhd_rtt.o
496*4882a593Smuzhiyunendif
497*4882a593SmuzhiyunEXTRA_CFLAGS += $(DHDCFLAGS) -DDHD_DEBUG
498*4882a593SmuzhiyunEXTRA_CFLAGS += -DSRCBASE=\"$(src)\"
499*4882a593SmuzhiyunEXTRA_CFLAGS += -I$(src)/include/ -I$(src)/
500*4882a593SmuzhiyunKBUILD_CFLAGS += -I$(KDIR)/include -I$(CURDIR)
501*4882a593Smuzhiyun
502*4882a593Smuzhiyun$(DHD_MODULE_NAME)-objs := $(DHDOFILES)
503*4882a593Smuzhiyunobj-$(DRIVER_TYPE)   += $(DHD_MODULE_NAME).o
504*4882a593Smuzhiyun
505*4882a593Smuzhiyunall:
506*4882a593Smuzhiyun	@echo "$(MAKE) --no-print-directory -C $(KDIR) M=$(CURDIR) modules"
507*4882a593Smuzhiyun	@$(MAKE) --no-print-directory -C $(KDIR) M=$(CURDIR) modules
508*4882a593Smuzhiyun
509*4882a593Smuzhiyunclean:
510*4882a593Smuzhiyun	rm -rf *.o *.ko *.mod.c *~ .*.cmd *.o.cmd .*.o.cmd \
511*4882a593Smuzhiyun	Module.symvers modules.order .tmp_versions modules.builtin
512*4882a593Smuzhiyun
513*4882a593Smuzhiyuninstall:
514*4882a593Smuzhiyun	@$(MAKE) --no-print-directory -C $(KDIR) \
515*4882a593Smuzhiyun		SUBDIRS=$(CURDIR) modules_install
516