|
|
@@ -0,0 +1,29 @@
|
|
|
+From: Felix Fietkau <[email protected]>
|
|
|
+Date: Sun, 30 Nov 2014 21:51:12 +0100
|
|
|
+Subject: [PATCH] ath5k: fix hardware queue index assignment
|
|
|
+
|
|
|
+Like with ath9k, ath5k queues also need to be ordered by priority.
|
|
|
+queue_info->tqi_subtype already contains the correct index, so use it
|
|
|
+instead of relying on the order of ath5k_hw_setup_tx_queue calls.
|
|
|
+
|
|
|
+Cc: [email protected]
|
|
|
+Signed-off-by: Felix Fietkau <[email protected]>
|
|
|
+---
|
|
|
+
|
|
|
+--- a/drivers/net/wireless/ath/ath5k/qcu.c
|
|
|
++++ b/drivers/net/wireless/ath/ath5k/qcu.c
|
|
|
+@@ -225,13 +225,7 @@ ath5k_hw_setup_tx_queue(struct ath5k_hw
|
|
|
+ } else {
|
|
|
+ switch (queue_type) {
|
|
|
+ case AR5K_TX_QUEUE_DATA:
|
|
|
+- for (queue = AR5K_TX_QUEUE_ID_DATA_MIN;
|
|
|
+- ah->ah_txq[queue].tqi_type !=
|
|
|
+- AR5K_TX_QUEUE_INACTIVE; queue++) {
|
|
|
+-
|
|
|
+- if (queue > AR5K_TX_QUEUE_ID_DATA_MAX)
|
|
|
+- return -EINVAL;
|
|
|
+- }
|
|
|
++ queue = queue_info->tqi_subtype;
|
|
|
+ break;
|
|
|
+ case AR5K_TX_QUEUE_UAPSD:
|
|
|
+ queue = AR5K_TX_QUEUE_ID_UAPSD;
|