ath10k: Re-enable intermediate softqueues for all devices
[openwrt/staging/dedeckeh.git] / package / kernel / mac80211 / patches / 332-ath10k-Revert-disable-wake_tx_queue-for-older-devices.patch
diff --git a/package/kernel/mac80211/patches/332-ath10k-Revert-disable-wake_tx_queue-for-older-devices.patch b/package/kernel/mac80211/patches/332-ath10k-Revert-disable-wake_tx_queue-for-older-devices.patch
new file mode 100644 (file)
index 0000000..b4e7862
--- /dev/null
@@ -0,0 +1,27 @@
+From 59f8c22bf1749c4a2b5947bfaebc677c259a1ad6 Mon Sep 17 00:00:00 2001
+From: dave taht <dave@taht.net>
+Date: Wed, 5 Oct 2016 20:09:15 -0700
+Subject: [PATCH 5/7] Revert "ath10k: disable wake_tx_queue for older devices"
+
+This reverts commit 4ca1807815aa6801aaced7fdefa9edacc2521767
+in the hope that we've fixed all the performance problems now.
+---
+
+--- a/drivers/net/wireless/ath/ath10k/mac.c
++++ b/drivers/net/wireless/ath/ath10k/mac.c
+@@ -8219,15 +8219,6 @@ int ath10k_mac_register(struct ath10k *a
+                       ath10k_warn(ar, "failed to initialise DFS pattern detector\n");
+       }
+-      /* Current wake_tx_queue implementation imposes a significant
+-       * performance penalty in some setups. The tx scheduling code needs
+-       * more work anyway so disable the wake_tx_queue unless firmware
+-       * supports the pull-push mechanism.
+-       */
+-      if (!test_bit(ATH10K_FW_FEATURE_PEER_FLOW_CONTROL,
+-                    ar->running_fw->fw_file.fw_features))
+-              ar->ops->wake_tx_queue = NULL;
+-
+       ret = ath10k_mac_init_rd(ar);
+       if (ret) {
+               ath10k_err(ar, "failed to derive regdom: %d\n", ret);