summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/ath9k.h
diff options
context:
space:
mode:
authorFelix Fietkau2010-07-02 00:09:52 +0200
committerJohn W. Linville2010-07-02 19:44:38 +0200
commit347809fc2c99da5b89f1c014f3e5a0f85c04803c (patch)
tree6bacea4f51a2ab8711deaea1ee4eecc213ff39ca /drivers/net/wireless/ath/ath9k/ath9k.h
parentath9k_hw: clean up the noise floor calibration code to reduce code duplication (diff)
downloadkernel-qcow2-linux-347809fc2c99da5b89f1c014f3e5a0f85c04803c.tar.gz
kernel-qcow2-linux-347809fc2c99da5b89f1c014f3e5a0f85c04803c.tar.xz
kernel-qcow2-linux-347809fc2c99da5b89f1c014f3e5a0f85c04803c.zip
ath9k: fix false positives in the baseband hang check
ath9k_hw_check_alive() occasionally returns false, as the hardware is still processing data in a specific state. Fix this issue by repeating the test a few times with longer delay inbetween attempts. This gets rid of excessive hardware resets that appear frequently on some AR9132 based devices, but could also happen on AR9280. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Reported-by: Björn Smedman <bjorn.smedman@venatech.se> Cc: stable@kernel.org Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/ath9k.h')
-rw-r--r--drivers/net/wireless/ath/ath9k/ath9k.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h
index 72d5e52abb8f..6e486a508edb 100644
--- a/drivers/net/wireless/ath/ath9k/ath9k.h
+++ b/drivers/net/wireless/ath/ath9k/ath9k.h
@@ -428,6 +428,7 @@ int ath_beaconq_config(struct ath_softc *sc);
#define ATH_PAPRD_TIMEOUT 100 /* msecs */
+void ath_hw_check(struct work_struct *work);
void ath_paprd_calibrate(struct work_struct *work);
void ath_ani_calibrate(unsigned long data);
@@ -562,6 +563,7 @@ struct ath_softc {
spinlock_t sc_pm_lock;
struct mutex mutex;
struct work_struct paprd_work;
+ struct work_struct hw_check_work;
struct completion paprd_complete;
u32 intrstatus;