diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-07-02 00:09:52 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-07-02 13:44:38 -0400 |
commit | 347809fc2c99da5b89f1c014f3e5a0f85c04803c (patch) | |
tree | 6bacea4f51a2ab8711deaea1ee4eecc213ff39ca /drivers/net/wireless/ath/ath9k/ath9k.h | |
parent | 54bd5006b03ee980f6067b4d61c3605b5a5e1d4a (diff) | |
download | blackbird-op-linux-347809fc2c99da5b89f1c014f3e5a0f85c04803c.tar.gz blackbird-op-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.h | 2 |
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; |