android_kernel_motorola_sm6225/drivers/net/wireless/wl12xx
Ido Yariv a620865edf wl12xx: Switch to a threaded interrupt handler
To achieve maximal throughput, it is very important to react to
interrupts as soon as possible. Currently the interrupt handler wakes up
a worker for handling interrupts in process context. A cleaner and more
efficient design would be to request a threaded interrupt handler.  This
handler's priority is very high, and can do blocking operations such as
SDIO/SPI transactions.

Some work can be deferred, mostly calls to mac80211 APIs
(ieee80211_rx_ni and ieee80211_tx_status). By deferring such work to a
different worker, we can keep the irq handler thread more I/O
responsive. In addition, on multi-core systems the two threads can be
scheduled on different cores, which will improve overall performance.

The use of WL1271_FLAG_IRQ_PENDING & WL1271_FLAG_IRQ_RUNNING was
changed. For simplicity, always query the FW for more pending
interrupts. Since there are relatively long bursts of interrupts, the
extra FW status read overhead is negligible. In addition, this enables
registering the IRQ handler with the ONESHOT option.

Signed-off-by: Ido Yariv <ido@wizery.com>
Reviewed-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
2011-03-03 16:10:46 +02:00
..
acx.c wl12xx: AP-mode - fix race condition on sta connection 2011-02-23 11:14:55 +02:00
acx.h wl12xx: AP-mode - fix race condition on sta connection 2011-02-23 11:14:55 +02:00
boot.c wl12xx: Do end-of-transactions transfers only if needed 2011-03-03 16:10:46 +02:00
boot.h wl12xx: Do end-of-transactions transfers only if needed 2011-03-03 16:10:46 +02:00
cmd.c wl12xx: set supported_rates after association 2011-02-08 22:51:42 -02:00
cmd.h wl12xx: move to new firmware (6.1.3.50.49) 2011-02-08 22:51:42 -02:00
conf.h wl12xx: use the conf struct instead of macros for memory configuration 2011-02-08 22:51:42 -02:00
debugfs.c wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
debugfs.h wl1271: Change wl12xx Files Names 2010-11-22 16:45:09 +02:00
event.c wl12xx: move to new firmware (6.1.3.50.49) 2011-02-08 22:51:42 -02:00
event.h wl12xx: move to new firmware (6.1.3.50.49) 2011-02-08 22:51:42 -02:00
ini.h wl1271: Change wl12xx Files Names 2010-11-22 16:45:09 +02:00
init.c wl12xx: change type from u8 to int 2011-02-22 18:06:35 +02:00
init.h wl12xx: AP mode - init sequence 2011-01-24 22:11:48 +02:00
io.c wl1271: Add wl1271_load_firmware() and export some functions 2010-12-02 16:17:20 +02:00
io.h wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
Kconfig wl12xx: fix sdio_test kconfig/build errors 2011-02-21 15:39:56 -05:00
main.c wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
Makefile wl12xx_sdio_test: rename files to match current style 2010-12-15 17:09:27 +02:00
ps.c wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
ps.h wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
reg.h wl1271: Change wl12xx Files Names 2010-11-22 16:45:09 +02:00
rx.c wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
rx.h wl12xx: use standard ALIGN() macro 2011-02-23 11:11:19 +02:00
scan.c wl1271: Fix setting of the hardware connection monitoring probe-req template 2010-11-26 15:33:41 +02:00
scan.h wl1271: Change wl12xx Files Names 2010-11-22 16:45:09 +02:00
sdio.c wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
sdio_test.c wl12xx_sdio_test: rename files to match current style 2010-12-15 17:09:27 +02:00
spi.c wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
testmode.c wl1271: Change wl12xx Files Names 2010-11-22 16:45:09 +02:00
testmode.h wl1271: Change wl12xx Files Names 2010-11-22 16:45:09 +02:00
tx.c wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
tx.h wl12xx: AP-mode - TX queue per link in AC 2011-02-23 11:14:56 +02:00
wl12xx.h wl12xx: Switch to a threaded interrupt handler 2011-03-03 16:10:46 +02:00
wl12xx_80211.h wl12xx: AP mode - init sequence 2011-01-24 22:11:48 +02:00
wl12xx_platform_data.c wl12xx: add platform data passing support 2010-09-21 11:04:57 -04:00