diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2014-07-17 13:31:05 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-07-18 13:45:26 -0400 |
commit | c2cb2c4cf1a089501242a1701b589d2ad5eb0448 (patch) | |
tree | dff25b9f6e707c1d230e027daaa6df2082292db2 /drivers/net/wireless/b43/main.c | |
parent | c9325e2f2435d93117e9336d72754b68abda26d4 (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.c | 39 |
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 */ | ||
2968 | void 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 | |||
2967 | static void b43_adjust_opmode(struct b43_wldev *dev) | 3006 | static void b43_adjust_opmode(struct b43_wldev *dev) |
2968 | { | 3007 | { |
2969 | struct b43_wl *wl = dev->wl; | 3008 | struct b43_wl *wl = dev->wl; |