staging: brcm80211: assure common sources are truly common
authorArend van Spriel <arend@broadcom.com>
Sun, 23 Jan 2011 07:30:38 +0000 (08:30 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 25 Jan 2011 10:35:03 +0000 (18:35 +0800)
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>
drivers/staging/brcm80211/Kconfig
drivers/staging/brcm80211/Makefile
drivers/staging/brcm80211/brcmfmac/Makefile
drivers/staging/brcm80211/brcmsmac/Makefile
drivers/staging/brcm80211/util/aiutils.c
drivers/staging/brcm80211/util/bcmutils.c
drivers/staging/brcm80211/util/hnddma.c
drivers/staging/brcm80211/util/hndpmu.c

index 3208352465afefb7714317b1b5bde7e2d63a32bb..b6f86354b69faa9ed3cc4795700a879d89ee6c7b 100644 (file)
@@ -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.
index 5caaea597d507adfe6c9e2a93ad379ea3bd7397f..b6d9afc3669d941b7ec07431d6391900d9ec7493 100644 (file)
@@ -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/
index b3931b03f8d79c044398c044e2f73739638c918b..aa7f72d33b3f2008e62b15e4627559e7f4452876 100644 (file)
@@ -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
 
index ea297023c614760bbb8781708e46adf8bcde17d5..5da39be0f769162572a14f4c8f72b3d0da62faac 100644 (file)
 # 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 \
index b6e7a9e97379d3d60909e4f2442bf602dde8f941..e4842c12ccf726d219c0fae7ec8e988884a8b2fc 100644 (file)
@@ -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;
index 258fd90d915264dd4b9c947db9028b5b1a781b0c..a6ffb14323a07c286771730cd0d4b15cb75158d7 100644 (file)
@@ -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)
index d08869239d5bb931c4c2ab6987c980f3ebb50f3c..92b2c8074aab4446d1f03dcdf349ba00ae203f26 100644 (file)
@@ -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;
index 49d19a121f7baff78393077ba4e06671693aeeac..c8af68f39bd4f0f66b4791b0d461d82260fe8380 100644 (file)
 
 #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 */