aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2012-06-30 09:16:21 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-07-10 12:16:57 -0400
commitdb00348471b3858d74486e3fbb85922be5340ca6 (patch)
tree16a7832fdf384849eb76530ae29f60948c7571eb /drivers/net/wireless
parentae0146f987cd4f4702ce9764a395d3aa1cff9777 (diff)
brcmsmac: handle non PCI devices in the phy code
Some code in write_{radio,radio}_reg() should just be run if this is a pci based device. Add the condition again which was removed in commit: commit 821e4e93172e4f7d5ac1eade04665c3dc5049c4a Author: Roland Vossen <rvossen@broadcom.com> Date: Mon Aug 8 15:58:58 2011 +0200 staging: brcm80211: removed unused bus code from softmac Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Acked-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/brcmsmac/phy/phy_cmn.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_cmn.c b/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_cmn.c
index 1703e7d7f828..91937c5025ce 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_cmn.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/phy/phy_cmn.c
@@ -198,6 +198,8 @@ u16 read_radio_reg(struct brcms_phy *pi, u16 addr)
198 198
199void write_radio_reg(struct brcms_phy *pi, u16 addr, u16 val) 199void write_radio_reg(struct brcms_phy *pi, u16 addr, u16 val)
200{ 200{
201 struct si_info *sii = container_of(pi->sh->sih, struct si_info, pub);
202
201 if ((D11REV_GE(pi->sh->corerev, 24)) || 203 if ((D11REV_GE(pi->sh->corerev, 24)) ||
202 (D11REV_IS(pi->sh->corerev, 22) 204 (D11REV_IS(pi->sh->corerev, 22)
203 && (pi->pubpi.phy_type != PHY_TYPE_SSN))) { 205 && (pi->pubpi.phy_type != PHY_TYPE_SSN))) {
@@ -209,7 +211,8 @@ void write_radio_reg(struct brcms_phy *pi, u16 addr, u16 val)
209 bcma_write16(pi->d11core, D11REGOFFS(phy4wdatalo), val); 211 bcma_write16(pi->d11core, D11REGOFFS(phy4wdatalo), val);
210 } 212 }
211 213
212 if (++pi->phy_wreg >= pi->phy_wreg_limit) { 214 if ((sii->icbus->hosttype == BCMA_HOSTTYPE_PCI) &&
215 (++pi->phy_wreg >= pi->phy_wreg_limit)) {
213 (void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol)); 216 (void)bcma_read32(pi->d11core, D11REGOFFS(maccontrol));
214 pi->phy_wreg = 0; 217 pi->phy_wreg = 0;
215 } 218 }
@@ -294,8 +297,11 @@ void write_phy_reg(struct brcms_phy *pi, u16 addr, u16 val)
294 if (addr == 0x72) 297 if (addr == 0x72)
295 (void)bcma_read16(pi->d11core, D11REGOFFS(phyregdata)); 298 (void)bcma_read16(pi->d11core, D11REGOFFS(phyregdata));
296#else 299#else
300 struct si_info *sii = container_of(pi->sh->sih, struct si_info, pub);
301
297 bcma_write32(pi->d11core, D11REGOFFS(phyregaddr), addr | (val << 16)); 302 bcma_write32(pi->d11core, D11REGOFFS(phyregaddr), addr | (val << 16));
298 if (++pi->phy_wreg >= pi->phy_wreg_limit) { 303 if ((sii->icbus->hosttype == BCMA_HOSTTYPE_PCI) &&
304 (++pi->phy_wreg >= pi->phy_wreg_limit)) {
299 pi->phy_wreg = 0; 305 pi->phy_wreg = 0;
300 (void)bcma_read16(pi->d11core, D11REGOFFS(phyversion)); 306 (void)bcma_read16(pi->d11core, D11REGOFFS(phyversion));
301 } 307 }