Commit f1d56039 authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville

brcmfmac: conditionally compile firmware protocol source code

The host-interface can select which protocol implementation it
needs. Selecting PCIe will include the msgbuf protocol and selecting
USB and/or SDIO will include the bcdc protocol. The PCIe kconfig
option assures the dependencies for msgbuf are met, ie. HAS_DMA.
Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: default avatarFranky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: default avatarHante Meuleman <meuleman@broadcom.com>
Reviewed-by: default avatarDaniel (Deognyoun) Kim <dekim@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent fac7d2a3
...@@ -27,10 +27,17 @@ config BRCMFMAC ...@@ -27,10 +27,17 @@ config BRCMFMAC
one of the bus interface support. If you choose to build a module, one of the bus interface support. If you choose to build a module,
it'll be called brcmfmac.ko. it'll be called brcmfmac.ko.
config BRCMFMAC_PROTO_BCDC
bool
config BRCMFMAC_PROTO_MSGBUF
bool
config BRCMFMAC_SDIO config BRCMFMAC_SDIO
bool "SDIO bus interface support for FullMAC driver" bool "SDIO bus interface support for FullMAC driver"
depends on (MMC = y || MMC = BRCMFMAC) depends on (MMC = y || MMC = BRCMFMAC)
depends on BRCMFMAC depends on BRCMFMAC
select BRCMFMAC_PROTO_BCDC
select FW_LOADER select FW_LOADER
default y default y
---help--- ---help---
...@@ -42,6 +49,7 @@ config BRCMFMAC_USB ...@@ -42,6 +49,7 @@ config BRCMFMAC_USB
bool "USB bus interface support for FullMAC driver" bool "USB bus interface support for FullMAC driver"
depends on (USB = y || USB = BRCMFMAC) depends on (USB = y || USB = BRCMFMAC)
depends on BRCMFMAC depends on BRCMFMAC
select BRCMFMAC_PROTO_BCDC
select FW_LOADER select FW_LOADER
---help--- ---help---
This option enables the USB bus interface support for Broadcom This option enables the USB bus interface support for Broadcom
...@@ -52,6 +60,8 @@ config BRCMFMAC_PCIE ...@@ -52,6 +60,8 @@ config BRCMFMAC_PCIE
bool "PCIE bus interface support for FullMAC driver" bool "PCIE bus interface support for FullMAC driver"
depends on BRCMFMAC depends on BRCMFMAC
depends on PCI depends on PCI
depends on HAS_DMA
select BRCMFMAC_PROTO_MSGBUF
select FW_LOADER select FW_LOADER
---help--- ---help---
This option enables the PCIE bus interface support for Broadcom This option enables the PCIE bus interface support for Broadcom
......
...@@ -30,16 +30,18 @@ brcmfmac-objs += \ ...@@ -30,16 +30,18 @@ brcmfmac-objs += \
fwsignal.o \ fwsignal.o \
p2p.o \ p2p.o \
proto.o \ proto.o \
bcdc.o \
commonring.o \
flowring.o \
msgbuf.o \
dhd_common.o \ dhd_common.o \
dhd_linux.o \ dhd_linux.o \
firmware.o \ firmware.o \
feature.o \ feature.o \
btcoex.o \ btcoex.o \
vendor.o vendor.o
brcmfmac-$(CONFIG_BRCMFMAC_PROTO_BCDC) += \
bcdc.o
brcmfmac-$(CONFIG_BRCMFMAC_PROTO_MSGBUF) += \
commonring.o \
flowring.o \
msgbuf.o
brcmfmac-$(CONFIG_BRCMFMAC_SDIO) += \ brcmfmac-$(CONFIG_BRCMFMAC_SDIO) += \
dhd_sdio.o \ dhd_sdio.o \
bcmsdh.o bcmsdh.o
......
...@@ -16,9 +16,12 @@ ...@@ -16,9 +16,12 @@
#ifndef BRCMFMAC_BCDC_H #ifndef BRCMFMAC_BCDC_H
#define BRCMFMAC_BCDC_H #define BRCMFMAC_BCDC_H
#ifdef CONFIG_BRCMFMAC_PROTO_BCDC
int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr); int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr);
void brcmf_proto_bcdc_detach(struct brcmf_pub *drvr); void brcmf_proto_bcdc_detach(struct brcmf_pub *drvr);
#else
static inline int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr) { return 0; }
static inline void brcmf_proto_bcdc_detach(struct brcmf_pub *drvr) {}
#endif
#endif /* BRCMFMAC_BCDC_H */ #endif /* BRCMFMAC_BCDC_H */
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#ifndef BRCMFMAC_MSGBUF_H #ifndef BRCMFMAC_MSGBUF_H
#define BRCMFMAC_MSGBUF_H #define BRCMFMAC_MSGBUF_H
#ifdef CONFIG_BRCMFMAC_PROTO_MSGBUF
#define BRCMF_H2D_MSGRING_CONTROL_SUBMIT_MAX_ITEM 20 #define BRCMF_H2D_MSGRING_CONTROL_SUBMIT_MAX_ITEM 20
#define BRCMF_H2D_MSGRING_RXPOST_SUBMIT_MAX_ITEM 256 #define BRCMF_H2D_MSGRING_RXPOST_SUBMIT_MAX_ITEM 256
...@@ -32,9 +33,15 @@ ...@@ -32,9 +33,15 @@
int brcmf_proto_msgbuf_rx_trigger(struct device *dev); int brcmf_proto_msgbuf_rx_trigger(struct device *dev);
void brcmf_msgbuf_delete_flowring(struct brcmf_pub *drvr, u8 flowid);
int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr); int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr);
void brcmf_proto_msgbuf_detach(struct brcmf_pub *drvr); void brcmf_proto_msgbuf_detach(struct brcmf_pub *drvr);
void brcmf_msgbuf_delete_flowring(struct brcmf_pub *drvr, u8 flowid); #else
static inline int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr)
{
return 0;
}
static inline void brcmf_proto_msgbuf_detach(struct brcmf_pub *drvr) {}
#endif
#endif /* BRCMFMAC_MSGBUF_H */ #endif /* BRCMFMAC_MSGBUF_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment