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
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.
-
-config BRCMDBG
- bool "Broadcom driver debug functions"
- default n
- depends on BRCM80211
- ---help---
- Selecting this enables additional code for debug purposes.
+endchoice
# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-# common flags
-subdir-ccflags-y := -DBCMDMA32
-subdir-ccflags-$(CONFIG_BRCMDBG) += -DBCMDBG -DBCMDBG_ASSERT
+# one and only common flag
+subdir-ccflags-y := -DBCMDBG
obj-$(CONFIG_BRCMFMAC) += brcmfmac/
obj-$(CONFIG_BRCMSMAC) += brcmsmac/
-DBCMSDIO \
-DBDC \
-DBRCM_FULLMAC \
+ -DDHD_DEBUG \
-DDHD_FIRSTREAD=64 \
-DDHD_SCHED \
-DDHD_SDALIGN=64 \
-DMMC_SDIO_ABORT \
-DPKT_FILTER_SUPPORT \
-DSHOW_EVENTS \
- -DTOE
-
-ccflags-$(CONFIG_BRCMDBG) += -DDHD_DEBUG
-
-ccflags-y += \
- -Idrivers/staging/brcm80211/brcmfmac \
+ -DTOE \
+ -Idrivers/staging/brcm80211/brcmfmac \
-Idrivers/staging/brcm80211/include \
-Idrivers/staging/brcm80211/util
# 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 \
eromptr = regs;
break;
+#ifdef BCMSDIO
case SPI_BUS:
case SDIO_BUS:
+#endif /* BCMSDIO */
eromptr = (u32 *)(unsigned long)erombase;
break;
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;
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)
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;
#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 */
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);
}
#ifdef BCMDBG_FORCEHT
- /* TODO: when is this flag used? what does it do? */
OR_REG(osh, &cc->clk_ctl_st, CCS_FORCEHT);
#endif
return st;
}
-void si_pmu_sprom_enable(si_t *sih, struct osl_info *osh, bool enable)
+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
{
chipcregs_t *cc;
uint origidx;
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 */