diff options
author | Franky Lin <frankyl@broadcom.com> | 2011-11-04 17:23:37 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-11-09 16:14:03 -0500 |
commit | 454d2a8816d6bc6594d3d475392290623af63656 (patch) | |
tree | 7913971ab023ee1a1773540ca1cef9d7e16ef4f9 /drivers/net/wireless | |
parent | d8f64a425b3a79e7d276e438ad7246c916a4b195 (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.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c | 18 |
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 | ||
55 | static u32 | ||
56 | brcmf_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 | |||
55 | bool | 66 | bool |
56 | brcmf_sdio_chip_iscoreup(struct brcmf_sdio_dev *sdiodev, | 67 | brcmf_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", |