aboutsummaryrefslogtreecommitdiffstats
path: root/arch/h8300
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2011-01-19 06:18:57 -0500
committerThomas Gleixner <tglx@linutronix.de>2011-01-21 05:55:24 -0500
commitf9f91ef5e3a5bc1d4aa05b5d26c4d9e6dd930750 (patch)
treed28140666f8377c2009da4d786c8778827008823 /arch/h8300
parent12174aac376f2c9390c51e66995d38c9e5e94eff (diff)
h8300: Convert interrupt handling to flow handler
__do_IRQ is deprecated so h8300 needs to be converted to proper flow handling. The irq chip is simple and does not required any mask/ack/eoi functions, so we can use handle_simple_irq. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/h8300')
-rw-r--r--arch/h8300/kernel/irq.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/arch/h8300/kernel/irq.c b/arch/h8300/kernel/irq.c
index e23f34647889..0c56735a2ff9 100644
--- a/arch/h8300/kernel/irq.c
+++ b/arch/h8300/kernel/irq.c
@@ -50,10 +50,6 @@ static void h8300_disable_irq(struct irq_data *data)
50 IER_REGS &= ~(1 << (data->irq - EXT_IRQ0)); 50 IER_REGS &= ~(1 << (data->irq - EXT_IRQ0));
51} 51}
52 52
53static void h8300_end_irq(unsigned int irq)
54{
55}
56
57static unsigned int h8300_startup_irq(struct irq_data *data) 53static unsigned int h8300_startup_irq(struct irq_data *data)
58{ 54{
59 if (is_ext_irq(data->irq)) 55 if (is_ext_irq(data->irq))
@@ -77,7 +73,6 @@ struct irq_chip h8300irq_chip = {
77 .irq_shutdown = h8300_shutdown_irq, 73 .irq_shutdown = h8300_shutdown_irq,
78 .irq_enable = h8300_enable_irq, 74 .irq_enable = h8300_enable_irq,
79 .irq_disable = h8300_disable_irq, 75 .irq_disable = h8300_disable_irq,
80 .end = h8300_end_irq,
81}; 76};
82 77
83#if defined(CONFIG_RAMKERNEL) 78#if defined(CONFIG_RAMKERNEL)
@@ -159,18 +154,14 @@ void __init init_IRQ(void)
159 154
160 setup_vector(); 155 setup_vector();
161 156
162 for (c = 0; c < NR_IRQS; c++) { 157 for (c = 0; c < NR_IRQS; c++)
163 irq_desc[c].status = IRQ_DISABLED; 158 set_irq_chip_and_handler(c, &h8300irq_chip, handle_simple_irq);
164 irq_desc[c].action = NULL;
165 irq_desc[c].depth = 1;
166 irq_desc[c].chip = &h8300irq_chip;
167 }
168} 159}
169 160
170asmlinkage void do_IRQ(int irq) 161asmlinkage void do_IRQ(int irq)
171{ 162{
172 irq_enter(); 163 irq_enter();
173 __do_IRQ(irq); 164 generic_handle_irq(irq);
174 irq_exit(); 165 irq_exit();
175} 166}
176 167