aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/dec
diff options
context:
space:
mode:
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>2006-11-13 11:13:18 -0500
committerRalf Baechle <ralf@linux-mips.org>2006-11-29 20:14:46 -0500
commit1417836e81c0ab8f5a0bfeafa90d3eaa41b2a067 (patch)
tree0274893cb78ca2e1bb85c3eee0c07a85e0b83d04 /arch/mips/dec
parent1603b5aca4f15b34848fb5594d0c7b6333b99144 (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.c6
-rw-r--r--arch/mips/dec/kn02-irq.c2
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}