b43: PHY: don't force default channel during init
authorRafał Miłecki <zajec5@gmail.com>
Sat, 31 May 2014 18:49:36 +0000 (20:49 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 19 Jun 2014 19:49:13 +0000 (15:49 -0400)
PHY may need to be re-initialized during runtime (e.g. on band switch).

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/b43/phy_common.c

index ac4cf2b8aca882c2937acc0b6752d16c839443d3..3bfb795f6a6d88fea96e4fabbbca6d6bee816eed 100644 (file)
@@ -94,7 +94,8 @@ int b43_phy_init(struct b43_wldev *dev)
        const struct b43_phy_operations *ops = phy->ops;
        int err;
 
-       phy->channel = ops->get_default_chan(dev);
+       if (!phy->channel)
+               phy->channel = ops->get_default_chan(dev);
 
        phy->ops->switch_analog(dev, true);
        b43_software_rfkill(dev, false);
@@ -106,9 +107,7 @@ int b43_phy_init(struct b43_wldev *dev)
        }
        phy->do_full_init = false;
 
-       /* Make sure to switch hardware and firmware (SHM) to
-        * the default channel. */
-       err = b43_switch_channel(dev, ops->get_default_chan(dev));
+       err = b43_switch_channel(dev, phy->channel);
        if (err) {
                b43err(dev->wl, "PHY init: Channel switch to default failed\n");
                goto err_phy_exit;