hc
2024-08-12 33276c6b0b8513a340de65b0ef99993023df46ca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
# SPDX-License-Identifier: GPL-2.0
# bcmdhd
 
MODULE_NAME := bcmdhd
CONFIG_BCMDHD ?= m
 
#CONFIG_BCMDHD_SDIO := y
#CONFIG_BCMDHD_PCIE := y
#CONFIG_BCMDHD_USB := y
 
#CONFIG_BCMDHD_OOB := y
#CONFIG_BCMDHD_CUSB := y
#CONFIG_BCMDHD_NO_POWER_OFF := y
CONFIG_BCMDHD_PROPTXSTATUS := y
CONFIG_BCMDHD_AG := y
CONFIG_DHD_USE_STATIC_BUF := y
#CONFIG_BCMDHD_STATIC_BUF_IN_DHD := y
CONFIG_BCMDHD_ANDROID_VERSION := 12
CONFIG_BCMDHD_AUTO_SELECT := y
CONFIG_BCMDHD_DEBUG := y
#CONFIG_BCMDHD_TIMESTAMP := y
#CONFIG_BCMDHD_WAPI := y
#CONFIG_BCMDHD_RANDOM_MAC := y
#CONFIG_BCMDHD_REQUEST_FW := y
#CONFIG_BCMDHD_MULTIPLE_DRIVER := y
#CONFIG_BCMDHD_DWDS := y
CONFIG_BCMDHD_TPUT := y
 
CONFIG_MACH_PLATFORM := y
#CONFIG_BCMDHD_DTS := y
 
DHDCFLAGS = -Wall -Wstrict-prototypes -Wno-date-time                      \
   -Wno-implicit-fallthrough -Wno-declaration-after-statement            \
   -Wno-vla -Wno-vla-extension                                           \
   -Dlinux -DLINUX -DBCMDRIVER                                           \
   -DBCMDONGLEHOST -DBCMDMA32 -DBCMFILEIMAGE                             \
   -DDHDTHREAD -DDHD_DEBUG -DSHOW_EVENTS -DGET_OTP_MAC_ENABLE            \
   -DWIFI_ACT_FRAME -DARP_OFFLOAD_SUPPORT -DSUPPORT_PM2_ONLY             \
   -DKEEP_ALIVE -DPKT_FILTER_SUPPORT -DDHDTCPACK_SUPPRESS                \
   -DDHD_DONOT_FORWARD_BCMEVENT_AS_NETWORK_PKT -DOEM_ANDROID             \
   -DMULTIPLE_SUPPLICANT -DTSQ_MULTIPLIER -DMFP -DDHD_8021X_DUMP         \
   -DPOWERUP_MAX_RETRY=0 -DIFACE_HANG_FORCE_DEV_CLOSE -DWAIT_DEQUEUE     \
   -DUSE_NEW_RSPEC_DEFS -DBCM_USE_PLATFORM_STRLCPY                       \
   -DWL_EXT_IAPSTA -DWL_ESCAN -DCCODE_LIST -DSUSPEND_EVENT               \
   -DEAPOL_RESEND -DEAPOL_DYNAMATIC_RESEND -DWL_SCHED_SCAN               \
   -DENABLE_INSMOD_NO_FW_LOAD -Wframe-larger-than=2048                   \
   -DSCHED_SCAN_DELAYED_WORK -DDHD_PNO_FLAG
 
DHDOFILES = aiutils.o siutils.o sbutils.o bcmutils.o bcmwifi_channels.o   \
   dhd_linux.o dhd_linux_platdev.o dhd_linux_sched.o dhd_pno.o           \
   dhd_common.o dhd_ip.o dhd_linux_wq.o dhd_custom_gpio.o                \
   bcmevent.o hndpmu.o linux_osl.o wldev_common.o wl_android.o           \
   dhd_debug_linux.o dhd_debug.o dhd_mschdbg.o dhd_dbg_ring.o            \
   hnd_pktq.o hnd_pktpool.o bcmxtlv.o linux_pkt.o bcmstdlib_s.o frag.o   \
   dhd_linux_exportfs.o dhd_linux_pktdump.o dhd_mschdbg.o                \
   dhd_config.o dhd_ccode.o wl_event.o wl_android_ext.o                  \
   wl_iapsta.o wl_escan.o
 
ifneq ($(CONFIG_WIRELESS_EXT),)
   DHDOFILES += wl_iw.o
   DHDCFLAGS += -DSOFTAP -DWL_WIRELESS_EXT -DUSE_IW
endif
ifneq ($(CONFIG_CFG80211),)
   DHDOFILES += wl_cfg80211.o wl_cfgscan.o wl_cfgp2p.o
   DHDOFILES += wl_linux_mon.o wl_cfg_btcoex.o wl_cfgvendor.o
   DHDOFILES += dhd_cfg80211.o wl_cfgvif.o
   DHDCFLAGS += -DWL_CFG80211 -DWLP2P -DWL_CFG80211_STA_EVENT
#    DHDCFLAGS += -DWL_IFACE_COMB_NUM_CHANNELS
   DHDCFLAGS += -DCUSTOM_PNO_EVENT_LOCK_xTIME=10
   DHDCFLAGS += -DWL_SUPPORT_AUTO_CHANNEL
   DHDCFLAGS += -DWL_SUPPORT_BACKPORTED_KPATCHES
   DHDCFLAGS += -DESCAN_RESULT_PATCH -DESCAN_BUF_OVERFLOW_MGMT
   DHDCFLAGS += -DVSDB -DWL_CFG80211_VSDB_PRIORITIZE_SCAN_REQUEST
   DHDCFLAGS += -DWLTDLS -DMIRACAST_AMPDU_SIZE=8
   DHDCFLAGS += -DWL_VIRTUAL_APSTA
   DHDCFLAGS += -DPNO_SUPPORT -DEXPLICIT_DISCIF_CLEANUP
   DHDCFLAGS += -DDHD_USE_SCAN_WAKELOCK
   DHDCFLAGS += -DSPECIFIC_MAC_GEN_SCHEME
   DHDCFLAGS += -DWL_IFACE_MGMT
   DHDCFLAGS += -DWLFBT -DWL_GCMP_SUPPORT
   DHDCFLAGS += -DWL_EXT_RECONNECT
   DHDCFLAGS += -DDHD_LOSSLESS_ROAMING
   DHDCFLAGS += -DGTK_OFFLOAD_SUPPORT
   DHDCFLAGS += -DRESTART_AP_WAR
#    DHDCFLAGS += -DWL_STATIC_IF
   DHDCFLAGS += -DWL_CLIENT_SAE -DWL_OWE
endif
 
#BCMDHD_SDIO
ifneq ($(CONFIG_BCMDHD_SDIO),)
BUS_TYPE := "sdio"
DHDCFLAGS += -DBCMSDIO -DMMC_SDIO_ABORT -DMMC_SW_RESET -DBCMLXSDMMC       \
   -DUSE_SDIOFIFO_IOVAR -DSDTEST                                         \
   -DBDC -DDHD_USE_IDLECOUNT -DCUSTOM_SDIO_F2_BLKSIZE=256                \
   -DBCMSDIOH_TXGLOM -DBCMSDIOH_TXGLOM_EXT -DRXFRAME_THREAD              \
   -DDHDENABLE_TAILPAD -DSUPPORT_P2P_GO_PS                               \
   -DBCMSDIO_RXLIM_POST -DBCMSDIO_TXSEQ_SYNC -DCONSOLE_DPC               \
   -DBCMSDIO_INTSTATUS_WAR
ifeq ($(CONFIG_BCMDHD_OOB),y)
#    DHDCFLAGS += -DOOB_INTR_ONLY -DCUSTOMER_OOB -DHW_OOB
ifeq ($(CONFIG_BCMDHD_DISABLE_WOWLAN),y)
   DHDCFLAGS += -DDISABLE_WOWLAN
endif
else
   DHDCFLAGS += -DSDIO_ISR_THREAD
endif
DHDOFILES += bcmsdh.o bcmsdh_linux.o bcmsdh_sdmmc.o bcmsdh_sdmmc_linux.o  \
   dhd_sdio.o dhd_cdc.o dhd_wlfc.o
endif
 
#BCMDHD_PCIE
ifneq ($(CONFIG_BCMDHD_PCIE),)
BUS_TYPE := "pcie"
DHDCFLAGS += -DPCIE_FULL_DONGLE -DBCMPCIE -DCUSTOM_DPC_PRIO_SETTING=-1    \
   -DDONGLE_ENABLE_ISOLATION
DHDCFLAGS += -DDHD_LB -DDHD_LB_RXP -DDHD_LB_STATS -DDHD_LB_TXP
#DHDCFLAGS += -DDHD_PKTID_AUDIT_ENABLED
DHDCFLAGS += -DINSMOD_FW_LOAD
DHDCFLAGS += -DCHIP_INTR_CONTROL
#DHDCFLAGS += -DDHD_PCIE_RUNTIMEPM -DMAX_IDLE_COUNT=11 -DCUSTOM_DHD_RUNTIME_MS=100
DHDCFLAGS += -DDHD_CONTROL_PCIE_ASPM_WIFI_TURNON
ifeq ($(CONFIG_BCMDHD_OOB),y)
#    DHDCFLAGS += -DCUSTOMER_OOB -DBCMPCIE_OOB_HOST_WAKE -DHW_OOB
endif
ifneq ($(CONFIG_PCI_MSI),)
   DHDCFLAGS += -DDHD_MSI_SUPPORT
endif
DHDOFILES += dhd_pcie.o dhd_pcie_linux.o pcie_core.o dhd_flowring.o       \
   dhd_msgbuf.o dhd_linux_lb.o
endif
 
#BCMDHD_USB
ifneq ($(CONFIG_BCMDHD_USB),)
BUS_TYPE := "usb"
DHDCFLAGS += -DUSBOS_TX_THREAD -DBCMDBUS -DBCMTRXV2 -DDBUS_USB_LOOPBACK   \
   -DBDC
DHDCFLAGS += -DBCM_REQUEST_FW -DEXTERNAL_FW_PATH
ifneq ($(CONFIG_BCMDHD_CUSB),)
   DHDCFLAGS += -DBCMUSBDEV_COMPOSITE
   CONFIG_BCMDHD_NO_POWER_OFF := y
endif
DHDOFILES += dbus.o dbus_usb.o dbus_usb_linux.o dhd_cdc.o dhd_wlfc.o
endif
 
ifeq ($(CONFIG_BCMDHD_NO_POWER_OFF),y)
   DHDCFLAGS += -DENABLE_INSMOD_NO_FW_LOAD
   DHDCFLAGS += -DENABLE_INSMOD_NO_POWER_OFF -DNO_POWER_OFF_AFTER_OPEN
endif
 
ifeq ($(CONFIG_BCMDHD_MULTIPLE_DRIVER),y)
   DHDCFLAGS += -DBCMDHD_MDRIVER
   DHDCFLAGS += -DBUS_TYPE=\"-$(BUS_TYPE)\"
   DHDCFLAGS += -DDHD_LOG_PREFIX=\"[dhd-$(BUS_TYPE)]\"
   MODULE_NAME := dhd$(BUS_TYPE)
else
   DHDCFLAGS += -DBUS_TYPE=\"\"
endif
 
ifeq ($(CONFIG_BCMDHD_TIMESTAMP),y)
   DHDCFLAGS += -DKERNEL_TIMESTAMP
   DHDCFLAGS += -DSYSTEM_TIMESTAMP
endif
 
#PROPTXSTATUS
ifeq ($(CONFIG_BCMDHD_PROPTXSTATUS),y)
ifneq ($(CONFIG_BCMDHD_USB),)
   DHDCFLAGS += -DPROP_TXSTATUS
endif
ifneq ($(CONFIG_BCMDHD_SDIO),)
   DHDCFLAGS += -DPROP_TXSTATUS -DPROPTX_MAXCOUNT
endif
ifneq ($(CONFIG_CFG80211),)
   DHDCFLAGS += -DPROP_TXSTATUS_VSDB
endif
endif
 
ifeq ($(CONFIG_64BIT),y)
    DHDCFLAGS := $(filter-out -DBCMDMA32,$(DHDCFLAGS))
    DHDCFLAGS += -DBCMDMA64OSL
endif
 
# For Android VTS
ifneq ($(CONFIG_BCMDHD_ANDROID_VERSION),)
   DHDCFLAGS += -DANDROID_VERSION=$(CONFIG_BCMDHD_ANDROID_VERSION)
   DHDCFLAGS += -DDHD_NOTIFY_MAC_CHANGED
ifneq ($(CONFIG_CFG80211),)
   DHDCFLAGS += -DGSCAN_SUPPORT -DRTT_SUPPORT
   DHDCFLAGS += -DWL_SAR_TX_POWER
#    DHDCFLAGS += -DLINKSTAT_SUPPORT
   DHDCFLAGS += -DCUSTOM_COUNTRY_CODE -DDHD_GET_VALID_CHANNELS
   DHDCFLAGS += -DDEBUGABILITY -DDBG_PKT_MON
#    DHDCFLAGS += -DDHD_LOG_DUMP
   DHDCFLAGS += -DDHD_FW_COREDUMP
   DHDCFLAGS += -DWL_P2P_RAND
   DHDCFLAGS += -DAPF -DNDO_CONFIG_SUPPORT -DRSSI_MONITOR_SUPPORT
   DHDCFLAGS += -DDHD_WAKE_STATUS -DWL_LATENCY_MODE
   DHDOFILES += dhd_rtt.o bcm_app_utils.o
endif
else
   DHDCFLAGS += -DANDROID_VERSION=0
endif
 
# For Debug
ifeq ($(CONFIG_BCMDHD_DEBUG),y)
   DHDCFLAGS += -DDHD_ARP_DUMP -DDHD_DHCP_DUMP -DDHD_ICMP_DUMP
   DHDCFLAGS += -DDHD_DNS_DUMP -DDHD_TRX_DUMP
   DHDCFLAGS += -DTPUT_MONITOR
#    DHDCFLAGS += -DSCAN_SUPPRESS -DBSSCACHE
   DHDCFLAGS += -DCHECK_DOWNLOAD_FW
   DHDCFLAGS += -DPKT_STATICS
   DHDCFLAGS += -DKSO_DEBUG
#    DHDCFLAGS += -DDHD_PKTDUMP_TOFW
endif
 
# For Debug2
ifeq ($(CONFIG_BCMDHD_DEBUG2),y)
   DHDCFLAGS += -DDEBUGFS_CFG80211
   DHDCFLAGS += -DSHOW_LOGTRACE -DDHD_LOG_DUMP -DDHD_FW_COREDUMP
   DHDCFLAGS += -DBCMASSERT_LOG -DSI_ERROR_ENFORCE
ifneq ($(CONFIG_BCMDHD_PCIE),)
   DHDCFLAGS += -DEWP_EDL
   DHDCFLAGS += -DDNGL_EVENT_SUPPORT
   DHDCFLAGS += -DDHD_SSSR_DUMP
endif
endif
 
# MESH support for kernel 3.10 later
ifeq ($(CONFIG_WL_MESH),y)
   DHDCFLAGS += -DWLMESH
ifneq ($(CONFIG_CFG80211),)
   DHDCFLAGS += -DWLMESH_CFG80211
endif
ifneq ($(CONFIG_BCMDHD_PCIE),)
   DHDCFLAGS += -DBCM_HOST_BUF -DDMA_HOST_BUFFER_LEN=0x80000
endif
   DHDCFLAGS += -DDHD_UPDATE_INTF_MAC
   DHDCFLAGS :=$(filter-out -DDHD_FW_COREDUMP,$(DHDCFLAGS))
   DHDCFLAGS :=$(filter-out -DWL_STATIC_IF,$(DHDCFLAGS))
endif
 
# EasyMesh
ifeq ($(CONFIG_BCMDHD_EASYMESH),y)
   DHDCFLAGS :=$(filter-out -DDHD_FW_COREDUMP,$(DHDCFLAGS))
   DHDCFLAGS :=$(filter-out -DDHD_LOG_DUMP,$(DHDCFLAGS))
   DHDCFLAGS += -DWLEASYMESH
   CONFIG_BCMDHD_DWDS := y
endif
 
# DWDS
ifeq ($(CONFIG_BCMDHD_DWDS),y)
ifneq ($(CONFIG_CFG80211),)
   DHDCFLAGS += -DWLDWDS -DFOURADDR_AUTO_BRG
ifneq ($(CONFIG_BCMDHD_SDIO),)
   DHDCFLAGS += -DRXF_DEQUEUE_ON_BUSY
endif
   DHDCFLAGS += -DWL_STATIC_IF
endif
endif
 
# CSI_SUPPORT
ifeq ($(CONFIG_CSI_SUPPORT),y)
   DHDCFLAGS += -DCSI_SUPPORT
   DHDOFILES += dhd_csi.o
endif
 
# For TPUT_IMPROVE
ifeq ($(CONFIG_BCMDHD_TPUT),y)
   DHDCFLAGS += -DDHD_TPUT_PATCH
   DHDCFLAGS += -DTCPACK_INFO_MAXNUM=10 -DTCPDATA_INFO_MAXNUM=10
ifneq ($(CONFIG_BCMDHD_SDIO),)
   DHDCFLAGS += -DDYNAMIC_MAX_HDR_READ
   DHDCFLAGS :=$(filter-out -DSDTEST,$(DHDCFLAGS))
endif
ifneq ($(CONFIG_BCMDHD_PCIE),)
   DHDCFLAGS += -DDHD_LB_TXP_DEFAULT_ENAB
   DHDCFLAGS += -DSET_RPS_CPUS -DSET_XPS_CPUS
   DHDCFLAGS += -DDHD_LB_PRIMARY_CPUS=0xF0 -DDHD_LB_SECONDARY_CPUS=0x0E
endif
endif
 
# For Zero configure
ifeq ($(CONFIG_BCMDHD_ZEROCONFIG),y)
   DHDCFLAGS += -DWL_EXT_GENL -DSENDPROB
   DHDOFILES += wl_ext_genl.o
endif
 
# For WAPI
ifeq ($(CONFIG_BCMDHD_WAPI),y)
   DHDCFLAGS += -DBCMWAPI_WPI -DBCMWAPI_WAI
ifeq ($(CONFIG_BCMDHD_ANDROID_VERSION),11)
   DHDCFLAGS += -DCFG80211_WAPI_BKPORT
endif
endif
 
# For scan random mac
ifneq ($(CONFIG_BCMDHD_RANDOM_MAC),)
ifneq ($(CONFIG_CFG80211),)
   DHDCFLAGS += -DSUPPORT_RANDOM_MAC_SCAN -DWL_USE_RANDOMIZED_SCAN
endif
endif
 
# For NAN
ifneq ($(CONFIG_BCMDHD_NAN),)
   DHDCFLAGS += -DWL_NAN -DWL_NAN_DISC_CACHE
   DHDOFILES += wl_cfgnan.o bcmbloom.o
endif
 
# For Module auto-selection
ifeq ($(CONFIG_BCMDHD_AUTO_SELECT),y)
   DHDCFLAGS += -DUPDATE_MODULE_NAME
ifneq ($(CONFIG_BCMDHD_SDIO),)
   DHDCFLAGS += -DGET_OTP_MODULE_NAME -DCOMPAT_OLD_MODULE
endif
endif
 
ifeq ($(CONFIG_AP6XXX),m)
   DHDCFLAGS += -DBCMDHD_MODULAR
endif
 
ifeq ($(CONFIG_MACH_PLATFORM),y)
   DHDOFILES += dhd_gpio.o
ifeq ($(CONFIG_BCMDHD_DTS),y)
   DHDCFLAGS += -DBCMDHD_DTS
endif
   DHDCFLAGS += -DCUSTOMER_HW -DDHD_OF_SUPPORT
   DHDCFLAGS += -DCUSTOMER_HW_ROCKCHIP
endif
 
ifeq ($(CONFIG_BCMDHD_REQUEST_FW),y)
   DHDCFLAGS += -DDHD_LINUX_STD_FW_API
   DHDCFLAGS += -DDHD_FW_NAME="\"fw_bcmdhd.bin\""
   DHDCFLAGS += -DDHD_NVRAM_NAME="\"nvram.txt\""
   DHDCFLAGS += -DDHD_CLM_NAME="\"clm_bcmdhd.blob\""
else
ifeq ($(CONFIG_BCMDHD_FW_PATH),)
   DHDCFLAGS += -DCONFIG_BCMDHD_FW_PATH="\"/system/etc/firmware/fw_bcmdhd.bin\""
   DHDCFLAGS += -DCONFIG_BCMDHD_NVRAM_PATH="\"/system/etc/firmware/nvram.txt\""
   DHDCFLAGS += -DCONFIG_BCMDHD_CLM_PATH="\"/system/etc/firmware/clm_bcmdhd.blob\""
endif
endif
 
ifeq ($(CONFIG_BCMDHD_AG),y)
   DHDCFLAGS += -DBAND_AG
endif
 
ifeq ($(CONFIG_DHD_USE_STATIC_BUF),y)
ifeq  ($(CONFIG_BCMDHD_STATIC_BUF_IN_DHD),y)
   DHDOFILES += dhd_static_buf.o
   DHDCFLAGS += -DDHD_STATIC_IN_DRIVER
else
   obj-m += dhd_static_buf.o
endif
   DHDCFLAGS += -DSTATIC_WL_PRIV_STRUCT -DENHANCED_STATIC_BUF
   DHDCFLAGS += -DCONFIG_DHD_USE_STATIC_BUF
   DHDCFLAGS += -DDHD_USE_STATIC_MEMDUMP
ifneq ($(CONFIG_BCMDHD_PCIE),)
   DHDCFLAGS += -DDHD_USE_STATIC_CTRLBUF
endif
endif
 
ARCH ?= arm64
BCMDHD_ROOT = $(src)
#$(warning "BCMDHD_ROOT=$(BCMDHD_ROOT)")
EXTRA_CFLAGS = $(DHDCFLAGS)
EXTRA_CFLAGS += -DDHD_COMPILED=\"$(BCMDHD_ROOT)\"
EXTRA_CFLAGS += -I$(srctree)/$(BCMDHD_ROOT)/include/ -I$(srctree)/$(BCMDHD_ROOT)/
EXTRA_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
ifeq ($(CONFIG_AP6XXX),m)
EXTRA_LDFLAGS += --strip-debug
endif
 
obj-$(CONFIG_AP6XXX) += $(MODULE_NAME).o
$(MODULE_NAME)-objs += $(DHDOFILES)
ccflags-y := $(EXTRA_CFLAGS)
 
all: bcmdhd_pcie bcmdhd_sdio bcmdhd_usb
 
bcmdhd_pcie:
   $(warning "building BCMDHD_PCIE..........")
   $(MAKE) -C $(LINUXDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules CONFIG_BCMDHD=m CONFIG_BCMDHD_PCIE=y
 
bcmdhd_sdio:
   $(warning "building BCMDHD_SDIO..........")
   $(MAKE) -C $(LINUXDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules CONFIG_BCMDHD=m CONFIG_BCMDHD_SDIO=y
 
bcmdhd_usb:
   $(warning "building BCMDHD_USB..........")
   $(MAKE) -C $(LINUXDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules CONFIG_BCMDHD=m CONFIG_BCMDHD_USB=y
 
clean:
   rm -rf *.o *.ko *.mod.c *~ .*.cmd *.o.cmd .*.o.cmd *.mod \
   Module.symvers modules.order .tmp_versions modules.builtin