aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/b43
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2010-11-18 15:11:42 -0500
committerJohn W. Linville <linville@tuxdriver.com>2010-11-24 16:19:34 -0500
commita529cecd29ecf1e5416316ae06ce515bf67b5d5a (patch)
tree0f2011128961aafb9519436df0a5575f66039fc2 /drivers/net/wireless/b43
parentfee613b77df721781b9794945f0f1a8f535456ff (diff)
b43: N-PHY: rev2: save and restore PHY regs on RSSI poll
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')
-rw-r--r--drivers/net/wireless/b43/phy_n.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c
index bf0d63d61b6a..dc4045de61f2 100644
--- a/drivers/net/wireless/b43/phy_n.c
+++ b/drivers/net/wireless/b43/phy_n.c
@@ -1846,6 +1846,14 @@ static int b43_nphy_poll_rssi(struct b43_wldev *dev, u8 type, s32 *buf,
1846 save_regs_phy[5] = b43_phy_read(dev, B43_NPHY_AFECTL_OVER); 1846 save_regs_phy[5] = b43_phy_read(dev, B43_NPHY_AFECTL_OVER);
1847 save_regs_phy[6] = b43_phy_read(dev, B43_NPHY_TXF_40CO_B1S0); 1847 save_regs_phy[6] = b43_phy_read(dev, B43_NPHY_TXF_40CO_B1S0);
1848 save_regs_phy[7] = b43_phy_read(dev, B43_NPHY_TXF_40CO_B32S1); 1848 save_regs_phy[7] = b43_phy_read(dev, B43_NPHY_TXF_40CO_B32S1);
1849 } else if (dev->phy.rev == 2) {
1850 save_regs_phy[0] = b43_phy_read(dev, B43_NPHY_AFECTL_C1);
1851 save_regs_phy[1] = b43_phy_read(dev, B43_NPHY_AFECTL_C2);
1852 save_regs_phy[2] = b43_phy_read(dev, B43_NPHY_AFECTL_OVER);
1853 save_regs_phy[3] = b43_phy_read(dev, B43_NPHY_RFCTL_CMD);
1854 save_regs_phy[4] = b43_phy_read(dev, B43_NPHY_RFCTL_OVER);
1855 save_regs_phy[5] = b43_phy_read(dev, B43_NPHY_RFCTL_RSSIO1);
1856 save_regs_phy[6] = b43_phy_read(dev, B43_NPHY_RFCTL_RSSIO2);
1849 } 1857 }
1850 1858
1851 b43_nphy_rssi_select(dev, 5, type); 1859 b43_nphy_rssi_select(dev, 5, type);
@@ -1889,6 +1897,14 @@ static int b43_nphy_poll_rssi(struct b43_wldev *dev, u8 type, s32 *buf,
1889 b43_phy_write(dev, B43_NPHY_AFECTL_OVER, save_regs_phy[5]); 1897 b43_phy_write(dev, B43_NPHY_AFECTL_OVER, save_regs_phy[5]);
1890 b43_phy_write(dev, B43_NPHY_TXF_40CO_B1S0, save_regs_phy[6]); 1898 b43_phy_write(dev, B43_NPHY_TXF_40CO_B1S0, save_regs_phy[6]);
1891 b43_phy_write(dev, B43_NPHY_TXF_40CO_B32S1, save_regs_phy[7]); 1899 b43_phy_write(dev, B43_NPHY_TXF_40CO_B32S1, save_regs_phy[7]);
1900 } else if (dev->phy.rev == 2) {
1901 b43_phy_write(dev, B43_NPHY_AFECTL_C1, save_regs_phy[0]);
1902 b43_phy_write(dev, B43_NPHY_AFECTL_C2, save_regs_phy[1]);
1903 b43_phy_write(dev, B43_NPHY_AFECTL_OVER, save_regs_phy[2]);
1904 b43_phy_write(dev, B43_NPHY_RFCTL_CMD, save_regs_phy[3]);
1905 b43_phy_write(dev, B43_NPHY_RFCTL_OVER, save_regs_phy[4]);
1906 b43_phy_write(dev, B43_NPHY_RFCTL_RSSIO1, save_regs_phy[5]);
1907 b43_phy_write(dev, B43_NPHY_RFCTL_RSSIO2, save_regs_phy[6]);
1892 } 1908 }
1893 1909
1894 return out; 1910 return out;