diff options
author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2006-11-13 11:13:18 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-11-29 20:14:46 -0500 |
commit | 1417836e81c0ab8f5a0bfeafa90d3eaa41b2a067 (patch) | |
tree | 0274893cb78ca2e1bb85c3eee0c07a85e0b83d04 /arch/mips/dec | |
parent | 1603b5aca4f15b34848fb5594d0c7b6333b99144 (diff) |
[MIPS] use generic_handle_irq, handle_level_irq, handle_percpu_irq
Further incorporation of generic irq framework. Replacing __do_IRQ()
by proper flow handler would make the irq handling path a bit simpler
and faster.
* use generic_handle_irq() instead of __do_IRQ().
* use handle_level_irq for obvious level-type irq chips.
* use handle_percpu_irq for irqs marked as IRQ_PER_CPU.
* setup .eoi routine for irq chips possibly used with handle_percpu_irq.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/dec')
-rw-r--r-- | arch/mips/dec/ioasic-irq.c | 6 | ||||
-rw-r--r-- | arch/mips/dec/kn02-irq.c | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/arch/mips/dec/ioasic-irq.c b/arch/mips/dec/ioasic-irq.c index d0af08bdbb4e..269b22b34313 100644 --- a/arch/mips/dec/ioasic-irq.c +++ b/arch/mips/dec/ioasic-irq.c | |||
@@ -103,9 +103,11 @@ void __init init_ioasic_irqs(int base) | |||
103 | fast_iob(); | 103 | fast_iob(); |
104 | 104 | ||
105 | for (i = base; i < base + IO_INR_DMA; i++) | 105 | for (i = base; i < base + IO_INR_DMA; i++) |
106 | set_irq_chip(i, &ioasic_irq_type); | 106 | set_irq_chip_and_handler(i, &ioasic_irq_type, |
107 | handle_level_irq); | ||
107 | for (; i < base + IO_IRQ_LINES; i++) | 108 | for (; i < base + IO_IRQ_LINES; i++) |
108 | set_irq_chip(i, &ioasic_dma_irq_type); | 109 | set_irq_chip_and_handler(i, &ioasic_dma_irq_type, |
110 | handle_level_irq); | ||
109 | 111 | ||
110 | ioasic_irq_base = base; | 112 | ioasic_irq_base = base; |
111 | } | 113 | } |
diff --git a/arch/mips/dec/kn02-irq.c b/arch/mips/dec/kn02-irq.c index c761d97787ec..5a9be4c93584 100644 --- a/arch/mips/dec/kn02-irq.c +++ b/arch/mips/dec/kn02-irq.c | |||
@@ -85,7 +85,7 @@ void __init init_kn02_irqs(int base) | |||
85 | iob(); | 85 | iob(); |
86 | 86 | ||
87 | for (i = base; i < base + KN02_IRQ_LINES; i++) | 87 | for (i = base; i < base + KN02_IRQ_LINES; i++) |
88 | set_irq_chip(i, &kn02_irq_type); | 88 | set_irq_chip_and_handler(i, &kn02_irq_type, handle_level_irq); |
89 | 89 | ||
90 | kn02_irq_base = base; | 90 | kn02_irq_base = base; |
91 | } | 91 | } |