Skip to content

Commit 607862a

Browse files
huanfeng-sfFu Wei
authored andcommitted
drivers/net/wireless/broadcom: Add WiFi/BT driver BCMDHD
1 parent 68acc53 commit 607862a

File tree

230 files changed

+293292
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

230 files changed

+293292
-0
lines changed

drivers/net/wireless/broadcom/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@ if WLAN_VENDOR_BROADCOM
1515
source "drivers/net/wireless/broadcom/b43/Kconfig"
1616
source "drivers/net/wireless/broadcom/b43legacy/Kconfig"
1717
source "drivers/net/wireless/broadcom/brcm80211/Kconfig"
18+
source "drivers/net/wireless/broadcom/bcmdhd/Kconfig"
1819

1920
endif # WLAN_VENDOR_BROADCOM

drivers/net/wireless/broadcom/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ obj-$(CONFIG_B43LEGACY) += b43legacy/
44

55
obj-$(CONFIG_BRCMFMAC) += brcm80211/
66
obj-$(CONFIG_BRCMSMAC) += brcm80211/
7+
obj-$(CONFIG_BCMDHD) += bcmdhd/
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
config BCMDHD
2+
tristate "Broadcom FullMAC wireless cards support"
3+
select PM_SLEEP
4+
select CFG80211
5+
select RFKILL
6+
help
7+
This module adds support for wireless adapters based on
8+
Broadcom FullMAC chipset.
9+
10+
config BCMDHD_FW_PATH
11+
depends on BCMDHD
12+
string "Firmware path"
13+
default "/system/etc/firmware/fw_bcmdhd.bin"
14+
help
15+
Path to the firmware file.
16+
17+
config BCMDHD_NVRAM_PATH
18+
depends on BCMDHD
19+
string "NVRAM path"
20+
default "/system/etc/firmware/nvram.txt"
21+
help
22+
Path to the calibration file.
23+
24+
config BCMDHD_WEXT
25+
bool "Enable WEXT support"
26+
depends on BCMDHD && CFG80211 = n
27+
select WIRELESS_EXT
28+
select WEXT_PRIV
29+
help
30+
Enables WEXT support
31+
32+
choice
33+
prompt "Enable Chip Interface"
34+
depends on BCMDHD
35+
help
36+
Enable Chip Interface.
37+
config BCMDHD_SDIO
38+
bool "SDIO bus interface support"
39+
depends on BCMDHD && MMC
40+
config BCMDHD_PCIE
41+
bool "PCIe bus interface support"
42+
depends on BCMDHD && PCI
43+
config BCMDHD_USB
44+
bool "USB bus interface support"
45+
depends on BCMDHD && USB
46+
endchoice
47+
48+
choice
49+
depends on BCMDHD && BCMDHD_SDIO
50+
prompt "Interrupt type"
51+
help
52+
Interrupt type
53+
config BCMDHD_OOB
54+
depends on BCMDHD && BCMDHD_SDIO
55+
bool "Out-of-Band Interrupt"
56+
help
57+
Interrupt from WL_HOST_WAKE.
58+
config BCMDHD_SDIO_IRQ
59+
depends on BCMDHD && BCMDHD_SDIO
60+
bool "In-Band Interrupt"
61+
help
62+
Interrupt from SDIO DAT[1]
63+
endchoice
Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
# bcmdhd
2+
3+
MODULE_NAME := bcmdhd
4+
#CONFIG_BCMDHD := m
5+
#CONFIG_BCMDHD_SDIO := y
6+
#CONFIG_BCMDHD_PCIE := y
7+
#CONFIG_BCMDHD_USB := y
8+
9+
#CONFIG_BCMDHD_OOB := y
10+
#CONFIG_BCMDHD_CUSB := y
11+
CONFIG_BCMDHD_PROPTXSTATUS := y
12+
#CONFIG_DHD_USE_STATIC_BUF := y
13+
#CONFIG_VTS_SUPPORT := y
14+
#CONFIG_BCMDHD_DEBUG := y
15+
16+
CONFIG_MACH_PLATFORM := y
17+
#CONFIG_BCMDHD_DTS := y
18+
19+
DHDCFLAGS = -Wall -Wstrict-prototypes -Dlinux -DBCMDRIVER \
20+
-DBCMDONGLEHOST -DBCMDMA32 -DBCMFILEIMAGE \
21+
-DDHDTHREAD -DDHD_DEBUG -DSHOW_EVENTS -DBCMDBG -DGET_OTP_MAC_ENABLE \
22+
-DWIFI_ACT_FRAME -DARP_OFFLOAD_SUPPORT -DSUPPORT_PM2_ONLY \
23+
-DKEEP_ALIVE -DPKT_FILTER_SUPPORT -DDHDTCPACK_SUPPRESS \
24+
-DDHD_DONOT_FORWARD_BCMEVENT_AS_NETWORK_PKT \
25+
-DMULTIPLE_SUPPLICANT -DTSQ_MULTIPLIER -DMFP -DDHD_8021X_DUMP \
26+
-DPOWERUP_MAX_RETRY=0 -DIFACE_HANG_FORCE_DEV_CLOSE -DWAIT_DEQUEUE \
27+
-DWL_EXT_IAPSTA -DWL_ESCAN -DCCODE_LIST \
28+
-DENABLE_INSMOD_NO_FW_LOAD \
29+
-Idrivers/net/wireless/broadcom/bcmdhd -Idrivers/net/wireless/broadcom/bcmdhd/include
30+
31+
DHDOFILES = aiutils.o siutils.o sbutils.o bcmutils.o bcmwifi_channels.o \
32+
dhd_linux.o dhd_linux_platdev.o dhd_linux_sched.o dhd_pno.o \
33+
dhd_common.o dhd_ip.o dhd_linux_wq.o dhd_custom_gpio.o \
34+
bcmevent.o hndpmu.o linux_osl.o wldev_common.o wl_android.o \
35+
dhd_debug_linux.o dhd_debug.o dhd_mschdbg.o dhd_dbg_ring.o \
36+
hnd_pktq.o hnd_pktpool.o bcmxtlv.o linux_pkt.o bcmstdlib_s.o frag.o \
37+
dhd_linux_exportfs.o dhd_linux_pktdump.o \
38+
dhd_config.o dhd_ccode.o wl_event.o wl_android_ext.o wl_escan.o
39+
40+
ifneq ($(CONFIG_WIRELESS_EXT),)
41+
DHDOFILES += wl_iw.o
42+
DHDCFLAGS += -DSOFTAP -DWL_WIRELESS_EXT -DUSE_IW
43+
endif
44+
ifneq ($(CONFIG_CFG80211),)
45+
DHDOFILES += wl_cfg80211.o wl_cfgscan.o wl_cfgp2p.o
46+
DHDOFILES += wl_linux_mon.o wl_cfg_btcoex.o wl_cfgvendor.o
47+
DHDOFILES += dhd_cfg80211.o
48+
DHDCFLAGS += -DWL_CFG80211 -DWLP2P -DWL_CFG80211_STA_EVENT
49+
DHDCFLAGS += -DWL_IFACE_COMB_NUM_CHANNELS
50+
DHDCFLAGS += -DCUSTOM_PNO_EVENT_LOCK_xTIME=10
51+
DHDCFLAGS += -DWL_SUPPORT_AUTO_CHANNEL
52+
DHDCFLAGS += -DWL_SUPPORT_BACKPORTED_KPATCHES
53+
DHDCFLAGS += -DESCAN_RESULT_PATCH -DESCAN_BUF_OVERFLOW_MGMT
54+
DHDCFLAGS += -DVSDB -DWL_CFG80211_VSDB_PRIORITIZE_SCAN_REQUEST
55+
DHDCFLAGS += -DWLTDLS -DMIRACAST_AMPDU_SIZE=8
56+
DHDCFLAGS += -DWL_VIRTUAL_APSTA
57+
DHDCFLAGS += -DPNO_SUPPORT -DEXPLICIT_DISCIF_CLEANUP
58+
DHDCFLAGS += -DDHD_USE_SCAN_WAKELOCK
59+
# DHDCFLAGS += -DWL_STATIC_IF
60+
# DHDCFLAGS += -DWL_CLIENT_SAE
61+
# DHDCFLAGS += -DWL_SAE
62+
endif
63+
64+
#BCMDHD_SDIO
65+
ifneq ($(CONFIG_BCMDHD_SDIO),)
66+
DHDCFLAGS += -DBCMSDIO -DMMC_SDIO_ABORT -DBCMLXSDMMC -DUSE_SDIOFIFO_IOVAR \
67+
-DSDTEST -DBDC -DDHD_USE_IDLECOUNT -DCUSTOM_SDIO_F2_BLKSIZE=256 \
68+
-DBCMSDIOH_TXGLOM -DBCMSDIOH_TXGLOM_EXT -DRXFRAME_THREAD \
69+
-DDHDENABLE_TAILPAD -DSUPPORT_P2P_GO_PS \
70+
-DBCMSDIO_RXLIM_POST -DCONSOLE_DPC
71+
ifeq ($(CONFIG_BCMDHD_OOB),y)
72+
DHDCFLAGS += -DOOB_INTR_ONLY -DCUSTOMER_OOB -DHW_OOB
73+
ifeq ($(CONFIG_BCMDHD_DISABLE_WOWLAN),y)
74+
DHDCFLAGS += -DDISABLE_WOWLAN
75+
endif
76+
else
77+
DHDCFLAGS += -DSDIO_ISR_THREAD
78+
endif
79+
DHDOFILES += bcmsdh.o bcmsdh_linux.o bcmsdh_sdmmc.o bcmsdh_sdmmc_linux.o \
80+
dhd_sdio.o dhd_cdc.o dhd_wlfc.o
81+
endif
82+
83+
#BCMDHD_PCIE
84+
ifneq ($(CONFIG_BCMDHD_PCIE),)
85+
DHDCFLAGS += -DPCIE_FULL_DONGLE -DBCMPCIE -DCUSTOM_DPC_PRIO_SETTING=-1 \
86+
-DDONGLE_ENABLE_ISOLATION
87+
DHDCFLAGS += -DDHD_LB -DDHD_LB_RXP -DDHD_LB_STATS -DDHD_LB_TXP
88+
DHDCFLAGS += -DDHD_PKTID_AUDIT_ENABLED
89+
ifeq ($(CONFIG_BCMDHD_OOB),y)
90+
DHDCFLAGS += -DCUSTOMER_OOB -DBCMPCIE_OOB_HOST_WAKE
91+
endif
92+
ifneq ($(CONFIG_PCI_MSI),)
93+
DHDCFLAGS += -DDHD_MSI_SUPPORT
94+
endif
95+
DHDOFILES += dhd_pcie.o dhd_pcie_linux.o pcie_core.o dhd_flowring.o \
96+
dhd_msgbuf.o dhd_linux_lb.o
97+
endif
98+
99+
#BCMDHD_USB
100+
ifneq ($(CONFIG_BCMDHD_USB),)
101+
DHDCFLAGS += -DUSBOS_TX_THREAD -DBCMDBUS -DBCMTRXV2 -DDBUS_USB_LOOPBACK \
102+
-DBDC
103+
DHDCFLAGS += -DBCM_REQUEST_FW -DEXTERNAL_FW_PATH
104+
#DHDCFLAGS :=$(filter-out -DENABLE_INSMOD_NO_FW_LOAD,$(DHDCFLAGS))
105+
ifneq ($(CONFIG_BCMDHD_CUSB),)
106+
DHDCFLAGS += -DBCMUSBDEV_COMPOSITE
107+
DHDCFLAGS :=$(filter-out -DENABLE_INSMOD_NO_FW_LOAD,$(DHDCFLAGS))
108+
endif
109+
DHDOFILES += dbus.o dbus_usb.o dbus_usb_linux.o dhd_cdc.o dhd_wlfc.o
110+
endif
111+
112+
#PROPTXSTATUS
113+
ifeq ($(CONFIG_BCMDHD_PROPTXSTATUS),y)
114+
ifneq ($(CONFIG_BCMDHD_USB),)
115+
DHDCFLAGS += -DPROP_TXSTATUS
116+
endif
117+
ifneq ($(CONFIG_BCMDHD_SDIO),)
118+
DHDCFLAGS += -DPROP_TXSTATUS -DPROPTX_MAXCOUNT
119+
endif
120+
ifneq ($(CONFIG_CFG80211),)
121+
DHDCFLAGS += -DPROP_TXSTATUS_VSDB
122+
endif
123+
endif
124+
125+
ifeq ($(CONFIG_64BIT),y)
126+
DHDCFLAGS := $(filter-out -DBCMDMA32,$(DHDCFLAGS))
127+
DHDCFLAGS += -DBCMDMA64OSL
128+
endif
129+
130+
#VTS_SUPPORT
131+
ifeq ($(CONFIG_VTS_SUPPORT),y)
132+
ifneq ($(CONFIG_CFG80211),)
133+
DHDCFLAGS += -DGSCAN_SUPPORT -DRTT_SUPPORT -DLINKSTAT_SUPPORT \
134+
-DCUSTOM_COUNTRY_CODE -DDHD_GET_VALID_CHANNELS \
135+
-DDEBUGABILITY -DDBG_PKT_MON -DDHD_LOG_DUMP -DDHD_FW_COREDUMP \
136+
-DAPF -DNDO_CONFIG_SUPPORT -DRSSI_MONITOR_SUPPORT -DDHD_WAKE_STATUS
137+
DHDOFILES += dhd_rtt.o bcm_app_utils.o
138+
endif
139+
endif
140+
141+
# For Debug
142+
ifneq ($(CONFIG_BCMDHD_DEBUG),)
143+
DHDCFLAGS += -DDEBUGFS_CFG80211
144+
DHDCFLAGS += -DSHOW_LOGTRACE -DDHD_LOG_DUMP -DDHD_FW_COREDUMP \
145+
-DBCMASSERT_LOG -DSI_ERROR_ENFORCE
146+
ifneq ($(CONFIG_BCMDHD_PCIE),)
147+
DHDCFLAGS += -DEWP_EDL
148+
DHDCFLAGS += -DDNGL_EVENT_SUPPORT
149+
DHDCFLAGS += -DDHD_SSSR_DUMP
150+
endif
151+
endif
152+
153+
# MESH support for kernel 3.10 later
154+
ifeq ($(CONFIG_WL_MESH),y)
155+
DHDCFLAGS += -DWLMESH
156+
ifneq ($(CONFIG_CFG80211),)
157+
DHDCFLAGS += -DWLMESH_CFG80211
158+
endif
159+
ifneq ($(CONFIG_BCMDHD_PCIE),)
160+
DHDCFLAGS += -DBCM_HOST_BUF -DDMA_HOST_BUFFER_LEN=0x80000
161+
endif
162+
DHDCFLAGS += -DDHD_UPDATE_INTF_MAC
163+
DHDCFLAGS :=$(filter-out -DDHD_FW_COREDUMP,$(DHDCFLAGS))
164+
DHDCFLAGS :=$(filter-out -DWL_STATIC_IF,$(DHDCFLAGS))
165+
endif
166+
167+
ifeq ($(CONFIG_WL_EASYMESH),y)
168+
DHDCFLAGS :=$(filter-out -DDHD_FW_COREDUMP,$(DHDCFLAGS))
169+
DHDCFLAGS :=$(filter-out -DDHD_LOG_DUMP,$(DHDCFLAGS))
170+
DHDCFLAGS += -DWLEASYMESH -DWL_STATIC_IF -DWLDWDS -DFOURADDR_AUTO_BRG
171+
endif
172+
173+
#CSI_SUPPORT
174+
ifneq ($(CONFIG_CSI_SUPPORT),)
175+
DHDCFLAGS += -DCSI_SUPPORT
176+
DHDOFILES += dhd_csi.o
177+
endif
178+
179+
obj-$(CONFIG_BCMDHD) += $(MODULE_NAME).o
180+
$(MODULE_NAME)-objs += $(DHDOFILES)
181+
182+
ifeq ($(CONFIG_MACH_PLATFORM),y)
183+
DHDOFILES += dhd_gpio.o
184+
ifeq ($(CONFIG_BCMDHD_DTS),y)
185+
DHDCFLAGS += -DCONFIG_DTS
186+
else
187+
DHDCFLAGS += -DCUSTOMER_HW -DDHD_OF_SUPPORT
188+
endif
189+
# DHDCFLAGS += -DBCMWAPI_WPI -DBCMWAPI_WAI
190+
endif
191+
192+
ifeq ($(CONFIG_BCMDHD_AG),y)
193+
DHDCFLAGS += -DBAND_AG
194+
endif
195+
196+
ifeq ($(CONFIG_DHD_USE_STATIC_BUF),y)
197+
obj-m += dhd_static_buf.o
198+
DHDCFLAGS += -DSTATIC_WL_PRIV_STRUCT -DENHANCED_STATIC_BUF
199+
DHDCFLAGS += -DCONFIG_DHD_USE_STATIC_BUF
200+
DHDCFLAGS += -DDHD_USE_STATIC_MEMDUMP
201+
endif
202+
203+
EXTRA_CFLAGS = $(DHDCFLAGS)
204+
ifeq ($(CONFIG_BCMDHD),m)
205+
EXTRA_LDFLAGS += --strip-debug
206+
endif

0 commit comments

Comments
 (0)