aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43/main.c
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2014-07-17 13:31:05 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-07-18 13:45:26 -0400
commitc2cb2c4cf1a089501242a1701b589d2ad5eb0448 (patch)
treedff25b9f6e707c1d230e027daaa6df2082292db2 /drivers/net/wireless/b43/main.c
parentc9325e2f2435d93117e9336d72754b68abda26d4 (diff)
b43: use one shared function for setting MAC frequency
By the way add few chipsets that were tracked with "wl" dumps. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/b43/main.c')
-rw-r--r--drivers/net/wireless/b43/main.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 3dcd3aa38608..3e127be06bfb 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -2964,6 +2964,45 @@ void b43_mac_phy_clock_set(struct b43_wldev *dev, bool on)
2964 } 2964 }
2965} 2965}
2966 2966
2967/* brcms_b_switch_macfreq */
2968void b43_mac_switch_freq(struct b43_wldev *dev, u8 spurmode)
2969{
2970 u16 chip_id = dev->dev->chip_id;
2971
2972 if (chip_id == BCMA_CHIP_ID_BCM43217 ||
2973 chip_id == BCMA_CHIP_ID_BCM43222 ||
2974 chip_id == BCMA_CHIP_ID_BCM43224 ||
2975 chip_id == BCMA_CHIP_ID_BCM43225 ||
2976 chip_id == BCMA_CHIP_ID_BCM43227 ||
2977 chip_id == BCMA_CHIP_ID_BCM43228) {
2978 switch (spurmode) {
2979 case 2: /* 126 Mhz */
2980 b43_write16(dev, B43_MMIO_TSF_CLK_FRAC_LOW, 0x2082);
2981 b43_write16(dev, B43_MMIO_TSF_CLK_FRAC_HIGH, 0x8);
2982 break;
2983 case 1: /* 123 Mhz */
2984 b43_write16(dev, B43_MMIO_TSF_CLK_FRAC_LOW, 0x5341);
2985 b43_write16(dev, B43_MMIO_TSF_CLK_FRAC_HIGH, 0x8);
2986 break;
2987 default: /* 120 Mhz */
2988 b43_write16(dev, B43_MMIO_TSF_CLK_FRAC_LOW, 0x8889);
2989 b43_write16(dev, B43_MMIO_TSF_CLK_FRAC_HIGH, 0x8);
2990 break;
2991 }
2992 } else if (dev->phy.type == B43_PHYTYPE_LCN) {
2993 switch (spurmode) {
2994 case 1: /* 82 Mhz */
2995 b43_write16(dev, B43_MMIO_TSF_CLK_FRAC_LOW, 0x7CE0);
2996 b43_write16(dev, B43_MMIO_TSF_CLK_FRAC_HIGH, 0xC);
2997 break;
2998 default: /* 80 Mhz */
2999 b43_write16(dev, B43_MMIO_TSF_CLK_FRAC_LOW, 0xCCCD);
3000 b43_write16(dev, B43_MMIO_TSF_CLK_FRAC_HIGH, 0xC);
3001 break;
3002 }
3003 }
3004}
3005
2967static void b43_adjust_opmode(struct b43_wldev *dev) 3006static void b43_adjust_opmode(struct b43_wldev *dev)
2968{ 3007{
2969 struct b43_wl *wl = dev->wl; 3008 struct b43_wl *wl = dev->wl;