diff options
author | Helmut Schaa <helmut.schaa@googlemail.com> | 2010-07-11 06:26:48 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-07-12 16:05:34 -0400 |
commit | 78e256c9a3717bcae2e9ed05c9ec7bed7bf2c55d (patch) | |
tree | 343bf5127f29e0490616a32c4c785b7d33f3d788 /drivers/net/wireless/rt2x00/rt2x00pci.c | |
parent | 50e888eae23dc062cb52a7538e85a5960ce1d91c (diff) |
rt2x00: Convert rt2x00 to use threaded interrupts
Use threaded interrupts for all rt2x00 PCI devices.
This has several generic advantages:
- Reduce the time we spend in hard irq context
- Use non-atmic mac80211 functions for rx/tx
Furthermore implementing broad- and multicast buffering will be
much easier in process context while maintaining low latency and
updating the beacon just before transmission (pre tbtt interrupt)
can also be done in process context.
Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00pci.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00pci.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00pci.c b/drivers/net/wireless/rt2x00/rt2x00pci.c index fc9da8358784..19b262e1ddbe 100644 --- a/drivers/net/wireless/rt2x00/rt2x00pci.c +++ b/drivers/net/wireless/rt2x00/rt2x00pci.c | |||
@@ -153,8 +153,10 @@ int rt2x00pci_initialize(struct rt2x00_dev *rt2x00dev) | |||
153 | /* | 153 | /* |
154 | * Register interrupt handler. | 154 | * Register interrupt handler. |
155 | */ | 155 | */ |
156 | status = request_irq(rt2x00dev->irq, rt2x00dev->ops->lib->irq_handler, | 156 | status = request_threaded_irq(rt2x00dev->irq, |
157 | IRQF_SHARED, rt2x00dev->name, rt2x00dev); | 157 | rt2x00dev->ops->lib->irq_handler, |
158 | rt2x00dev->ops->lib->irq_handler_thread, | ||
159 | IRQF_SHARED, rt2x00dev->name, rt2x00dev); | ||
158 | if (status) { | 160 | if (status) { |
159 | ERROR(rt2x00dev, "IRQ %d allocation failed (error %d).\n", | 161 | ERROR(rt2x00dev, "IRQ %d allocation failed (error %d).\n", |
160 | rt2x00dev->irq, status); | 162 | rt2x00dev->irq, status); |