Commit 0e0e4420 authored by Liad Kaufman's avatar Liad Kaufman Committed by Emmanuel Grumbach

iwlwifi: mvm: allocate dedicated queue for cab in dqa mode

In DQA mode, allocate a dedicated queue (#3) for content
after beacon (AKA "CaB").
Signed-off-by: default avatarLiad Kaufman <liad.kaufman@intel.com>
Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
parent f02669be
...@@ -89,6 +89,7 @@ enum { ...@@ -89,6 +89,7 @@ enum {
/* /*
* DQA queue numbers * DQA queue numbers
* *
* @IWL_MVM_DQA_GCAST_QUEUE: a queue reserved for P2P GO/SoftAP GCAST frames
* @IWL_MVM_DQA_BSS_CLIENT_QUEUE: a queue reserved for BSS activity, to ensure * @IWL_MVM_DQA_BSS_CLIENT_QUEUE: a queue reserved for BSS activity, to ensure
* that we are never left without the possibility to connect to an AP. * that we are never left without the possibility to connect to an AP.
* @IWL_MVM_DQA_MIN_MGMT_QUEUE: first TXQ in pool for MGMT and non-QOS frames. * @IWL_MVM_DQA_MIN_MGMT_QUEUE: first TXQ in pool for MGMT and non-QOS frames.
...@@ -102,6 +103,7 @@ enum { ...@@ -102,6 +103,7 @@ enum {
* @IWL_MVM_DQA_MAX_DATA_QUEUE: last TXQ in pool for DATA frames * @IWL_MVM_DQA_MAX_DATA_QUEUE: last TXQ in pool for DATA frames
*/ */
enum iwl_mvm_dqa_txq { enum iwl_mvm_dqa_txq {
IWL_MVM_DQA_GCAST_QUEUE = 3,
IWL_MVM_DQA_BSS_CLIENT_QUEUE = 4, IWL_MVM_DQA_BSS_CLIENT_QUEUE = 4,
IWL_MVM_DQA_MIN_MGMT_QUEUE = 5, IWL_MVM_DQA_MIN_MGMT_QUEUE = 5,
IWL_MVM_DQA_MAX_MGMT_QUEUE = 8, IWL_MVM_DQA_MAX_MGMT_QUEUE = 8,
......
...@@ -447,13 +447,19 @@ static int iwl_mvm_mac_ctxt_allocate_resources(struct iwl_mvm *mvm, ...@@ -447,13 +447,19 @@ static int iwl_mvm_mac_ctxt_allocate_resources(struct iwl_mvm *mvm,
/* Allocate the CAB queue for softAP and GO interfaces */ /* Allocate the CAB queue for softAP and GO interfaces */
if (vif->type == NL80211_IFTYPE_AP) { if (vif->type == NL80211_IFTYPE_AP) {
u8 queue = find_first_zero_bit(&used_hw_queues, u8 queue;
mvm->first_agg_queue);
if (queue >= mvm->first_agg_queue) { if (!iwl_mvm_is_dqa_supported(mvm)) {
IWL_ERR(mvm, "Failed to allocate cab queue\n"); queue = find_first_zero_bit(&used_hw_queues,
ret = -EIO; mvm->first_agg_queue);
goto exit_fail;
if (queue >= mvm->first_agg_queue) {
IWL_ERR(mvm, "Failed to allocate cab queue\n");
ret = -EIO;
goto exit_fail;
}
} else {
queue = IWL_MVM_DQA_GCAST_QUEUE;
} }
vif->cab_queue = queue; vif->cab_queue = queue;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment