linux/drivers/net/wireless
Seth Forshee e041f65d5f brcmsmac: Remove internal tx queue
The brcmsmac internal tx buffering is problematic. The amount of
buffering is excessive (228 packets in addition to the 256 slots in each
DMA ring), and frames may be dropped due to a lack of flow control.

This patch reworks the transmit code path to remove the internal
buffering. Frames are immediately handed off to the DMA support rather
than passing through an intermediate queue. Non-aggregate frames are
queued immediately into the tx rings, and aggregate frames are queued
temporarily in an AMPDU session until ready for transmit.

Transmit flow control is also added to avoid dropping packets when the
tx rings are full. Conceptually this is a separate change, but it's
included in this commit because removing the tx queue without adding
flow control could cause significant problems.

Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Tested-by: Daniel Wagner <wagi@monom.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2012-11-20 14:04:23 -05:00
..
ath ath9k: Fix BTCOEX debugfs file usage 2012-11-19 10:45:40 -05:00
b43 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless 2012-10-29 16:05:51 -04:00
b43legacy b43legacy: Fix crash on unload when firmware not available 2012-09-28 13:54:07 -04:00
brcm80211 brcmsmac: Remove internal tx queue 2012-11-20 14:04:23 -05:00
hostap wireless: drivers: make use of WLAN_EID_VENDOR_SPECIFIC 2012-10-18 09:01:54 +02:00
ipw2x00 net/wireless: ipw2x00: remove unreachable code 2012-11-16 14:29:06 -05:00
iwlegacy wireless: Convert dev_printk(KERN_<LEVEL> to dev_<level>( 2012-11-14 14:55:32 -05:00
iwlwifi Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next 2012-11-16 14:07:54 -05:00
libertas add Marvell 88W8688 support to libertas_sdio 2012-11-14 14:55:34 -05:00
libertas_tf mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
mwifiex mwifiex: don't select lib80211 2012-11-16 14:29:08 -05:00
orinoco orinoco_usb: clean up some signedness issues 2012-10-19 15:53:04 -04:00
p54 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-09-28 11:11:16 -04:00
prism54 wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
rt2x00 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next 2012-11-16 13:59:51 -05:00
rtl818x Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2012-08-24 12:25:30 -04:00
rtlwifi rtlwifi: use eth_zero_addr() to assign zero address 2012-11-16 14:29:07 -05:00
ti mac80211: clarify interface iteration and make it configurable 2012-11-09 17:34:35 +01:00
zd1211rw Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2012-10-02 13:38:27 -07:00
adm8211.c mac80211: move TX station pointer and restructure TX 2012-07-31 16:18:39 +02:00
adm8211.h
airo_cs.c
airo.c wireless: drivers: make use of WLAN_EID_VENDOR_SPECIFIC 2012-10-18 09:01:54 +02:00
airo.h
at76c50x-usb.c wireless: Convert dev_printk(KERN_<LEVEL> to dev_<level>( 2012-11-14 14:55:32 -05:00
at76c50x-usb.h
atmel_cs.c
atmel_pci.c
atmel.c wireless: Remove casts to same type 2012-06-06 09:31:33 -07:00
atmel.h
Kconfig iwmc3200wifi: remove driver for unavailable hardware 2012-07-10 12:16:32 -04:00
mac80211_hwsim.c mac80211: clarify interface iteration and make it configurable 2012-11-09 17:34:35 +01:00
mac80211_hwsim.h
Makefile iwmc3200wifi: remove driver for unavailable hardware 2012-07-10 12:16:32 -04:00
mwl8k.c mwl8k: Send BASTREAM firmware commands per vif 2012-11-16 14:11:13 -05: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 cfg80211: allow per interface TX power setting 2012-10-30 09:11:34 +01:00
wl3501_cs.c wl3501_cs: use is_broadcast_ether_addr() instead of memcmp() 2012-09-07 15:03:40 -04:00
wl3501.h
zd1201.c USB: Disable hub-initiated LPM for comms devices. 2012-05-18 15:42:55 -07:00
zd1201.h