diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-02-17 22:15:26 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-02-17 22:15:26 +0000 |
commit | de28901e44337a0975265a519c3d91fd71b02f5b (patch) | |
tree | e5889be0640595a68d0426a73dc9c7665feaeed6 /package | |
parent | 383008635a48cc1453ae21f649ce7864cb7003f2 (diff) | |
download | upstream-de28901e44337a0975265a519c3d91fd71b02f5b.tar.gz upstream-de28901e44337a0975265a519c3d91fd71b02f5b.tar.bz2 upstream-de28901e44337a0975265a519c3d91fd71b02f5b.zip |
ath5k: do not stop the hardware queues during PAPD calibration, speeds up calibration
SVN-Revision: 30623
Diffstat (limited to 'package')
-rw-r--r-- | package/mac80211/patches/440-ath5k_calibrate_no_queue_stop.patch | 31 |
1 files changed, 31 insertions, 0 deletions
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; + } + |