aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2014-05-31 14:49:36 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-06-19 15:49:13 -0400
commiteb530b0fed7ec8ca435ec421cbff773b318a6a00 (patch)
treedcb93d573837e642bfd30e45c13461916b7be356
parent8c79e5ee033798bc1147ec29f222c2ace6e9e897 (diff)
b43: PHY: don't force default channel during init
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>
-rw-r--r--drivers/net/wireless/b43/phy_common.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/net/wireless/b43/phy_common.c b/drivers/net/wireless/b43/phy_common.c
index ac4cf2b8aca8..3bfb795f6a6d 100644
--- a/drivers/net/wireless/b43/phy_common.c
+++ b/drivers/net/wireless/b43/phy_common.c
@@ -94,7 +94,8 @@ int b43_phy_init(struct b43_wldev *dev)
94 const struct b43_phy_operations *ops = phy->ops; 94 const struct b43_phy_operations *ops = phy->ops;
95 int err; 95 int err;
96 96
97 phy->channel = ops->get_default_chan(dev); 97 if (!phy->channel)
98 phy->channel = ops->get_default_chan(dev);
98 99
99 phy->ops->switch_analog(dev, true); 100 phy->ops->switch_analog(dev, true);
100 b43_software_rfkill(dev, false); 101 b43_software_rfkill(dev, false);
@@ -106,9 +107,7 @@ int b43_phy_init(struct b43_wldev *dev)
106 } 107 }
107 phy->do_full_init = false; 108 phy->do_full_init = false;
108 109
109 /* Make sure to switch hardware and firmware (SHM) to 110 err = b43_switch_channel(dev, phy->channel);
110 * the default channel. */
111 err = b43_switch_channel(dev, ops->get_default_chan(dev));
112 if (err) { 111 if (err) {
113 b43err(dev->wl, "PHY init: Channel switch to default failed\n"); 112 b43err(dev->wl, "PHY init: Channel switch to default failed\n");
114 goto err_phy_exit; 113 goto err_phy_exit;