aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/b43/main.c')
-rw-r--r--drivers/net/wireless/b43/main.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index f7582c096f8d..1e6a2add2aaf 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -2685,6 +2685,17 @@ out:
2685 dev->mac_suspended++; 2685 dev->mac_suspended++;
2686} 2686}
2687 2687
2688/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/MacPhyClkSet */
2689void b43_mac_phy_clock_set(struct b43_wldev *dev, bool on)
2690{
2691 u32 tmslow = ssb_read32(dev->dev, SSB_TMSLOW);
2692 if (on)
2693 tmslow |= B43_TMSLOW_MACPHYCLKEN;
2694 else
2695 tmslow &= ~B43_TMSLOW_MACPHYCLKEN;
2696 ssb_write32(dev->dev, SSB_TMSLOW, tmslow);
2697}
2698
2688static void b43_adjust_opmode(struct b43_wldev *dev) 2699static void b43_adjust_opmode(struct b43_wldev *dev)
2689{ 2700{
2690 struct b43_wl *wl = dev->wl; 2701 struct b43_wl *wl = dev->wl;
@@ -2841,7 +2852,7 @@ static int b43_chip_init(struct b43_wldev *dev)
2841{ 2852{
2842 struct b43_phy *phy = &dev->phy; 2853 struct b43_phy *phy = &dev->phy;
2843 int err; 2854 int err;
2844 u32 value32, macctl; 2855 u32 macctl;
2845 u16 value16; 2856 u16 value16;
2846 2857
2847 /* Initialize the MAC control */ 2858 /* Initialize the MAC control */
@@ -2919,9 +2930,7 @@ static int b43_chip_init(struct b43_wldev *dev)
2919 b43_write32(dev, B43_MMIO_DMA4_IRQ_MASK, 0x0000DC00); 2930 b43_write32(dev, B43_MMIO_DMA4_IRQ_MASK, 0x0000DC00);
2920 b43_write32(dev, B43_MMIO_DMA5_IRQ_MASK, 0x0000DC00); 2931 b43_write32(dev, B43_MMIO_DMA5_IRQ_MASK, 0x0000DC00);
2921 2932
2922 value32 = ssb_read32(dev->dev, SSB_TMSLOW); 2933 b43_mac_phy_clock_set(dev, true);
2923 value32 |= 0x00100000;
2924 ssb_write32(dev->dev, SSB_TMSLOW, value32);
2925 2934
2926 b43_write16(dev, B43_MMIO_POWERUP_DELAY, 2935 b43_write16(dev, B43_MMIO_POWERUP_DELAY,
2927 dev->dev->bus->chipco.fast_pwrup_delay); 2936 dev->dev->bus->chipco.fast_pwrup_delay);