else
                sdata->flags &= ~IEEE80211_SDATA_OPERATING_GMODE;
 
-       ieee80211_set_wmm_default(sdata, true);
+       ieee80211_set_wmm_default(sdata, true, false);
 
        sdata->vif.bss_conf.ibss_joined = true;
        sdata->vif.bss_conf.ibss_creator = creator;
 
                             int rate, int erp, int short_preamble,
                             int shift);
 void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata,
-                              bool bss_notify);
+                              bool bss_notify, bool enable_qos);
 void ieee80211_xmit(struct ieee80211_sub_if_data *sdata,
                    struct sta_info *sta, struct sk_buff *skb);
 
 
                }
 
                /*
-                * set default queue parameters so drivers don't
+                * Set default queue parameters so drivers don't
                 * need to initialise the hardware if the hardware
-                * doesn't start up with sane defaults
+                * doesn't start up with sane defaults.
+                * Enable QoS for anything but station interfaces.
                 */
-               ieee80211_set_wmm_default(sdata, true);
+               ieee80211_set_wmm_default(sdata, true,
+                       sdata->vif.type != NL80211_IFTYPE_STATION);
        }
 
        set_bit(SDATA_STATE_RUNNING, &sdata->state);
 
        ieee80211_bss_info_change_notify(sdata, changed);
 
        /* disassociated - set to defaults now */
-       ieee80211_set_wmm_default(sdata, false);
+       ieee80211_set_wmm_default(sdata, false, false);
 
        del_timer_sync(&sdata->u.mgd.conn_mon_timer);
        del_timer_sync(&sdata->u.mgd.bcn_mon_timer);
                ieee80211_sta_wmm_params(local, sdata, elems.wmm_param,
                                         elems.wmm_param_len);
        else
-               ieee80211_set_wmm_default(sdata, false);
+               ieee80211_set_wmm_default(sdata, false, false);
        changed |= BSS_CHANGED_QOS;
 
        /* set AID and assoc capability,
 
 }
 
 void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata,
-                              bool bss_notify)
+                              bool bss_notify, bool enable_qos)
 {
        struct ieee80211_local *local = sdata->local;
        struct ieee80211_tx_queue_params qparam;
        struct ieee80211_chanctx_conf *chanctx_conf;
        int ac;
-       bool use_11b, enable_qos;
+       bool use_11b;
        bool is_ocb; /* Use another EDCA parameters if dot11OCBActivated=true */
        int aCWmin, aCWmax;
 
                 !(sdata->flags & IEEE80211_SDATA_OPERATING_GMODE);
        rcu_read_unlock();
 
-       /*
-        * By default disable QoS in STA mode for old access points, which do
-        * not support 802.11e. New APs will provide proper queue parameters,
-        * that we will configure later.
-        */
-       enable_qos = (sdata->vif.type != NL80211_IFTYPE_STATION);
-
        is_ocb = (sdata->vif.type == NL80211_IFTYPE_OCB);
 
        /* Set defaults according to 802.11-2007 Table 7-37 */