aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2014-05-27 16:07:33 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-05-29 13:10:34 -0400
commit6fe551434c0844fb82785086bdbac312744a22d2 (patch)
treea3a0fdf1d3a0e9ec4c022c4febeb8d4e13d7ecd5
parent90e569d1955e6678f089cd9f7a9a61c1ae27519b (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.c4
-rw-r--r--drivers/net/wireless/b43/phy_n.c6
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);