Skip to content

Commit 71bb244

Browse files
Arend van Spriellinvjw
authored andcommitted
brcm80211: fmac: add USB support for bcm43235/6/8 chipsets
This patch extends the use of the brcmfmac driver with support for chipsets with a USB host interface. The first chipsets supported are the bcm43235, bcm43236, and bcm43238 for which firmware has been submitted. This driver change has been successfully built for x86, x86_64, ppc64, arm_le, and mips_be. It has been tested successfully on x86 and x86_64. Cc: M. Lambert <[email protected]> Reviewed-by: Pieter-Paul Giesberts <[email protected]> Reviewed-by: Franky (Zhenhui) Lin <[email protected]> Reviewed-by: Kan Yan <[email protected]> Reviewed-by: Alwin Beukers <[email protected]> Signed-off-by: Arend van Spriel <[email protected]> Signed-off-by: John W. Linville <[email protected]>
1 parent cf44066 commit 71bb244

File tree

7 files changed

+1812
-7
lines changed

7 files changed

+1812
-7
lines changed

drivers/net/wireless/brcm80211/Kconfig

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,25 @@ config BRCMFMAC
2626
it'll be called brcmfmac.ko.
2727

2828
config BRCMFMAC_SDIO
29-
bool "SDIO bus interface support for FullMAC"
29+
bool "SDIO bus interface support for FullMAC driver"
3030
depends on MMC
3131
depends on BRCMFMAC
3232
select FW_LOADER
3333
default y
3434
---help---
3535
This option enables the SDIO bus interface support for Broadcom
36-
FullMAC WLAN driver.
37-
Say Y if you want to use brcmfmac for a compatible SDIO interface
38-
wireless card.
36+
IEEE802.11n embedded FullMAC WLAN driver. Say Y if you want to
37+
use the driver for a SDIO wireless card.
38+
39+
config BRCMFMAC_USB
40+
bool "USB bus interface support for FullMAC driver"
41+
depends on USB
42+
depends on BRCMFMAC
43+
select FW_LOADER
44+
---help---
45+
This option enables the USB bus interface support for Broadcom
46+
IEEE802.11n embedded FullMAC WLAN driver. Say Y if you want to
47+
use the driver for an USB wireless card.
3948

4049
config BRCMDBG
4150
bool "Broadcom driver debug functions"

drivers/net/wireless/brcm80211/brcmfmac/Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ ccflags-y += \
1919
-Idrivers/net/wireless/brcm80211/brcmfmac \
2020
-Idrivers/net/wireless/brcm80211/include
2121

22+
ccflags-y += -D__CHECK_ENDIAN__
23+
2224
obj-$(CONFIG_BRCMFMAC) += brcmfmac.o
2325
brcmfmac-objs += \
2426
wl_cfg80211.o \
@@ -30,5 +32,5 @@ brcmfmac-$(CONFIG_BRCMFMAC_SDIO) += \
3032
bcmsdh.o \
3133
bcmsdh_sdmmc.o \
3234
sdio_chip.o
33-
34-
ccflags-y += -D__CHECK_ENDIAN__
35+
brcmfmac-$(CONFIG_BRCMFMAC_USB) += \
36+
usb.o

drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ struct dngl_stats {
4040
struct brcmf_bus {
4141
u8 type; /* bus type */
4242
union {
43-
/* pointer to sdio private structure */
4443
struct brcmf_sdio_dev *sdio;
44+
struct brcmf_usbdev *usb;
4545
} bus_priv;
4646
struct brcmf_pub *drvr; /* pointer to driver pub structure brcmf_pub */
4747
enum brcmf_bus_state state;
@@ -110,5 +110,9 @@ extern int brcmf_add_if(struct device *dev, int ifidx,
110110
extern void brcmf_sdio_exit(void);
111111
extern int brcmf_sdio_init(void);
112112
#endif
113+
#ifdef CONFIG_BRCMFMAC_USB
114+
extern void brcmf_usb_exit(void);
115+
extern int brcmf_usb_init(void);
116+
#endif
113117

114118
#endif /* _BRCMF_BUS_H_ */

drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1190,6 +1190,11 @@ static int __init brcmfmac_init(void)
11901190
if (ret)
11911191
goto fail;
11921192
#endif
1193+
#ifdef CONFIG_BRCMFMAC_USB
1194+
ret = brcmf_usb_init();
1195+
if (ret)
1196+
goto fail;
1197+
#endif
11931198

11941199
fail:
11951200
return ret;
@@ -1200,6 +1205,9 @@ static void __exit brcmfmac_exit(void)
12001205
#ifdef CONFIG_BRCMFMAC_SDIO
12011206
brcmf_sdio_exit();
12021207
#endif
1208+
#ifdef CONFIG_BRCMFMAC_USB
1209+
brcmf_usb_exit();
1210+
#endif
12031211
}
12041212

12051213
module_init(brcmfmac_init);

0 commit comments

Comments
 (0)