Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -27,10 +27,17 @@ config BRCMFMAC
	  one of the bus interface support. If you choose to build a module,
	  it'll be called brcmfmac.ko.

config BRCMFMAC_PROTO_BCDC
	bool

config BRCMFMAC_PROTO_MSGBUF
	bool

config BRCMFMAC_SDIO
	bool "SDIO bus interface support for FullMAC driver"
	depends on (MMC = y || MMC = BRCMFMAC)
	depends on BRCMFMAC
	select BRCMFMAC_PROTO_BCDC
	select FW_LOADER
	default y
	---help---
@@ -42,6 +49,7 @@ config BRCMFMAC_USB
	bool "USB bus interface support for FullMAC driver"
	depends on (USB = y || USB = BRCMFMAC)
	depends on BRCMFMAC
	select BRCMFMAC_PROTO_BCDC
	select FW_LOADER
	---help---
	  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"
	depends on BRCMFMAC
	depends on PCI
	depends on HAS_DMA
	select BRCMFMAC_PROTO_MSGBUF
	select FW_LOADER
	---help---
	  This option enables the PCIE bus interface support for Broadcom
+6 −4
Original line number Diff line number Diff line
@@ -30,16 +30,18 @@ brcmfmac-objs += \
		fwsignal.o \
		p2p.o \
		proto.o \
		bcdc.o \
		commonring.o \
		flowring.o \
		msgbuf.o \
		dhd_common.o \
		dhd_linux.o \
		firmware.o \
		feature.o \
		btcoex.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) += \
		dhd_sdio.o \
		bcmsdh.o
+5 −2
Original line number Diff line number Diff line
@@ -16,9 +16,12 @@
#ifndef BRCMFMAC_BCDC_H
#define BRCMFMAC_BCDC_H


#ifdef CONFIG_BRCMFMAC_PROTO_BCDC
int brcmf_proto_bcdc_attach(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 */
+9 −2
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
#ifndef 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_RXPOST_SUBMIT_MAX_ITEM	256
@@ -32,9 +33,15 @@


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);
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 */