b43: b43_op_config: set channel info before switching band
authorRafał Miłecki <zajec5@gmail.com>
Sat, 31 May 2014 18:49:37 +0000 (20:49 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 19 Jun 2014 19:49:13 +0000 (15:49 -0400)
Band switching code needs to know what channel we switch to.

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

index 59aa4fd..5e4eed3 100644 (file)
@@ -3808,6 +3808,7 @@ static int b43_op_config(struct ieee80211_hw *hw, u32 changed)
        b43_mac_suspend(dev);
 
        if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
+               phy->channel = conf->chandef.chan->hw_value;
                if (conf_is_ht(conf))
                        phy->is_40mhz = conf_is_ht40_minus(conf) ||
                                        conf_is_ht40_plus(conf);
@@ -3822,7 +3823,7 @@ static int b43_op_config(struct ieee80211_hw *hw, u32 changed)
                /* Switch to the requested channel.
                 * The firmware takes care of races with the TX handler.
                 */
-               b43_switch_channel(dev, conf->chandef.chan->hw_value);
+               b43_switch_channel(dev, phy->channel);
        }
 
        if (changed & IEEE80211_CONF_CHANGE_RETRY_LIMITS)
index 3bfb795..b465011 100644 (file)
@@ -424,7 +424,6 @@ int b43_switch_channel(struct b43_wldev *dev, unsigned int new_channel)
        if (err)
                goto err_restore_cookie;
 
-       dev->phy.channel = new_channel;
        /* Wait for the radio to tune to the channel and stabilize. */
        msleep(8);