From de28901e44337a0975265a519c3d91fd71b02f5b Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Fri, 17 Feb 2012 22:15:26 +0000
Subject: [PATCH] ath5k: do not stop the hardware queues during PAPD
 calibration, speeds up calibration

SVN-Revision: 30623
---
 .../440-ath5k_calibrate_no_queue_stop.patch   | 31 +++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100644 package/mac80211/patches/440-ath5k_calibrate_no_queue_stop.patch

diff --git a/package/mac80211/patches/440-ath5k_calibrate_no_queue_stop.patch b/package/mac80211/patches/440-ath5k_calibrate_no_queue_stop.patch
new file mode 100644
index 0000000000..3751c531ba
--- /dev/null
+++ b/package/mac80211/patches/440-ath5k_calibrate_no_queue_stop.patch
@@ -0,0 +1,31 @@
+--- a/drivers/net/wireless/ath/ath5k/base.c
++++ b/drivers/net/wireless/ath/ath5k/base.c
+@@ -2330,15 +2330,6 @@ ath5k_calibrate_work(struct work_struct 
+ 					"got new rfgain, resetting\n");
+ 			ieee80211_queue_work(ah->hw, &ah->reset_work);
+ 		}
+-
+-		/* TODO: On full calibration we should stop TX here,
+-		 * so that it doesn't interfere (mostly due to gain_f
+-		 * calibration that messes with tx packets -see phy.c).
+-		 *
+-		 * NOTE: Stopping the queues from above is not enough
+-		 * to stop TX but saves us from disconecting (at least
+-		 * we don't lose packets). */
+-		ieee80211_stop_queues(ah->hw);
+ 	} else
+ 		ah->ah_cal_mask |= AR5K_CALIBRATION_SHORT;
+ 
+@@ -2353,10 +2344,9 @@ ath5k_calibrate_work(struct work_struct 
+ 				ah->curchan->center_freq));
+ 
+ 	/* Clear calibration flags */
+-	if (ah->ah_cal_mask & AR5K_CALIBRATION_FULL) {
+-		ieee80211_wake_queues(ah->hw);
++	if (ah->ah_cal_mask & AR5K_CALIBRATION_FULL)
+ 		ah->ah_cal_mask &= ~AR5K_CALIBRATION_FULL;
+-	} else if (ah->ah_cal_mask & AR5K_CALIBRATION_SHORT)
++	else if (ah->ah_cal_mask & AR5K_CALIBRATION_SHORT)
+ 		ah->ah_cal_mask &= ~AR5K_CALIBRATION_SHORT;
+ }
+ 
-- 
GitLab