aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/sgi-ip27
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/sgi-ip27
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/sgi-ip27')
-rw-r--r--arch/mips/sgi-ip27/ip27-irq.c2
-rw-r--r--arch/mips/sgi-ip27/ip27-timer.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c
index 824320281a3a..5f8835b4e84a 100644
--- a/arch/mips/sgi-ip27/ip27-irq.c
+++ b/arch/mips/sgi-ip27/ip27-irq.c
@@ -352,7 +352,7 @@ static struct irq_chip bridge_irq_type = {
352 352
353void __devinit register_bridge_irq(unsigned int irq) 353void __devinit register_bridge_irq(unsigned int irq)
354{ 354{
355 set_irq_chip(irq, &bridge_irq_type); 355 set_irq_chip_and_handler(irq, &bridge_irq_type, handle_level_irq);
356} 356}
357 357
358int __devinit request_bridge_irq(struct bridge_controller *bc) 358int __devinit request_bridge_irq(struct bridge_controller *bc)
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c
index 86ba7fc10c38..e5441c3a0b07 100644
--- a/arch/mips/sgi-ip27/ip27-timer.c
+++ b/arch/mips/sgi-ip27/ip27-timer.c
@@ -190,6 +190,7 @@ static struct irq_chip rt_irq_type = {
190 .mask = disable_rt_irq, 190 .mask = disable_rt_irq,
191 .mask_ack = disable_rt_irq, 191 .mask_ack = disable_rt_irq,
192 .unmask = enable_rt_irq, 192 .unmask = enable_rt_irq,
193 .eoi = enable_rt_irq,
193 .end = end_rt_irq, 194 .end = end_rt_irq,
194}; 195};
195 196
@@ -207,7 +208,7 @@ void __init plat_timer_setup(struct irqaction *irq)
207 if (irqno < 0) 208 if (irqno < 0)
208 panic("Can't allocate interrupt number for timer interrupt"); 209 panic("Can't allocate interrupt number for timer interrupt");
209 210
210 set_irq_chip(irqno, &rt_irq_type); 211 set_irq_chip_and_handler(irqno, &rt_irq_type, handle_percpu_irq);
211 212
212 /* over-write the handler, we use our own way */ 213 /* over-write the handler, we use our own way */
213 irq->handler = no_action; 214 irq->handler = no_action;