linux/drivers/net/wireless/ath/ath9k
Luis R. Rodriguez c2731b814e ath9k: Fix power save count imbalance on ath_radio_enable()
Upon a failure we never call ath9k_ps_restore() on ath_radio_enable(),
this will throw off the sc->ps_usecount. When the sc->ps_usecount
is > 0 we never put the chip to full sleep. This drains battery,
and will also make the chip fail upon resume with:

ath: Starting driver with initial channel: 5745 MHz
ath: timeout (100000 us) on reg 0x7000: 0xdeadbeef & 0x00000003 != 0x00000000

This would make the chip useless upon resume.

I cannot prove this can happen but in theory it is so best to
avoid this race completely and not have users complain about
a broken device after resume.

Cc: stable@kernel.org
Cc: Paul Stewart <pstew@google.com>
Cc: Amod Bodas <amod.bodas@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-12-13 15:23:27 -05:00
..
ahb.c ath: Convert ath_print(.., ATH_DBG_FATAL to ath_err 2010-12-07 16:34:47 -05:00
ani.c ath9k_hw: Disable MRC CCK for AR9485 2010-12-07 16:54:23 -05:00
ani.h ath9k_hw: move the cycle counter tracking to ath 2010-10-11 15:04:20 -04:00
ar5008_initvals.h
ar5008_phy.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
ar9001_initvals.h
ar9002_calib.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
ar9002_hw.c ath: Convert ath_print(.., ATH_DBG_FATAL to ath_err 2010-12-07 16:34:47 -05:00
ar9002_initvals.h
ar9002_mac.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
ar9002_phy.c ath9k: Use static const 2010-11-22 15:58:44 -05:00
ar9002_phy.h
ar9003_2p2_initvals.h ath9k_hw: Fix TX carrier leakage for IEEE compliance on AR9003 2.2 2010-10-25 14:43:14 -04:00
ar9003_calib.c ath9k_hw: Add IQ cal changes for AR9485 2010-12-07 16:54:14 -05:00
ar9003_eeprom.c ath9k_hw: Configure power control only for the supported chains 2010-12-07 16:34:59 -05:00
ar9003_eeprom.h ath9k_hw: Add a helper function to get spur channel pointer from cal data for AR9003 family 2010-12-07 16:34:55 -05:00
ar9003_hw.c ath9k_hw: Initialize tx/rx gain table from initvals.h for AR9485 2010-12-07 16:34:51 -05:00
ar9003_mac.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
ar9003_mac.h ath9k_hw: optimize all descriptor access functions 2010-11-09 16:13:25 -05:00
ar9003_paprd.c ath9k_hw: Setup paprd only for supported chains 2010-12-07 16:54:23 -05:00
ar9003_phy.c ath9k: Read spur channel information from eeprom for AR9485 2010-12-07 16:34:56 -05:00
ar9003_phy.h ath9k_hw: Setup paprd only for supported chains 2010-12-07 16:54:23 -05:00
ar9485_initvals.h ath9k_hw: Add initvals.h for AR9485 2010-12-07 16:34:50 -05:00
ath9k.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-12-08 16:23:31 -05:00
beacon.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
btcoex.c ath9k: Remove code which enables btcoex based on subsys id 2010-11-29 15:24:36 -05:00
btcoex.h ath9k: Remove code which enables btcoex based on subsys id 2010-11-29 15:24:36 -05:00
calib.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
calib.h
common.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
common.h ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
debug.c ath9k: Move debugfs under ieee80211/[phyname]/ath9k/ 2010-12-02 15:16:41 -05:00
debug.h ath9k: Move debugfs under ieee80211/[phyname]/ath9k/ 2010-12-02 15:16:41 -05:00
eeprom.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
eeprom.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-12-02 15:46:37 -05:00
eeprom_4k.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
eeprom_9287.c ath9k_htc: Cleanup device identification 2010-12-07 17:08:06 -05:00
eeprom_def.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-12-08 16:23:31 -05:00
gpio.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
hif_usb.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-12-08 16:23:31 -05:00
hif_usb.h ath9k_htc: Cleanup device identification 2010-12-07 17:08:06 -05:00
htc.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-12-08 16:23:31 -05:00
htc_drv_beacon.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
htc_drv_gpio.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
htc_drv_init.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-12-08 16:23:31 -05:00
htc_drv_main.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-12-08 16:23:31 -05:00
htc_drv_txrx.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
htc_hst.c ath9k_htc: Identify devices using driver_info 2010-11-24 16:19:41 -05:00
htc_hst.h ath9k_htc: Remove unused structures 2010-12-02 15:16:48 -05:00
hw-ops.h
hw.c ath9k_hw: warn if we cannot change the power to the chip 2010-12-08 15:38:46 -05:00
hw.h ath9k_htc: Cleanup device identification 2010-12-07 17:08:06 -05:00
init.c ath9k: Parse DTIM period from mac80211 2010-12-07 17:08:08 -05:00
Kconfig
mac.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-12-08 16:23:31 -05:00
mac.h ath9k_hw: remove ath9k_hw_stoppcurecv 2010-11-24 16:19:41 -05:00
main.c ath9k: Fix power save count imbalance on ath_radio_enable() 2010-12-13 15:23:27 -05:00
Makefile
pci.c ath9k: Add device id of AR9485 to pci table 2010-12-07 16:54:24 -05:00
phy.h ath9k_hw: Find chansel of AR_PHY_65NM_CH0_SYNTH7 for AR9485 2010-12-07 16:34:55 -05:00
rc.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
rc.h ath9k: remove the tx info padding byte abuse 2010-11-16 16:37:07 -05:00
recv.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-12-08 16:23:31 -05:00
reg.h ath9k_htc: Cleanup device identification 2010-12-07 17:08:06 -05:00
virtual.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
wmi.c ath: Convert ath_print to ath_dbg 2010-12-07 16:34:48 -05:00
wmi.h
xmit.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-12-08 16:23:31 -05:00