linux/drivers/net/wireless/ath/ath9k
Rajkumar Manoharan 01e189182d ath9k: recover ar9380 chips from rare stuck state
In the experiment with Azimuth ADEPT-n testbed where the APs transmit
power was reduced to 25% and the signal strength was futher attenuated
by 20dB and induced a path loss of ~7dB, the station was reporting
beacon losses and the following issue were observed.

* rx clear is stuck at low for more than 300ms
* dcu chain and complete state is stuck at one of the hang signature

This patch triggers the hang detection logic that recovers the chip
from any of the above conditions. As the issue was originally reported
in ChromeOs with AR9382 chips, this detection logic is enabled only for
AR9380/2 chips.

Cc: Paul Stewart <pstew@google.com>
Reported-by: Gary Morain <gmorain@google.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-04-09 16:05:53 -04:00
..
Kconfig ath9k: make MAC sample statistics optional 2012-03-07 13:51:38 -05:00
Makefile ath9k_hw: Use CONFIG_ATH9K_BTCOEX_SUPPORT 2012-02-27 14:06:37 -05:00
ahb.c drivers/net: Add module.h to drivers who were implicitly using it 2011-10-31 19:31:07 -04:00
ani.c ath9k_hw: improve ANI processing and rx desensitizing parameters 2012-04-09 16:05:52 -04:00
ani.h ath9k_hw: improve ANI processing and rx desensitizing parameters 2012-04-09 16:05:52 -04:00
ar5008_initvals.h ath9k_hw: fix the last register write for ar5416 addac 2011-09-13 15:42:31 -04:00
ar5008_phy.c ath9k_hw: improve ANI processing and rx desensitizing parameters 2012-04-09 16:05:52 -04:00
ar9001_initvals.h ath9k_hw: remove duplicate initvals 2012-02-27 14:05:41 -05:00
ar9002_calib.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
ar9002_hw.c ath9k: inline AR9271 1.0 INI overrides 2012-03-15 13:45:08 -04:00
ar9002_initvals.h ath9k: inline AR9271 1.0 INI overrides 2012-03-15 13:45:08 -04:00
ar9002_mac.c ath9k_hw: clean up ath9k_hw_setuprxdesc 2012-03-15 13:45:04 -04:00
ar9002_phy.c ath9k_hw: add a missing delay for an analog register 2011-07-11 15:02:15 -04:00
ar9002_phy.h ath9k: inline AR9271 1.0 INI overrides 2012-03-15 13:45:08 -04:00
ar9003_2p2_initvals.h ath9k_hw: remove unused initvals 2012-03-15 13:45:09 -04:00
ar9003_calib.c ath9k_hw: Setup MCI calibration using a helper 2012-02-27 14:06:36 -05:00
ar9003_eeprom.c ath9k: Remove AR9462 v1.0 support 2012-02-27 14:06:33 -05:00
ar9003_eeprom.h ath9k_hw: Read and configure quick drop for AR9003 2011-11-11 12:32:48 -05:00
ar9003_hw.c ath9k_hw: clean up iniModesAdditional 2012-03-15 13:45:07 -04:00
ar9003_mac.c ath9k: get rid of double queueing of rx frames on EDMA 2012-03-07 13:51:38 -05:00
ar9003_mac.h ath9k: Fix descriptor length for AR9462 2012-02-27 14:05:44 -05:00
ar9003_mci.c ath9k_hw: MCI whitespace/debug cleanup 2012-02-27 14:06:40 -05:00
ar9003_mci.h ath9k_hw: Use CONFIG_ATH9K_BTCOEX_SUPPORT 2012-02-27 14:06:37 -05:00
ar9003_paprd.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
ar9003_phy.c ath9k_hw: improve ANI processing and rx desensitizing parameters 2012-04-09 16:05:52 -04:00
ar9003_phy.h ath9k: Remove AR9462 v1.0 support 2012-02-27 14:06:33 -05:00
ar9003_rtt.c ath9k_hw: fix sparse warnings on ar9003_rtt.c 2012-01-04 14:30:40 -05:00
ar9003_rtt.h ath9k_hw: Add radio retention support for AR9480 2011-10-14 14:48:22 -04:00
ar9330_1p1_initvals.h ath9k: add AR9330 initvals 2011-06-22 16:09:49 -04:00
ar9330_1p2_initvals.h ath9k: add AR9330 initvals 2011-06-22 16:09:49 -04:00
ar9340_initvals.h
ar9462_2p0_initvals.h ath9k: Remove unused initvals 2012-02-27 14:05:43 -05:00
ar9485_initvals.h ath9k_hw: Update AR9485 initvals to fix system hang issue 2011-11-02 15:23:12 -04:00
ar9580_1p0_initvals.h ath9k_hw: add AR9580 support 2011-08-26 10:47:58 -04:00
ath9k.h ath9k: recover ar9380 chips from rare stuck state 2012-04-09 16:05:53 -04:00
beacon.c ath9k: Fix multi-VIF BSS handling 2012-03-15 13:40:29 -04:00
btcoex.c ath9k: Remove ATH_BTCOEX_CFG_NONE checks 2012-02-27 14:06:38 -05:00
btcoex.h ath9k_hw: Use CONFIG_ATH9K_BTCOEX_SUPPORT 2012-02-27 14:06:37 -05:00
calib.c ath9k: fix max noise floor threshold 2012-03-26 15:07:23 -04:00
calib.h ath9k_hw: fix a comment 2012-01-10 15:46:39 -05:00
common.c ath9k_hw: clean up tx power handling 2011-10-11 16:41:26 -04:00
common.h ath9k: Move ath9k_init_crypto to common 2011-08-24 13:59:45 -04:00
debug.c ath9k: Remove 'other' VIF count 2012-03-15 13:40:27 -04:00
debug.h ath9k: recover ar9380 chips from rare stuck state 2012-04-09 16:05:53 -04:00
dfs.c ath9k: fix roadkill due to Joe's patch on ath_dbg() changes 2011-12-21 15:06:11 -05:00
dfs.h ath9k: add DFS radar pulse processing 2011-12-15 14:46:37 -05:00
dfs_debug.c ath9k: add DFS radar pulse processing 2011-12-15 14:46:37 -05:00
dfs_debug.h ath9k: classify DFS debug header further 2011-12-21 15:06:09 -05:00
eeprom.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
eeprom.h ath9k_hw: Read and configure quick drop for AR9003 2011-11-11 12:32:48 -05:00
eeprom_4k.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
eeprom_9287.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
eeprom_def.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-01-03 15:16:34 -05:00
gpio.c ath9k: Fix BTCOEX shutdown 2012-03-12 14:19:33 -04:00
hif_usb.c ath9k: cleanup a min_t() cast 2012-02-06 14:55:42 -05:00
hif_usb.h ath9k_htc: Load firmware asynchronously 2012-01-30 15:48:42 -05:00
htc.h ath9k_htc: Use CONFIG_ATH9K_BTCOEX_SUPPORT 2012-02-27 14:06:38 -05:00
htc_drv_beacon.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
htc_drv_debug.c wireless: ath9k: use %pM to print MAC 2011-07-20 15:04:39 -04:00
htc_drv_gpio.c ath9k: Remove ATH_BTCOEX_CFG_NONE checks 2012-02-27 14:06:38 -05:00
htc_drv_init.c ath9k_htc: Init BTCOEX inside htc_drv_gpio.c 2012-02-27 14:06:38 -05:00
htc_drv_main.c ath9k_hw: remove ath9k_hw_htc_resetinit 2012-03-15 13:43:14 -04:00
htc_drv_txrx.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
htc_hst.c drivers/net: Remove unnecessary k.alloc/v.alloc OOM messages 2012-01-31 16:20:21 -05:00
htc_hst.h
hw-ops.h drivers/net: Remove boolean comparisons to true/false 2012-02-13 00:47:40 -05:00
hw.c ath9k: recover ar9380 chips from rare stuck state 2012-04-09 16:05:53 -04:00
hw.h ath9k: inline AR9271 1.0 INI overrides 2012-03-15 13:45:08 -04:00
init.c ath9k: recover ar9380 chips from rare stuck state 2012-04-09 16:05:53 -04:00
mac.c ath9k_hw: remove ath9k_hw_gettxintrtxqs 2012-03-15 13:45:04 -04:00
mac.h ath9k_hw: remove ath9k_hw_gettxintrtxqs 2012-03-15 13:45:04 -04:00
main.c ath9k: recover ar9380 chips from rare stuck state 2012-04-09 16:05:53 -04:00
mci.c ath9k: Cleanup mci.c 2012-02-27 14:06:40 -05:00
mci.h ath9k_hw: Cleanup MCI bits from hw.h 2012-02-27 14:06:36 -05:00
pci.c ath9k_hw: make bluetooth coexistence support optional at compile time 2011-12-19 14:46:55 -05:00
phy.h
rc.c ath9k: Fix multi-VIF BSS handling 2012-03-15 13:40:29 -04:00
rc.h ath9k: completely zero intialize valid_phy_rate_idx 2012-03-05 15:23:14 -05:00
recv.c ath9k: recover ar9380 chips from rare stuck state 2012-04-09 16:05:53 -04:00
reg.h ath9k_hw: Fix enabling of MCI and RTT 2012-03-12 14:19:37 -04:00
wmi.c ath: Convert ath_dbg(bar, ATH_DBG_<FOO>, to ath_dbg(bar, FOO 2011-12-19 14:35:31 -05:00
wmi.h
xmit.c ath9k_hw: remove ath9k_hw_gettxintrtxqs 2012-03-15 13:45:04 -04:00