staging: vt6656: Only call vnt_set_bss_mode on basic rates change.
authorMalcolm Priestley <tvboxspy@gmail.com>
Sat, 29 Apr 2017 12:03:45 +0000 (13:03 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 15 May 2017 05:41:58 +0000 (07:41 +0200)
To ensure the bss is always synchronized only call on basic rate
change.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6656/main_usb.c

index 06f7841d44d32dc2874c2fa449fbf2ea5aaef0fd..095b8556730647718aba67bb8100aacfd3c68fee 100644 (file)
@@ -637,7 +637,6 @@ static int vnt_config(struct ieee80211_hw *hw, u32 changed)
 {
        struct vnt_private *priv = hw->priv;
        struct ieee80211_conf *conf = &hw->conf;
-       u8 bb_type;
 
        if (changed & IEEE80211_CONF_CHANGE_PS) {
                if (conf->flags & IEEE80211_CONF_PS)
@@ -651,15 +650,9 @@ static int vnt_config(struct ieee80211_hw *hw, u32 changed)
                vnt_set_channel(priv, conf->chandef.chan->hw_value);
 
                if (conf->chandef.chan->band == NL80211_BAND_5GHZ)
-                       bb_type = BB_TYPE_11A;
+                       priv->bb_type = BB_TYPE_11A;
                else
-                       bb_type = BB_TYPE_11G;
-
-               if (priv->bb_type != bb_type) {
-                       priv->bb_type = bb_type;
-
-                       vnt_set_bss_mode(priv);
-               }
+                       priv->bb_type = BB_TYPE_11G;
        }
 
        if (changed & IEEE80211_CONF_CHANGE_POWER) {
@@ -690,6 +683,7 @@ static void vnt_bss_info_changed(struct ieee80211_hw *hw,
                priv->basic_rates = conf->basic_rates;
 
                vnt_update_top_rates(priv);
+               vnt_set_bss_mode(priv);
 
                dev_dbg(&priv->usb->dev, "basic rates %x\n", conf->basic_rates);
        }
@@ -850,7 +844,6 @@ static void vnt_sw_scan_start(struct ieee80211_hw *hw,
 {
        struct vnt_private *priv = hw->priv;
 
-       vnt_set_bss_mode(priv);
        /* Set max sensitivity*/
        vnt_update_pre_ed_threshold(priv, true);
 }