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/emma2rh | |
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/emma2rh')
-rw-r--r-- | arch/mips/emma2rh/common/irq_emma2rh.c | 3 | ||||
-rw-r--r-- | arch/mips/emma2rh/markeins/irq_markeins.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/arch/mips/emma2rh/common/irq_emma2rh.c b/arch/mips/emma2rh/common/irq_emma2rh.c index bf1b83ba925e..59b98299c896 100644 --- a/arch/mips/emma2rh/common/irq_emma2rh.c +++ b/arch/mips/emma2rh/common/irq_emma2rh.c | |||
@@ -76,7 +76,8 @@ void emma2rh_irq_init(u32 irq_base) | |||
76 | u32 i; | 76 | u32 i; |
77 | 77 | ||
78 | for (i = irq_base; i < irq_base + NUM_EMMA2RH_IRQ; i++) | 78 | for (i = irq_base; i < irq_base + NUM_EMMA2RH_IRQ; i++) |
79 | set_irq_chip(i, &emma2rh_irq_controller); | 79 | set_irq_chip_and_handler(i, &emma2rh_irq_controller, |
80 | handle_level_irq); | ||
80 | 81 | ||
81 | emma2rh_irq_base = irq_base; | 82 | emma2rh_irq_base = irq_base; |
82 | } | 83 | } |
diff --git a/arch/mips/emma2rh/markeins/irq_markeins.c b/arch/mips/emma2rh/markeins/irq_markeins.c index 8e5f08a4245d..3ac4e405ecdc 100644 --- a/arch/mips/emma2rh/markeins/irq_markeins.c +++ b/arch/mips/emma2rh/markeins/irq_markeins.c | |||
@@ -68,7 +68,8 @@ void emma2rh_sw_irq_init(u32 irq_base) | |||
68 | u32 i; | 68 | u32 i; |
69 | 69 | ||
70 | for (i = irq_base; i < irq_base + NUM_EMMA2RH_IRQ_SW; i++) | 70 | for (i = irq_base; i < irq_base + NUM_EMMA2RH_IRQ_SW; i++) |
71 | set_irq_chip(i, &emma2rh_sw_irq_controller); | 71 | set_irq_chip_and_handler(i, &emma2rh_sw_irq_controller, |
72 | handle_level_irq); | ||
72 | 73 | ||
73 | emma2rh_sw_irq_base = irq_base; | 74 | emma2rh_sw_irq_base = irq_base; |
74 | } | 75 | } |