android_kernel_motorola_sm6225/drivers/net/wireless
Sujith Manoharan adfbda6224 ath9k: Fix TX filter usage
The TX filter bit for a station would be set by the HW
when a frame is not acked. A frame would be completed with
ATH9K_TXERR_FILT status only when the corresponding filter bit
for the destination station is already set.

Currently, un-acknowledged  packets are added to the pending queue
and retried, but the "clear_dest_mask" bit in the descriptor is
set only when the TX status has been ATH9K_TXERR_FILT. This results
in packet loss and the log shows:

wlan0: dropped TX filtered frame, queue_len=0 PS=0 @4309746071
wlan0: dropped TX filtered frame, queue_len=0 PS=0 @4309746076
wlan0: dropped TX filtered frame, queue_len=0 PS=0 @4309746377
...
...

This issue can be resolved by making sure that the destination
mask is cleared when the packet is being retried and the earlier
TX status is ATH9K_TXERR_XRETRY.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-09-07 15:03:42 -04:00
..
ath ath9k: Fix TX filter usage 2012-09-07 15:03:42 -04:00
b43 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2012-08-21 16:00:21 -04:00
b43legacy Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2012-08-21 16:00:21 -04:00
brcm80211 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2012-08-21 16:00:21 -04:00
hostap wireless: use is_broadcast_ether_addr() instead of memcmp() 2012-09-07 15:03:39 -04:00
ipw2x00 ipw2200: use is_zero_ether_addr() and is_broadcast_ether_addr() 2012-09-07 15:03:37 -04:00
iwlegacy Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2012-08-21 16:00:21 -04:00
iwlwifi iwlwifi: remove radio_config from eeprom_data 2012-09-05 16:18:01 +02:00
libertas Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-07-20 12:30:48 -04:00
libertas_tf mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
mwifiex mwifiex: make use of is_zero_ether_addr() 2012-09-07 15:03:41 -04:00
orinoco orinoco: use is_zero_ether_addr() instead of memcmp() 2012-09-07 15:03:37 -04:00
p54 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2012-08-21 16:00:21 -04:00
prism54 wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
rt2x00 mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
rtl818x mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
rtlwifi rtlwifi: rtl8192c: remove pointless conditional before kfree_skb() 2012-09-07 15:03:42 -04:00
ti wl18xx: remove duplicated include from main.c 2012-09-07 15:03:40 -04:00
zd1211rw mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
adm8211.c mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
adm8211.h
airo.c airo: remove duplicated include from airo.c 2012-09-07 15:03:40 -04:00
airo.h
airo_cs.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
at76c50x-usb.c mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
at76c50x-usb.h
atmel.c wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
atmel.h
atmel_cs.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
atmel_pci.c net/wireless: use module_pci_driver 2012-04-16 14:38:50 -04:00
Kconfig iwmc3200wifi: remove driver for unavailable hardware 2012-07-10 12:16:32 -04:00
mac80211_hwsim.c Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2012-08-21 16:00:21 -04:00
mac80211_hwsim.h
Makefile iwmc3200wifi: remove driver for unavailable hardware 2012-07-10 12:16:32 -04:00
mwl8k.c mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
ray_cs.c wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
ray_cs.h
rayctl.h
rndis_wlan.c nl80211: move scan API to wdev 2012-07-12 12:10:41 +02:00
wl3501.h
wl3501_cs.c wl3501_cs: use is_broadcast_ether_addr() instead of memcmp() 2012-09-07 15:03:40 -04:00
zd1201.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
zd1201.h