linux/drivers/net/wireless/ath/ath9k
Felix Fietkau 5519541d5a ath9k: fix powersave frame filtering/buffering in AP mode
This patch fixes a long standing issue of pending packets in the queue being
sent (and retransmitted many times) to sleeping stations.
This was made worse by aggregation through driver-internal retransmitting
of A-MDPU subframes.
Previously the hardware tx filter was cleared unconditionally for every
single packet - with this patch it uses the IEEE80211_TX_CTL_CLEAR_PS_FILT
for unaggregated frames.
A sta_notify driver op is added to stop aggregation for stations when they
enter powersave mode. Subframes stay buffered inside the driver, to ensure
that the BlockAck window keeps a sane state.
Since the driver uses software aggregation, the clearing of the tx filter
needs to be handled by the driver instead of mac80211 for aggregated frames.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2011-04-19 15:38:06 -04:00
..
Kconfig ath9k: introduce ATH9K_{PCI,AHB} config options 2011-04-13 15:21:34 -04:00
Makefile ath9k_htc: Move debug code to a separate file 2011-04-13 15:22:37 -04:00
ahb.c ath9k: Register id table for platform device 2011-04-12 16:59:51 -04:00
ani.c ath9k_hw: Disable MRC CCK for AR9485 2010-12-07 16:54:23 -05:00
ani.h
ar5008_initvals.h
ar5008_phy.c ath9k_hw: turn a few big macros into functions 2011-03-30 14:15:19 -04:00
ar9001_initvals.h
ar9002_calib.c ath9k_hw: Fix throughput drops in HT40 mode for AR9287 chips 2011-03-30 14:15:11 -04:00
ar9002_hw.c ath9k_hw: Fix system hang when resuming from S3/S4 2011-01-28 15:27:20 -05:00
ar9002_initvals.h
ar9002_mac.c ath9k: fix powersave frame filtering/buffering in AP mode 2011-04-19 15:38:06 -04:00
ar9002_phy.c ath9k: fix spur mitigation no-spur case for AR9002 2011-01-04 14:35:12 -05:00
ar9002_phy.h ath9k_hw: Fix instable target power control b/w CCK/OFDM 2011-04-12 16:57:35 -04:00
ar9003_2p2_initvals.h ath9k_hw: update AR9003 low_ob_db_tx_gain to improve spur performance 2011-04-12 16:59:45 -04:00
ar9003_calib.c ath9k_hw: Tx IQ cal changes for AR9003 2010-12-16 15:22:30 -05:00
ar9003_eeprom.c ath9k_hw: Update PMU setting to improve ripple issue for AR9485. 2011-01-28 15:44:29 -05:00
ar9003_eeprom.h ath9k_hw: Add a helper to get paprd scale factor 2010-12-16 15:22:30 -05:00
ar9003_hw.c ath9k_hw: Use appropriate rx gain table for AR9485 2011-04-04 16:20:06 -04:00
ar9003_mac.c ath9k: fix powersave frame filtering/buffering in AP mode 2011-04-19 15:38:06 -04:00
ar9003_mac.h ath9k_hw: optimize all descriptor access functions 2010-11-09 16:13:25 -05:00
ar9003_paprd.c ath9k_hw: fix PA predistortion HT40 mask 2010-12-20 14:52:18 -05:00
ar9003_phy.c ath9k: Implement integer mode for AR9485 2011-04-12 16:59:37 -04:00
ar9003_phy.h ath9k_hw: replace magic values in register writes with proper defines 2011-01-21 16:21:43 -05:00
ar9485_initvals.h ath9k: Update gain table for AR9485 2011-04-12 16:58:41 -04:00
ath9k.h ath9k: fix powersave frame filtering/buffering in AP mode 2011-04-19 15:38:06 -04:00
beacon.c ath9k: Fix beacon generation on foreign channel 2011-04-19 15:38:05 -04: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 ath9k_hw: Increase the wait count for nf load. 2011-03-11 14:15:36 -05:00
calib.h
common.c ath9k: cleanup few redundant macros 2011-04-04 16:18:33 -04:00
common.h ath9k: move update tx power to common 2011-02-03 16:44:43 -05:00
debug.c ath9k: Add RSSI information from control and extension chains 2011-04-12 16:58:39 -04:00
debug.h ath9k: Add RSSI information from control and extension chains 2011-04-12 16:58:39 -04:00
eeprom.c ath9k_hw: Offload USB eeprom reading to target 2011-01-19 11:36:06 -05:00
eeprom.h ath9k_hw: Fix instable target power control b/w CCK/OFDM 2011-04-12 16:57:35 -04:00
eeprom_4k.c ath9k_hw: Fix instable target power control b/w CCK/OFDM 2011-04-12 16:57:35 -04:00
eeprom_9287.c ath9k_hw: Remove unused code in AR9287 eeprom 2011-04-12 16:59:40 -04:00
eeprom_def.c ath9k_hw: Speedup register ops for HTC driver 2011-03-30 14:15:12 -04:00
gpio.c ath9k: add support for overriding LED pin and GPIO settings from platform data 2011-03-30 14:15:15 -04:00
hif_usb.c ath9k: avoid using trinary operator w/ TX_STAT_INC 2011-04-14 15:29:06 -04:00
hif_usb.h ath9k_htc: Use separate URB pool for management frames 2011-04-13 15:24:34 -04:00
htc.h ath9k_htc: Cleanup HTC debugfs 2011-04-19 15:38:03 -04:00
htc_drv_beacon.c ath9k_htc: Fix free slot value for cab queue 2011-04-19 15:38:05 -04:00
htc_drv_debug.c ath9k_htc: Cleanup HTC debugfs 2011-04-19 15:38:03 -04:00
htc_drv_gpio.c ath9k_htc: Drain pending TX frames properly 2011-04-13 15:24:08 -04:00
htc_drv_init.c ath9k_htc: Cleanup HTC debugfs 2011-04-19 15:38:03 -04:00
htc_drv_main.c ath9k_htc: Add a timer to cleanup WMI events 2011-04-13 15:24:30 -04:00
htc_drv_txrx.c ath9k_htc: Use helper routines for transmission 2011-04-13 15:24:37 -04:00
htc_hst.c ath9k_htc: Drain packets on station removal 2011-04-13 15:24:16 -04:00
htc_hst.h ath9k_htc: Drain packets on station removal 2011-04-13 15:24:16 -04:00
hw-ops.h ath9k: fix powersave frame filtering/buffering in AP mode 2011-04-19 15:38:06 -04:00
hw.c ath9k: Implement integer mode for AR9485 2011-04-12 16:59:37 -04:00
hw.h ath9k: fix powersave frame filtering/buffering in AP mode 2011-04-19 15:38:06 -04:00
init.c ath9k_hw: remove pCap->keycache_size 2011-03-30 14:15:20 -04:00
mac.c ath9k: cleanup few redundant macros 2011-04-04 16:18:33 -04:00
mac.h ath9k: fix powersave frame filtering/buffering in AP mode 2011-04-19 15:38:06 -04:00
main.c ath9k: fix powersave frame filtering/buffering in AP mode 2011-04-19 15:38:06 -04:00
pci.c ath9k: fold struct ath_wiphy into struct ath_softc 2011-01-28 15:42:00 -05:00
phy.h ath9k: Implement integer mode for AR9485 2011-04-12 16:59:37 -04:00
rc.c ath9k: index out of bounds 2011-04-12 16:59:32 -04:00
rc.h ath9k : few rate control clean ups 2011-01-04 14:46:13 -05:00
recv.c ath9k: fix too early enabling of rx during ath_startrecv() 2011-04-12 16:57:36 -04:00
reg.h ath9k: Implement integer mode for AR9485 2011-04-12 16:59:37 -04:00
wmi.c ath9k_htc: Add detailed firmware statistics 2011-04-13 15:24:41 -04:00
wmi.h ath9k_htc: Add detailed firmware statistics 2011-04-13 15:24:41 -04:00
xmit.c ath9k: fix powersave frame filtering/buffering in AP mode 2011-04-19 15:38:06 -04:00