aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2011-06-19 07:30:20 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-06-22 16:09:43 -0400
commit2a870831776dd37577c6aec7b86189645183e152 (patch)
treee75e8f2235b7327948bdff72e19786ac897c9bff /drivers
parenta6b7da5d2cf8b67c310aedf09e8e74bfb53423ba (diff)
b43: N-PHY: update switching analog on/off
Specs were recently updated. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/b43/phy_n.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c
index ad14f3b428c5..e7dfdac9e4d7 100644
--- a/drivers/net/wireless/b43/phy_n.c
+++ b/drivers/net/wireless/b43/phy_n.c
@@ -4025,11 +4025,24 @@ static void b43_nphy_op_software_rfkill(struct b43_wldev *dev,
4025/* http://bcm-v4.sipsolutions.net/802.11/PHY/Anacore */ 4025/* http://bcm-v4.sipsolutions.net/802.11/PHY/Anacore */
4026static void b43_nphy_op_switch_analog(struct b43_wldev *dev, bool on) 4026static void b43_nphy_op_switch_analog(struct b43_wldev *dev, bool on)
4027{ 4027{
4028 u16 val = on ? 0 : 0x7FFF; 4028 u16 override = on ? 0x0 : 0x7FFF;
4029 u16 core = on ? 0xD : 0x00FD;
4029 4030
4030 if (dev->phy.rev >= 3) 4031 if (dev->phy.rev >= 3) {
4031 b43_phy_write(dev, B43_NPHY_AFECTL_OVER1, val); 4032 if (on) {
4032 b43_phy_write(dev, B43_NPHY_AFECTL_OVER, val); 4033 b43_phy_write(dev, B43_NPHY_AFECTL_C1, core);
4034 b43_phy_write(dev, B43_NPHY_AFECTL_OVER1, override);
4035 b43_phy_write(dev, B43_NPHY_AFECTL_C2, core);
4036 b43_phy_write(dev, B43_NPHY_AFECTL_OVER, override);
4037 } else {
4038 b43_phy_write(dev, B43_NPHY_AFECTL_OVER1, override);
4039 b43_phy_write(dev, B43_NPHY_AFECTL_C1, core);
4040 b43_phy_write(dev, B43_NPHY_AFECTL_OVER, override);
4041 b43_phy_write(dev, B43_NPHY_AFECTL_C2, core);
4042 }
4043 } else {
4044 b43_phy_write(dev, B43_NPHY_AFECTL_OVER, override);
4045 }
4033} 4046}
4034 4047
4035static int b43_nphy_op_switch_channel(struct b43_wldev *dev, 4048static int b43_nphy_op_switch_channel(struct b43_wldev *dev,