b43: N-PHY: rev3+: correct switching analog core
authorRafał Miłecki <zajec5@gmail.com>
Tue, 1 Mar 2011 20:40:39 +0000 (21:40 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 4 Mar 2011 19:05:17 +0000 (14:05 -0500)
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43/phy_n.c

index 9f5a3c99323900ddc0b35de9d45b7d773fbe95fe..6c9aa5a5850ac83dca9a6c6ec2cce63a84640b11 100644 (file)
@@ -3878,10 +3878,14 @@ static void b43_nphy_op_software_rfkill(struct b43_wldev *dev,
        }
 }
 
+/* http://bcm-v4.sipsolutions.net/802.11/PHY/Anacore */
 static void b43_nphy_op_switch_analog(struct b43_wldev *dev, bool on)
 {
-       b43_phy_write(dev, B43_NPHY_AFECTL_OVER,
-                     on ? 0 : 0x7FFF);
+       u16 val = on ? 0 : 0x7FFF;
+
+       if (dev->phy.rev >= 3)
+               b43_phy_write(dev, B43_NPHY_AFECTL_OVER1, val);
+       b43_phy_write(dev, B43_NPHY_AFECTL_OVER, val);
 }
 
 static int b43_nphy_op_switch_channel(struct b43_wldev *dev,