diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2014-05-27 16:07:33 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-05-29 13:10:34 -0400 |
commit | 6fe551434c0844fb82785086bdbac312744a22d2 (patch) | |
tree | a3a0fdf1d3a0e9ec4c022c4febeb8d4e13d7ecd5 | |
parent | 90e569d1955e6678f089cd9f7a9a61c1ae27519b (diff) |
b43: N-PHY: optimize radio switching on/off
Broadcom's wl 6.30.223.141 has some optimizations for radios 0x205[67].
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/main.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/b43/phy_n.c | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index bf279170b483..32538ac5f7e4 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c | |||
@@ -3742,7 +3742,9 @@ static int b43_switch_band(struct b43_wldev *dev, | |||
3742 | b43dbg(dev->wl, "Switching to %s GHz band\n", | 3742 | b43dbg(dev->wl, "Switching to %s GHz band\n", |
3743 | band_to_string(chan->band)); | 3743 | band_to_string(chan->band)); |
3744 | 3744 | ||
3745 | b43_software_rfkill(dev, true); | 3745 | /* Some new devices don't need disabling radio for band switching */ |
3746 | if (!(phy->type == B43_PHYTYPE_N && phy->rev >= 3)) | ||
3747 | b43_software_rfkill(dev, true); | ||
3746 | 3748 | ||
3747 | phy->gmode = gmode; | 3749 | phy->gmode = gmode; |
3748 | b43_phy_put_into_reset(dev); | 3750 | b43_phy_put_into_reset(dev); |
diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c index 98ff8060f526..86569f6a8705 100644 --- a/drivers/net/wireless/b43/phy_n.c +++ b/drivers/net/wireless/b43/phy_n.c | |||
@@ -5707,10 +5707,12 @@ static void b43_nphy_op_software_rfkill(struct b43_wldev *dev, | |||
5707 | } | 5707 | } |
5708 | } else { | 5708 | } else { |
5709 | if (dev->phy.rev >= 7) { | 5709 | if (dev->phy.rev >= 7) { |
5710 | b43_radio_2057_init(dev); | 5710 | if (!dev->phy.radio_on) |
5711 | b43_radio_2057_init(dev); | ||
5711 | b43_switch_channel(dev, dev->phy.channel); | 5712 | b43_switch_channel(dev, dev->phy.channel); |
5712 | } else if (dev->phy.rev >= 3) { | 5713 | } else if (dev->phy.rev >= 3) { |
5713 | b43_radio_init2056(dev); | 5714 | if (!dev->phy.radio_on) |
5715 | b43_radio_init2056(dev); | ||
5714 | b43_switch_channel(dev, dev->phy.channel); | 5716 | b43_switch_channel(dev, dev->phy.channel); |
5715 | } else { | 5717 | } else { |
5716 | b43_radio_init2055(dev); | 5718 | b43_radio_init2055(dev); |