diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2011-06-19 21:12:19 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-06-22 16:09:44 -0400 |
commit | c1c3daee97498f5d74bfd23531cfe23c8e14a619 (patch) | |
tree | 823c5b2b6ba51219a8a79d123bd6946cebf25664 | |
parent | bf4c02d5e772903be5bf8952bac730a2956d0619 (diff) |
b43: HT-PHY: calibrate radio after switching channel
After uploading radio values calibration goes in. In MMIO dump it is:
radio_read(0x002b) -> 0x0008
radio_write(0x002b) <- 0x0008
radio_read(0x002e) -> 0x0004
radio_write(0x002e) <- 0x0000
radio_read(0x002e) -> 0x0000
radio_write(0x002e) <- 0x0004
radio_read(0x002b) -> 0x0008
radio_write(0x002b) <- 0x0009
To find masks and sets, MMIO hacks were used to fool closed driver.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/b43/phy_ht.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/wireless/b43/phy_ht.c b/drivers/net/wireless/b43/phy_ht.c index 0b13f6f37c2f..72f01ce8b42c 100644 --- a/drivers/net/wireless/b43/phy_ht.c +++ b/drivers/net/wireless/b43/phy_ht.c | |||
@@ -69,7 +69,13 @@ static void b43_radio_2059_channel_setup(struct b43_wldev *dev, | |||
69 | 69 | ||
70 | udelay(50); | 70 | udelay(50); |
71 | 71 | ||
72 | /* TODO */ | 72 | /* Calibration */ |
73 | b43_radio_mask(dev, 0x2b, ~0x1); | ||
74 | b43_radio_mask(dev, 0x2e, ~0x4); | ||
75 | b43_radio_set(dev, 0x2e, 0x4); | ||
76 | b43_radio_set(dev, 0x2b, 0x1); | ||
77 | |||
78 | udelay(300); | ||
73 | } | 79 | } |
74 | 80 | ||
75 | static void b43_phy_ht_channel_setup(struct b43_wldev *dev, | 81 | static void b43_phy_ht_channel_setup(struct b43_wldev *dev, |