From: Rafał Miłecki Date: Mon, 20 Jun 2011 01:12:19 +0000 (+0200) Subject: b43: HT-PHY: calibrate radio after switching channel X-Git-Tag: MMI-PSA29.97-13-9~18350^2~12^2~42^2~379 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=c1c3daee97498f5d74bfd23531cfe23c8e14a619;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git 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 Signed-off-by: John W. Linville --- 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, udelay(50); - /* TODO */ + /* Calibration */ + b43_radio_mask(dev, 0x2b, ~0x1); + b43_radio_mask(dev, 0x2e, ~0x4); + b43_radio_set(dev, 0x2e, 0x4); + b43_radio_set(dev, 0x2b, 0x1); + + udelay(300); } static void b43_phy_ht_channel_setup(struct b43_wldev *dev,