Commit ead12564 authored by Arend van Spriel's avatar Arend van Spriel Committed by Greg Kroah-Hartman

staging: brcm80211: assure common sources are truly common

Common code for brcm80211 drivers was resulting in different compiled
object files for the drivers due to compilation flags. This has been
aligned so that they are resulting in same object files. Kconfig now
allows both drivers to be build simultaneously.
Reviewed-by: default avatarBrett Rudley <brudley@broadcom.com>
Reviewed-by: default avatarHenry Ptasinski <henryp@broadcom.com>
Reviewed-by: default avatarRoland Vossen <rvossen@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 7d7854b4
......@@ -2,12 +2,6 @@ menuconfig BRCM80211
tristate "Broadcom IEEE802.11n WLAN drivers"
depends on WLAN
choice
prompt "Broadcom IEEE802.11n driver style"
depends on BRCM80211
help
Select the appropriate driver style from the list below.
config BRCMSMAC
bool "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver"
depends on PCI
......@@ -30,4 +24,10 @@ config BRCMFMAC
Broadcom IEEE802.11n FullMAC chipsets. This driver uses the kernel's
wireless extensions subsystem. If you choose to build a module,
it'll be called brcmfmac.ko.
endchoice
config BRCMDBG
bool "Broadcom driver debug functions"
default n
depends on BRCM80211
---help---
Selecting this enables additional code for debug purposes.
......@@ -15,8 +15,9 @@
# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# one and only common flag
subdir-ccflags-y := -DBCMDBG
# common flags
subdir-ccflags-y := -DBCMDMA32
subdir-ccflags-$(CONFIG_BRCMDBG) += -DBCMDBG -DBCMDBG_ASSERT
obj-$(CONFIG_BRCMFMAC) += brcmfmac/
obj-$(CONFIG_BRCMSMAC) += brcmsmac/
......@@ -22,7 +22,6 @@ ccflags-y := \
-DBCMSDIO \
-DBDC \
-DBRCM_FULLMAC \
-DDHD_DEBUG \
-DDHD_FIRSTREAD=64 \
-DDHD_SCHED \
-DDHD_SDALIGN=64 \
......@@ -31,8 +30,12 @@ ccflags-y := \
-DMMC_SDIO_ABORT \
-DPKT_FILTER_SUPPORT \
-DSHOW_EVENTS \
-DTOE \
-Idrivers/staging/brcm80211/brcmfmac \
-DTOE
ccflags-$(CONFIG_BRCMDBG) += -DDHD_DEBUG
ccflags-y += \
-Idrivers/staging/brcm80211/brcmfmac \
-Idrivers/staging/brcm80211/include \
-Idrivers/staging/brcm80211/util
......
......@@ -15,14 +15,13 @@
# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
ccflags-y := \
ccflags-y := \
-DWLC_HIGH \
-DWLC_LOW \
-DSTA \
-DWME \
-DWL11N \
-DDBAND \
-DBCMDMA32 \
-DBCMNVRAMR \
-Idrivers/staging/brcm80211/brcmsmac \
-Idrivers/staging/brcm80211/brcmsmac/phy \
......
......@@ -131,10 +131,8 @@ void ai_scan(si_t *sih, void *regs, uint devid)
eromptr = regs;
break;
#ifdef BCMSDIO
case SPI_BUS:
case SDIO_BUS:
#endif /* BCMSDIO */
eromptr = (u32 *)(unsigned long)erombase;
break;
......@@ -355,10 +353,8 @@ void *ai_setcoreidx(si_t *sih, uint coreidx)
pci_write_config_dword(sii->osh->pdev, PCI_BAR0_WIN2, wrap);
break;
#ifdef BCMSDIO
case SPI_BUS:
case SDIO_BUS:
#endif /* BCMSDIO */
sii->curmap = regs = (void *)(unsigned long)addr;
sii->curwrap = (void *)(unsigned long)wrap;
break;
......
......@@ -214,6 +214,7 @@ void pktq_flush(struct osl_info *osh, struct pktq *pq, bool dir)
ASSERT(pq->len == 0);
}
#else /* !BRCM_FULLMAC */
/* TODO: can we remove callback for softmac? */
void
pktq_pflush(struct osl_info *osh, struct pktq *pq, int prec, bool dir,
ifpkt_cb_t fn, int arg)
......
......@@ -2329,6 +2329,7 @@ static int BCMFASTPATH dma64_txfast(dma_info_t *di, struct sk_buff *p0,
data = p->data;
len = p->len;
#ifdef BCM_DMAPAD
/* TODO: when is this used? */
len += PKTDMAPAD(di->osh, p);
#endif /* BCM_DMAPAD */
next = p->next;
......
......@@ -32,6 +32,10 @@
#ifdef BCMDBG
#define PMU_MSG(args) printf args
/* debug-only definitions */
/* #define BCMDBG_FORCEHT */
/* #define CHIPC_UART_ALWAYS_ON */
#else
#define PMU_MSG(args)
#endif /* BCMDBG */
......@@ -1466,6 +1470,7 @@ si_pmu1_cpuclk0(si_t *sih, struct osl_info *osh, chipcregs_t *cc)
m1div = (tmp & PMU1_PLL0_PC1_M1DIV_MASK) >> PMU1_PLL0_PC1_M1DIV_SHIFT;
#ifdef BCMDBG
/* TODO: seems more like a workaround */
/* Read p2div/p1div from pllcontrol[0] */
W_REG(osh, &cc->pllcontrol_addr, PMU1_PLL0_PLLCTL0);
tmp = R_REG(osh, &cc->pllcontrol_data);
......@@ -1550,6 +1555,7 @@ void si_pmu_pll_init(si_t *sih, struct osl_info *osh, uint xtalfreq)
}
#ifdef BCMDBG_FORCEHT
/* TODO: when is this flag used? what does it do? */
OR_REG(osh, &cc->clk_ctl_st, CCS_FORCEHT);
#endif
......@@ -2504,12 +2510,7 @@ bool si_pmu_is_otp_powered(si_t *sih, struct osl_info *osh)
return st;
}
void
#if defined(BCMDBG)
si_pmu_sprom_enable(si_t *sih, struct osl_info *osh, bool enable)
#else
si_pmu_sprom_enable(si_t *sih, struct osl_info *osh, bool enable)
#endif
void si_pmu_sprom_enable(si_t *sih, struct osl_info *osh, bool enable)
{
chipcregs_t *cc;
uint origidx;
......@@ -2531,6 +2532,7 @@ void si_pmu_chip_init(si_t *sih, struct osl_info *osh)
ASSERT(sih->cccaps & CC_CAP_PMU);
#ifdef CHIPC_UART_ALWAYS_ON
/* TODO: are these special for debugging purposes? */
si_corereg(sih, SI_CC_IDX, offsetof(chipcregs_t, clk_ctl_st),
CCS_FORCEALP, CCS_FORCEALP);
#endif /* CHIPC_UART_ALWAYS_ON */
......
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