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/init.c | |
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/init.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/init.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c index 8700e3dc53cf..fe730cb16ec2 100644 --- a/drivers/net/wireless/ath/ath9k/init.c +++ b/drivers/net/wireless/ath/ath9k/init.c @@ -718,6 +718,7 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc, u16 subsysid, goto error_world; } + INIT_WORK(&sc->hw_check_work, ath_hw_check); INIT_WORK(&sc->paprd_work, ath_paprd_calibrate); INIT_WORK(&sc->chan_work, ath9k_wiphy_chan_work); INIT_DELAYED_WORK(&sc->wiphy_work, ath9k_wiphy_work); |