--- /dev/null
+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);
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
-@@ -8003,6 +8003,21 @@ static int ath10k_mac_init_rd(struct ath
+@@ -8007,6 +8007,21 @@ static int ath10k_mac_init_rd(struct ath
return 0;
}
int ath10k_mac_register(struct ath10k *ar)
{
static const u32 cipher_suites[] = {
-@@ -8248,6 +8263,12 @@ int ath10k_mac_register(struct ath10k *a
+@@ -8244,6 +8259,12 @@ int ath10k_mac_register(struct ath10k *a
ar->hw->wiphy->cipher_suites = cipher_suites;
ar->hw->wiphy->n_cipher_suites = ARRAY_SIZE(cipher_suites);