aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorFranky Lin <frankyl@broadcom.com>2011-11-04 17:23:37 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-11-09 16:14:03 -0500
commit454d2a8816d6bc6594d3d475392290623af63656 (patch)
tree7913971ab023ee1a1773540ca1cef9d7e16ef4f9 /drivers/net/wireless
parentd8f64a425b3a79e7d276e438ad7246c916a4b195 (diff)
brcm80211: fmac: abstract chip core revision function
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>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c4
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c18
2 files changed, 15 insertions, 7 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
index 30802a0d5291..84b10f1671bd 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c
@@ -3914,9 +3914,7 @@ brcmf_sdbrcm_probe_attach(struct brcmf_bus *bus, u32 regsva)
3914 3914
3915 brcmf_sdbrcm_sdiod_drive_strength_init(bus, SDIO_DRIVE_STRENGTH); 3915 brcmf_sdbrcm_sdiod_drive_strength_init(bus, SDIO_DRIVE_STRENGTH);
3916 3916
3917 /* Get info on the ARM and SOCRAM cores... */ 3917 /* Get info on the SOCRAM cores... */
3918 brcmf_sdcard_reg_read(bus->sdiodev,
3919 CORE_SB(bus->ci->armcorebase, sbidhigh), 4);
3920 bus->ramsize = bus->ci->ramsize; 3918 bus->ramsize = bus->ci->ramsize;
3921 if (!(bus->ramsize)) { 3919 if (!(bus->ramsize)) {
3922 brcmf_dbg(ERROR, "failed to find SOCRAM memory!\n"); 3920 brcmf_dbg(ERROR, "failed to find SOCRAM memory!\n");
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c b/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
index e0c22c4b8df9..5d788a619642 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c
@@ -52,6 +52,17 @@
52#define SBIDH_VC_MASK 0xffff0000 /* vendor code */ 52#define SBIDH_VC_MASK 0xffff0000 /* vendor code */
53#define SBIDH_VC_SHIFT 16 53#define SBIDH_VC_SHIFT 16
54 54
55static u32
56brcmf_sdio_chip_corerev(struct brcmf_sdio_dev *sdiodev,
57 u32 corebase)
58{
59 u32 regdata;
60
61 regdata = brcmf_sdcard_reg_read(sdiodev,
62 CORE_SB(corebase, sbidhigh), 4);
63 return SBCOREREV(regdata);
64}
65
55bool 66bool
56brcmf_sdio_chip_iscoreup(struct brcmf_sdio_dev *sdiodev, 67brcmf_sdio_chip_iscoreup(struct brcmf_sdio_dev *sdiodev,
57 u32 corebase) 68 u32 corebase)
@@ -234,9 +245,7 @@ brcmf_sdio_chip_buscoresetup(struct brcmf_sdio_dev *sdiodev,
234 u32 regdata; 245 u32 regdata;
235 246
236 /* get chipcommon rev */ 247 /* get chipcommon rev */
237 regdata = brcmf_sdcard_reg_read(sdiodev, 248 ci->ccrev = brcmf_sdio_chip_corerev(sdiodev, ci->cccorebase);
238 CORE_SB(ci->cccorebase, sbidhigh), 4);
239 ci->ccrev = SBCOREREV(regdata);
240 249
241 /* get chipcommon capabilites */ 250 /* get chipcommon capabilites */
242 ci->cccaps = brcmf_sdcard_reg_read(sdiodev, 251 ci->cccaps = brcmf_sdcard_reg_read(sdiodev,
@@ -249,9 +258,10 @@ brcmf_sdio_chip_buscoresetup(struct brcmf_sdio_dev *sdiodev,
249 ci->pmurev = ci->pmucaps & PCAP_REV_MASK; 258 ci->pmurev = ci->pmucaps & PCAP_REV_MASK;
250 } 259 }
251 260
261
262 ci->buscorerev = brcmf_sdio_chip_corerev(sdiodev, ci->buscorebase);
252 regdata = brcmf_sdcard_reg_read(sdiodev, 263 regdata = brcmf_sdcard_reg_read(sdiodev,
253 CORE_SB(ci->buscorebase, sbidhigh), 4); 264 CORE_SB(ci->buscorebase, sbidhigh), 4);
254 ci->buscorerev = SBCOREREV(regdata);
255 ci->buscoretype = (regdata & SBIDH_CC_MASK) >> SBIDH_CC_SHIFT; 265 ci->buscoretype = (regdata & SBIDH_CC_MASK) >> SBIDH_CC_SHIFT;
256 266
257 brcmf_dbg(INFO, "ccrev=%d, pmurev=%d, buscore rev/type=%d/0x%x\n", 267 brcmf_dbg(INFO, "ccrev=%d, pmurev=%d, buscore rev/type=%d/0x%x\n",