kernel-ark/drivers/net/wireless
Lennert Buytenhek 1e9f9de3b1 mwl8k: keep TX_DONE interrupt masked while transmit reclaim is running
By making use of the CLEAR_SEL feature of the mwl8k host interface
interrupt controller, we can keep the TX_DONE interrupt source masked
while the transmit reclaim tasklet is running (NAPI style) without
having to touch the interrupt controller's interrupt mask register
when entering or exiting polling mode, and without having to do any
more register reads/writes than we do now.

When CLEAR_SEL is enabled on the TX_DONE interrupt source, reading
the interrupt status register will clear the TX_DONE status bit if
it was set, allowing it to be set again if a new TX_DONE event arrives
while we are running the TX reclaim tasklet, but such a new event will
then not trigger another PCI interrupt until a zero is written to the
TX_DONE interrupt status register bit.

I.e., if we write a zero to the TX_DONE interrupt source bit in the
interrupt status register when the TX reclaim tasklet thinks it's
done, a PCI interrupt will be triggered if a new TX_DONE event arrived
from the hardware between us deciding that there is no more work to do
and re-enabling the TX_DONE interrupt source, thereby avoiding the
classic NAPI poll mode exit race that would otherwise occur.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2010-01-12 14:02:10 -05:00
..
ath ath9k: Fix monitor mode handling 2010-01-12 14:02:06 -05:00
b43 b43: LP-PHY: note and explain specs inconsistency 2010-01-12 13:57:57 -05:00
b43legacy mac80211: remove struct ieee80211_if_init_conf 2009-12-28 16:55:07 -05:00
hostap
ipw2x00
iwlwifi Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-01-05 17:18:59 -05:00
iwmc3200wifi Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2009-12-30 15:25:08 -05:00
libertas Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2009-12-30 15:25:08 -05:00
libertas_tf Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2009-12-30 15:25:08 -05:00
orinoco orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled 2009-12-28 15:55:47 -05:00
p54 mac80211: remove struct ieee80211_if_init_conf 2009-12-28 16:55:07 -05:00
prism54
rt2x00 rt2x00: Make rt2800_init_led static and don't export it. 2010-01-12 13:51:24 -05:00
rtl818x mac80211: remove struct ieee80211_if_init_conf 2009-12-28 16:55:07 -05:00
wl12xx wl1251: fix sleep related error paths in wl1251_op_bss_info_changed() 2010-01-12 13:51:28 -05:00
zd1211rw Merge git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 2010-01-05 17:18:59 -05:00
adm8211.c mac80211: remove struct ieee80211_if_init_conf 2009-12-28 16:55:07 -05:00
adm8211.h
airo_cs.c
airo.c
airo.h
at76c50x-usb.c mac80211: remove struct ieee80211_if_init_conf 2009-12-28 16:55:07 -05:00
at76c50x-usb.h
atmel_cs.c
atmel_pci.c
atmel.c
atmel.h
Kconfig
mac80211_hwsim.c mac80211: remove struct ieee80211_if_init_conf 2009-12-28 16:55:07 -05:00
Makefile
mwl8k.c mwl8k: keep TX_DONE interrupt masked while transmit reclaim is running 2010-01-12 14:02:10 -05:00
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c
wl3501_cs.c
wl3501.h
zd1201.c
zd1201.h