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 Original line Diff line number Diff line
@@ -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
+6 −4
Original line number Original line Diff line number Diff line
@@ -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
+5 −2
Original line number Original line Diff line number Diff line
@@ -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 */
+9 −2
Original line number Original line Diff line number Diff line
@@ -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 */