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: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com> Reviewed-by: Hante Meuleman <meuleman@broadcom.com> Reviewed-by: Daniel (Deognyoun) Kim <dekim@broadcom.com> Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
fac7d2a3b8
commit
f1d56039b5
|
@ -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
|
||||||
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
|
||||||
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 += \
|
||||||
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 @@
|
||||||
#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 @@
|
||||||
#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 @@
|
||||||
|
|
||||||
|
|
||||||
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 */
|
||||||
|
|
Loading…
Reference in New Issue