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/tx4938 | |
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/tx4938')
-rw-r--r-- | arch/mips/tx4938/common/irq.c | 6 | ||||
-rw-r--r-- | arch/mips/tx4938/toshiba_rbtx4938/irq.c | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/arch/mips/tx4938/common/irq.c b/arch/mips/tx4938/common/irq.c index 19c9ee9e3d0c..42e127683ae9 100644 --- a/arch/mips/tx4938/common/irq.c +++ b/arch/mips/tx4938/common/irq.c | |||
@@ -88,7 +88,8 @@ tx4938_irq_cp0_init(void) | |||
88 | int i; | 88 | int i; |
89 | 89 | ||
90 | for (i = TX4938_IRQ_CP0_BEG; i <= TX4938_IRQ_CP0_END; i++) | 90 | for (i = TX4938_IRQ_CP0_BEG; i <= TX4938_IRQ_CP0_END; i++) |
91 | set_irq_chip(i, &tx4938_irq_cp0_type); | 91 | set_irq_chip_and_handler(i, &tx4938_irq_cp0_type, |
92 | handle_level_irq); | ||
92 | } | 93 | } |
93 | 94 | ||
94 | static void | 95 | static void |
@@ -245,7 +246,8 @@ tx4938_irq_pic_init(void) | |||
245 | int i; | 246 | int i; |
246 | 247 | ||
247 | for (i = TX4938_IRQ_PIC_BEG; i <= TX4938_IRQ_PIC_END; i++) | 248 | for (i = TX4938_IRQ_PIC_BEG; i <= TX4938_IRQ_PIC_END; i++) |
248 | set_irq_chip(i, &tx4938_irq_pic_type); | 249 | set_irq_chip_and_handler(i, &tx4938_irq_pic_type, |
250 | handle_level_irq); | ||
249 | 251 | ||
250 | setup_irq(TX4938_IRQ_NEST_PIC_ON_CP0, &tx4938_irq_pic_action); | 252 | setup_irq(TX4938_IRQ_NEST_PIC_ON_CP0, &tx4938_irq_pic_action); |
251 | 253 | ||
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/irq.c b/arch/mips/tx4938/toshiba_rbtx4938/irq.c index 2735ffe9ec28..8c87a35f3068 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/irq.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/irq.c | |||
@@ -136,7 +136,8 @@ toshiba_rbtx4938_irq_ioc_init(void) | |||
136 | 136 | ||
137 | for (i = TOSHIBA_RBTX4938_IRQ_IOC_BEG; | 137 | for (i = TOSHIBA_RBTX4938_IRQ_IOC_BEG; |
138 | i <= TOSHIBA_RBTX4938_IRQ_IOC_END; i++) | 138 | i <= TOSHIBA_RBTX4938_IRQ_IOC_END; i++) |
139 | set_irq_chip(i, &toshiba_rbtx4938_irq_ioc_type); | 139 | set_irq_chip_and_handler(i, &toshiba_rbtx4938_irq_ioc_type, |
140 | handle_level_irq); | ||
140 | 141 | ||
141 | setup_irq(RBTX4938_IRQ_IOCINT, | 142 | setup_irq(RBTX4938_IRQ_IOCINT, |
142 | &toshiba_rbtx4938_irq_ioc_action); | 143 | &toshiba_rbtx4938_irq_ioc_action); |