|
@@ -2052,6 +2052,17 @@ int iwl_mvm_add_mcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
|
|
|
vif->type != NL80211_IFTYPE_ADHOC))
|
|
|
return -ENOTSUPP;
|
|
|
|
|
|
+ /*
|
|
|
+ * In IBSS, ieee80211_check_queues() sets the cab_queue to be
|
|
|
+ * invalid, so make sure we use the queue we want.
|
|
|
+ * Note that this is done here as we want to avoid making DQA
|
|
|
+ * changes in mac80211 layer.
|
|
|
+ */
|
|
|
+ if (vif->type == NL80211_IFTYPE_ADHOC) {
|
|
|
+ vif->cab_queue = IWL_MVM_DQA_GCAST_QUEUE;
|
|
|
+ mvmvif->cab_queue = vif->cab_queue;
|
|
|
+ }
|
|
|
+
|
|
|
/*
|
|
|
* While in previous FWs we had to exclude cab queue from TFD queue
|
|
|
* mask, now it is needed as any other queue.
|
|
@@ -2083,20 +2094,9 @@ int iwl_mvm_add_mcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
|
|
|
timeout);
|
|
|
mvmvif->cab_queue = queue;
|
|
|
} else if (!fw_has_api(&mvm->fw->ucode_capa,
|
|
|
- IWL_UCODE_TLV_API_STA_TYPE)) {
|
|
|
- /*
|
|
|
- * In IBSS, ieee80211_check_queues() sets the cab_queue to be
|
|
|
- * invalid, so make sure we use the queue we want.
|
|
|
- * Note that this is done here as we want to avoid making DQA
|
|
|
- * changes in mac80211 layer.
|
|
|
- */
|
|
|
- if (vif->type == NL80211_IFTYPE_ADHOC) {
|
|
|
- vif->cab_queue = IWL_MVM_DQA_GCAST_QUEUE;
|
|
|
- mvmvif->cab_queue = vif->cab_queue;
|
|
|
- }
|
|
|
+ IWL_UCODE_TLV_API_STA_TYPE))
|
|
|
iwl_mvm_enable_txq(mvm, vif->cab_queue, vif->cab_queue, 0,
|
|
|
&cfg, timeout);
|
|
|
- }
|
|
|
|
|
|
return 0;
|
|
|
}
|