Skip to content

Commit 0e0e442

Browse files
lkaufman-heegrumbach
authored andcommitted
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: Liad Kaufman <[email protected]> Signed-off-by: Emmanuel Grumbach <[email protected]>
1 parent f02669b commit 0e0e442

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

drivers/net/wireless/intel/iwlwifi/mvm/fw-api.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ enum {
8989
/*
9090
* DQA queue numbers
9191
*
92+
* @IWL_MVM_DQA_GCAST_QUEUE: a queue reserved for P2P GO/SoftAP GCAST frames
9293
* @IWL_MVM_DQA_BSS_CLIENT_QUEUE: a queue reserved for BSS activity, to ensure
9394
* that we are never left without the possibility to connect to an AP.
9495
* @IWL_MVM_DQA_MIN_MGMT_QUEUE: first TXQ in pool for MGMT and non-QOS frames.
@@ -102,6 +103,7 @@ enum {
102103
* @IWL_MVM_DQA_MAX_DATA_QUEUE: last TXQ in pool for DATA frames
103104
*/
104105
enum iwl_mvm_dqa_txq {
106+
IWL_MVM_DQA_GCAST_QUEUE = 3,
105107
IWL_MVM_DQA_BSS_CLIENT_QUEUE = 4,
106108
IWL_MVM_DQA_MIN_MGMT_QUEUE = 5,
107109
IWL_MVM_DQA_MAX_MGMT_QUEUE = 8,

drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -447,13 +447,19 @@ static int iwl_mvm_mac_ctxt_allocate_resources(struct iwl_mvm *mvm,
447447

448448
/* Allocate the CAB queue for softAP and GO interfaces */
449449
if (vif->type == NL80211_IFTYPE_AP) {
450-
u8 queue = find_first_zero_bit(&used_hw_queues,
451-
mvm->first_agg_queue);
450+
u8 queue;
452451

453-
if (queue >= mvm->first_agg_queue) {
454-
IWL_ERR(mvm, "Failed to allocate cab queue\n");
455-
ret = -EIO;
456-
goto exit_fail;
452+
if (!iwl_mvm_is_dqa_supported(mvm)) {
453+
queue = find_first_zero_bit(&used_hw_queues,
454+
mvm->first_agg_queue);
455+
456+
if (queue >= mvm->first_agg_queue) {
457+
IWL_ERR(mvm, "Failed to allocate cab queue\n");
458+
ret = -EIO;
459+
goto exit_fail;
460+
}
461+
} else {
462+
queue = IWL_MVM_DQA_GCAST_QUEUE;
457463
}
458464

459465
vif->cab_queue = queue;

0 commit comments

Comments
 (0)