brcm80211: fmac: abstract chip core revision function
authorFranky Lin <frankyl@broadcom.com>
Fri, 4 Nov 2011 21:23:37 +0000 (22:23 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 9 Nov 2011 21:14:03 +0000 (16:14 -0500)
Prepare for adding backplane interconnect type support

Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c

index 30802a0d5291d4191dfb1703a5c2042a32fd59c3..84b10f1671bd7728f8fa3d67a8e7c5604c763acf 100644 (file)
@@ -3914,9 +3914,7 @@ brcmf_sdbrcm_probe_attach(struct brcmf_bus *bus, u32 regsva)
 
        brcmf_sdbrcm_sdiod_drive_strength_init(bus, SDIO_DRIVE_STRENGTH);
 
-       /* Get info on the ARM and SOCRAM cores... */
-       brcmf_sdcard_reg_read(bus->sdiodev,
-                 CORE_SB(bus->ci->armcorebase, sbidhigh), 4);
+       /* Get info on the SOCRAM cores... */
        bus->ramsize = bus->ci->ramsize;
        if (!(bus->ramsize)) {
                brcmf_dbg(ERROR, "failed to find SOCRAM memory!\n");
index e0c22c4b8df97c0e618f1c0b1870fd50880a402c..5d788a619642df828c4656f3762fc28b510718ab 100644 (file)
 #define        SBIDH_VC_MASK           0xffff0000      /* vendor code */
 #define        SBIDH_VC_SHIFT          16
 
+static u32
+brcmf_sdio_chip_corerev(struct brcmf_sdio_dev *sdiodev,
+                       u32 corebase)
+{
+       u32 regdata;
+
+       regdata = brcmf_sdcard_reg_read(sdiodev,
+                       CORE_SB(corebase, sbidhigh), 4);
+       return SBCOREREV(regdata);
+}
+
 bool
 brcmf_sdio_chip_iscoreup(struct brcmf_sdio_dev *sdiodev,
                         u32 corebase)
@@ -234,9 +245,7 @@ brcmf_sdio_chip_buscoresetup(struct brcmf_sdio_dev *sdiodev,
        u32 regdata;
 
        /* get chipcommon rev */
-       regdata = brcmf_sdcard_reg_read(sdiodev,
-               CORE_SB(ci->cccorebase, sbidhigh), 4);
-       ci->ccrev = SBCOREREV(regdata);
+       ci->ccrev = brcmf_sdio_chip_corerev(sdiodev, ci->cccorebase);
 
        /* get chipcommon capabilites */
        ci->cccaps = brcmf_sdcard_reg_read(sdiodev,
@@ -249,9 +258,10 @@ brcmf_sdio_chip_buscoresetup(struct brcmf_sdio_dev *sdiodev,
                ci->pmurev = ci->pmucaps & PCAP_REV_MASK;
        }
 
+
+       ci->buscorerev = brcmf_sdio_chip_corerev(sdiodev, ci->buscorebase);
        regdata = brcmf_sdcard_reg_read(sdiodev,
                                        CORE_SB(ci->buscorebase, sbidhigh), 4);
-       ci->buscorerev = SBCOREREV(regdata);
        ci->buscoretype = (regdata & SBIDH_CC_MASK) >> SBIDH_CC_SHIFT;
 
        brcmf_dbg(INFO, "ccrev=%d, pmurev=%d, buscore rev/type=%d/0x%x\n",