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