aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArend van Spriel <arend@broadcom.com>2011-01-23 02:30:38 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2011-01-25 05:35:03 -0500
commitead1256410cb5a79fd3615ba70ba56779c5d21e2 (patch)
treedf12ee6e54cf7e708d464c0088651d4eca0303e4
parent7d7854b4da52a1e40a41d26048f7940e4eb7193b (diff)
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: Brett Rudley <brudley@broadcom.com> Reviewed-by: Henry Ptasinski <henryp@broadcom.com> Reviewed-by: Roland Vossen <rvossen@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/brcm80211/Kconfig14
-rw-r--r--drivers/staging/brcm80211/Makefile5
-rw-r--r--drivers/staging/brcm80211/brcmfmac/Makefile9
-rw-r--r--drivers/staging/brcm80211/brcmsmac/Makefile3
-rw-r--r--drivers/staging/brcm80211/util/aiutils.c4
-rw-r--r--drivers/staging/brcm80211/util/bcmutils.c1
-rw-r--r--drivers/staging/brcm80211/util/hnddma.c1
-rw-r--r--drivers/staging/brcm80211/util/hndpmu.c14
8 files changed, 27 insertions, 24 deletions
diff --git a/drivers/staging/brcm80211/Kconfig b/drivers/staging/brcm80211/Kconfig
index 3208352465af..b6f86354b69f 100644
--- a/drivers/staging/brcm80211/Kconfig
+++ b/drivers/staging/brcm80211/Kconfig
@@ -2,12 +2,6 @@ menuconfig BRCM80211
2 tristate "Broadcom IEEE802.11n WLAN drivers" 2 tristate "Broadcom IEEE802.11n WLAN drivers"
3 depends on WLAN 3 depends on WLAN
4 4
5choice
6 prompt "Broadcom IEEE802.11n driver style"
7 depends on BRCM80211
8 help
9 Select the appropriate driver style from the list below.
10
11config BRCMSMAC 5config BRCMSMAC
12 bool "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver" 6 bool "Broadcom IEEE802.11n PCIe SoftMAC WLAN driver"
13 depends on PCI 7 depends on PCI
@@ -30,4 +24,10 @@ config BRCMFMAC
30 Broadcom IEEE802.11n FullMAC chipsets. This driver uses the kernel's 24 Broadcom IEEE802.11n FullMAC chipsets. This driver uses the kernel's
31 wireless extensions subsystem. If you choose to build a module, 25 wireless extensions subsystem. If you choose to build a module,
32 it'll be called brcmfmac.ko. 26 it'll be called brcmfmac.ko.
33endchoice 27
28config BRCMDBG
29 bool "Broadcom driver debug functions"
30 default n
31 depends on BRCM80211
32 ---help---
33 Selecting this enables additional code for debug purposes.
diff --git a/drivers/staging/brcm80211/Makefile b/drivers/staging/brcm80211/Makefile
index 5caaea597d50..b6d9afc3669d 100644
--- a/drivers/staging/brcm80211/Makefile
+++ b/drivers/staging/brcm80211/Makefile
@@ -15,8 +15,9 @@
15# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 15# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
16# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 17
18# one and only common flag 18# common flags
19subdir-ccflags-y := -DBCMDBG 19subdir-ccflags-y := -DBCMDMA32
20subdir-ccflags-$(CONFIG_BRCMDBG) += -DBCMDBG -DBCMDBG_ASSERT
20 21
21obj-$(CONFIG_BRCMFMAC) += brcmfmac/ 22obj-$(CONFIG_BRCMFMAC) += brcmfmac/
22obj-$(CONFIG_BRCMSMAC) += brcmsmac/ 23obj-$(CONFIG_BRCMSMAC) += brcmsmac/
diff --git a/drivers/staging/brcm80211/brcmfmac/Makefile b/drivers/staging/brcm80211/brcmfmac/Makefile
index b3931b03f8d7..aa7f72d33b3f 100644
--- a/drivers/staging/brcm80211/brcmfmac/Makefile
+++ b/drivers/staging/brcm80211/brcmfmac/Makefile
@@ -22,7 +22,6 @@ ccflags-y := \
22 -DBCMSDIO \ 22 -DBCMSDIO \
23 -DBDC \ 23 -DBDC \
24 -DBRCM_FULLMAC \ 24 -DBRCM_FULLMAC \
25 -DDHD_DEBUG \
26 -DDHD_FIRSTREAD=64 \ 25 -DDHD_FIRSTREAD=64 \
27 -DDHD_SCHED \ 26 -DDHD_SCHED \
28 -DDHD_SDALIGN=64 \ 27 -DDHD_SDALIGN=64 \
@@ -31,8 +30,12 @@ ccflags-y := \
31 -DMMC_SDIO_ABORT \ 30 -DMMC_SDIO_ABORT \
32 -DPKT_FILTER_SUPPORT \ 31 -DPKT_FILTER_SUPPORT \
33 -DSHOW_EVENTS \ 32 -DSHOW_EVENTS \
34 -DTOE \ 33 -DTOE
35 -Idrivers/staging/brcm80211/brcmfmac \ 34
35ccflags-$(CONFIG_BRCMDBG) += -DDHD_DEBUG
36
37ccflags-y += \
38 -Idrivers/staging/brcm80211/brcmfmac \
36 -Idrivers/staging/brcm80211/include \ 39 -Idrivers/staging/brcm80211/include \
37 -Idrivers/staging/brcm80211/util 40 -Idrivers/staging/brcm80211/util
38 41
diff --git a/drivers/staging/brcm80211/brcmsmac/Makefile b/drivers/staging/brcm80211/brcmsmac/Makefile
index ea297023c614..5da39be0f769 100644
--- a/drivers/staging/brcm80211/brcmsmac/Makefile
+++ b/drivers/staging/brcm80211/brcmsmac/Makefile
@@ -15,14 +15,13 @@
15# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 15# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
16# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 17
18ccflags-y := \ 18ccflags-y := \
19 -DWLC_HIGH \ 19 -DWLC_HIGH \
20 -DWLC_LOW \ 20 -DWLC_LOW \
21 -DSTA \ 21 -DSTA \
22 -DWME \ 22 -DWME \
23 -DWL11N \ 23 -DWL11N \
24 -DDBAND \ 24 -DDBAND \
25 -DBCMDMA32 \
26 -DBCMNVRAMR \ 25 -DBCMNVRAMR \
27 -Idrivers/staging/brcm80211/brcmsmac \ 26 -Idrivers/staging/brcm80211/brcmsmac \
28 -Idrivers/staging/brcm80211/brcmsmac/phy \ 27 -Idrivers/staging/brcm80211/brcmsmac/phy \
diff --git a/drivers/staging/brcm80211/util/aiutils.c b/drivers/staging/brcm80211/util/aiutils.c
index b6e7a9e97379..e4842c12ccf7 100644
--- a/drivers/staging/brcm80211/util/aiutils.c
+++ b/drivers/staging/brcm80211/util/aiutils.c
@@ -131,10 +131,8 @@ void ai_scan(si_t *sih, void *regs, uint devid)
131 eromptr = regs; 131 eromptr = regs;
132 break; 132 break;
133 133
134#ifdef BCMSDIO
135 case SPI_BUS: 134 case SPI_BUS:
136 case SDIO_BUS: 135 case SDIO_BUS:
137#endif /* BCMSDIO */
138 eromptr = (u32 *)(unsigned long)erombase; 136 eromptr = (u32 *)(unsigned long)erombase;
139 break; 137 break;
140 138
@@ -355,10 +353,8 @@ void *ai_setcoreidx(si_t *sih, uint coreidx)
355 pci_write_config_dword(sii->osh->pdev, PCI_BAR0_WIN2, wrap); 353 pci_write_config_dword(sii->osh->pdev, PCI_BAR0_WIN2, wrap);
356 break; 354 break;
357 355
358#ifdef BCMSDIO
359 case SPI_BUS: 356 case SPI_BUS:
360 case SDIO_BUS: 357 case SDIO_BUS:
361#endif /* BCMSDIO */
362 sii->curmap = regs = (void *)(unsigned long)addr; 358 sii->curmap = regs = (void *)(unsigned long)addr;
363 sii->curwrap = (void *)(unsigned long)wrap; 359 sii->curwrap = (void *)(unsigned long)wrap;
364 break; 360 break;
diff --git a/drivers/staging/brcm80211/util/bcmutils.c b/drivers/staging/brcm80211/util/bcmutils.c
index 258fd90d9152..a6ffb14323a0 100644
--- a/drivers/staging/brcm80211/util/bcmutils.c
+++ b/drivers/staging/brcm80211/util/bcmutils.c
@@ -214,6 +214,7 @@ void pktq_flush(struct osl_info *osh, struct pktq *pq, bool dir)
214 ASSERT(pq->len == 0); 214 ASSERT(pq->len == 0);
215} 215}
216#else /* !BRCM_FULLMAC */ 216#else /* !BRCM_FULLMAC */
217/* TODO: can we remove callback for softmac? */
217void 218void
218pktq_pflush(struct osl_info *osh, struct pktq *pq, int prec, bool dir, 219pktq_pflush(struct osl_info *osh, struct pktq *pq, int prec, bool dir,
219 ifpkt_cb_t fn, int arg) 220 ifpkt_cb_t fn, int arg)
diff --git a/drivers/staging/brcm80211/util/hnddma.c b/drivers/staging/brcm80211/util/hnddma.c
index d08869239d5b..92b2c8074aab 100644
--- a/drivers/staging/brcm80211/util/hnddma.c
+++ b/drivers/staging/brcm80211/util/hnddma.c
@@ -2329,6 +2329,7 @@ static int BCMFASTPATH dma64_txfast(dma_info_t *di, struct sk_buff *p0,
2329 data = p->data; 2329 data = p->data;
2330 len = p->len; 2330 len = p->len;
2331#ifdef BCM_DMAPAD 2331#ifdef BCM_DMAPAD
2332 /* TODO: when is this used? */
2332 len += PKTDMAPAD(di->osh, p); 2333 len += PKTDMAPAD(di->osh, p);
2333#endif /* BCM_DMAPAD */ 2334#endif /* BCM_DMAPAD */
2334 next = p->next; 2335 next = p->next;
diff --git a/drivers/staging/brcm80211/util/hndpmu.c b/drivers/staging/brcm80211/util/hndpmu.c
index 49d19a121f7b..c8af68f39bd4 100644
--- a/drivers/staging/brcm80211/util/hndpmu.c
+++ b/drivers/staging/brcm80211/util/hndpmu.c
@@ -32,6 +32,10 @@
32 32
33#ifdef BCMDBG 33#ifdef BCMDBG
34#define PMU_MSG(args) printf args 34#define PMU_MSG(args) printf args
35
36/* debug-only definitions */
37/* #define BCMDBG_FORCEHT */
38/* #define CHIPC_UART_ALWAYS_ON */
35#else 39#else
36#define PMU_MSG(args) 40#define PMU_MSG(args)
37#endif /* BCMDBG */ 41#endif /* BCMDBG */
@@ -1466,6 +1470,7 @@ si_pmu1_cpuclk0(si_t *sih, struct osl_info *osh, chipcregs_t *cc)
1466 m1div = (tmp & PMU1_PLL0_PC1_M1DIV_MASK) >> PMU1_PLL0_PC1_M1DIV_SHIFT; 1470 m1div = (tmp & PMU1_PLL0_PC1_M1DIV_MASK) >> PMU1_PLL0_PC1_M1DIV_SHIFT;
1467 1471
1468#ifdef BCMDBG 1472#ifdef BCMDBG
1473 /* TODO: seems more like a workaround */
1469 /* Read p2div/p1div from pllcontrol[0] */ 1474 /* Read p2div/p1div from pllcontrol[0] */
1470 W_REG(osh, &cc->pllcontrol_addr, PMU1_PLL0_PLLCTL0); 1475 W_REG(osh, &cc->pllcontrol_addr, PMU1_PLL0_PLLCTL0);
1471 tmp = R_REG(osh, &cc->pllcontrol_data); 1476 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)
1550 } 1555 }
1551 1556
1552#ifdef BCMDBG_FORCEHT 1557#ifdef BCMDBG_FORCEHT
1558 /* TODO: when is this flag used? what does it do? */
1553 OR_REG(osh, &cc->clk_ctl_st, CCS_FORCEHT); 1559 OR_REG(osh, &cc->clk_ctl_st, CCS_FORCEHT);
1554#endif 1560#endif
1555 1561
@@ -2504,12 +2510,7 @@ bool si_pmu_is_otp_powered(si_t *sih, struct osl_info *osh)
2504 return st; 2510 return st;
2505} 2511}
2506 2512
2507void 2513void si_pmu_sprom_enable(si_t *sih, struct osl_info *osh, bool enable)
2508#if defined(BCMDBG)
2509si_pmu_sprom_enable(si_t *sih, struct osl_info *osh, bool enable)
2510#else
2511si_pmu_sprom_enable(si_t *sih, struct osl_info *osh, bool enable)
2512#endif
2513{ 2514{
2514 chipcregs_t *cc; 2515 chipcregs_t *cc;
2515 uint origidx; 2516 uint origidx;
@@ -2531,6 +2532,7 @@ void si_pmu_chip_init(si_t *sih, struct osl_info *osh)
2531 ASSERT(sih->cccaps & CC_CAP_PMU); 2532 ASSERT(sih->cccaps & CC_CAP_PMU);
2532 2533
2533#ifdef CHIPC_UART_ALWAYS_ON 2534#ifdef CHIPC_UART_ALWAYS_ON
2535 /* TODO: are these special for debugging purposes? */
2534 si_corereg(sih, SI_CC_IDX, offsetof(chipcregs_t, clk_ctl_st), 2536 si_corereg(sih, SI_CC_IDX, offsetof(chipcregs_t, clk_ctl_st),
2535 CCS_FORCEALP, CCS_FORCEALP); 2537 CCS_FORCEALP, CCS_FORCEALP);
2536#endif /* CHIPC_UART_ALWAYS_ON */ 2538#endif /* CHIPC_UART_ALWAYS_ON */