linux/drivers/net/wireless/ath/ath5k
Maxim Levitsky 6ccf15a1a7 ath5k: disable ASPM L0s for all cards
Atheros PCIe wireless cards handled by ath5k do require L0s disabled.
For distributions shipping with CONFIG_PCIEASPM (this will be enabled
by default in the future in 2.6.36) this will also mean both L1 and L0s
will be disabled when a pre 1.1 PCIe device is detected. We do know L1
works correctly even for all ath5k pre 1.1 PCIe devices though but cannot
currently undue the effect of a blacklist, for details you can read
pcie_aspm_sanity_check() and see how it adjusts the device link
capability.

It may be possible in the future to implement some PCI API to allow
drivers to override blacklists for pre 1.1 PCIe but for now it is
best to accept that both L0s and L1 will be disabled completely for
distributions shipping with CONFIG_PCIEASPM rather than having this
issue present. Motivation for adding this new API will be to help
with power consumption for some of these devices.

Example of issues you'd see:

  - On the Acer Aspire One (AOA150, Atheros Communications Inc. AR5001
    Wireless Network Adapter [168c:001c] (rev 01)) doesn't work well
    with ASPM enabled, the card will eventually stall on heavy traffic
    with often 'unsupported jumbo' warnings appearing. Disabling
    ASPM L0s in ath5k fixes these problems.

  - On the same card you would see a storm of RXORN interrupts
    even though medium is idle.

Credit for root causing and fixing the bug goes to Jussi Kivilinna.

Cc: David Quan <David.Quan@atheros.com>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Tim Gardner <tim.gardner@canonical.com>
Cc: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
Cc: stable@kernel.org
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-08-13 13:46:20 -04:00
..
ani.c ath5k: print error message if ANI levels are out of range 2010-06-02 16:13:27 -04:00
ani.h ath5k: Adaptive Noise Immunity (ANI) Implementation 2010-04-07 14:37:53 -04:00
ath5k.h ath5k: use direct function calls for descriptors when possible 2010-06-16 14:59:03 -04:00
attach.c Merge branch 'wireless-2.6' into wireless-next-2.6 2010-06-25 14:47:02 -07:00
base.c ath5k: disable ASPM L0s for all cards 2010-08-13 13:46:20 -04:00
base.h ath5k: clean up rxlink handling 2010-07-14 13:52:46 -04:00
caps.c ath5k: remove ATH_TRACE macro 2010-06-02 16:13:24 -04:00
debug.c ath5k: snprintf() returns largish values 2010-07-26 15:32:41 -04:00
debug.h ath5k: add debugfs file for queue debugging 2010-06-08 09:31:21 -04:00
desc.c ath5k: report PHY error frames only for chips which need it 2010-06-16 14:59:07 -04:00
desc.h ath5k: take descriptor differences between 5210 and 5211 into account 2010-06-16 14:59:06 -04:00
dma.c ath5k: remove ATH_TRACE macro 2010-06-02 16:13:24 -04:00
eeprom.c ath5k: remove ATH_TRACE macro 2010-06-02 16:13:24 -04:00
eeprom.h ath5k: Minor EEPROM documentation updates 2010-03-10 17:44:42 -05:00
gpio.c ath5k: remove ATH_TRACE macro 2010-06-02 16:13:24 -04:00
initvals.c
Kconfig wireless: remove WLAN_80211 and WLAN_PRE80211 from Kconfig 2009-10-30 16:50:35 -04:00
led.c ath5k: adding LED support for AR5BXB63 cards 2010-01-27 15:01:24 -05:00
Makefile ath5k: add sysfs files for ANI parameters 2010-06-02 16:13:26 -04:00
pcu.c ath5k: remove ATH_TRACE macro 2010-06-02 16:13:24 -04:00
phy.c ath5k: fix antenna div gc for <= AR5K_SREV_PHY_2413 2010-06-28 15:16:19 -04:00
qcu.c ath5k: remove ATH_TRACE macro 2010-06-02 16:13:24 -04:00
reg.h ath5k: Use high bitrates for ACK/CTS 2010-04-14 14:52:41 -04:00
reset.c ath5k: no need to save/restore the default antenna 2010-06-08 09:31:21 -04:00
rfbuffer.h
rfgain.h
rfkill.c
sysfs.c ath5k: add sysfs files for ANI parameters 2010-06-02 16:13:26 -04:00