diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2011-01-19 06:18:57 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2011-01-21 05:55:24 -0500 |
commit | f9f91ef5e3a5bc1d4aa05b5d26c4d9e6dd930750 (patch) | |
tree | d28140666f8377c2009da4d786c8778827008823 /arch | |
parent | 12174aac376f2c9390c51e66995d38c9e5e94eff (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')
-rw-r--r-- | arch/h8300/kernel/irq.c | 15 |
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 | ||
53 | static void h8300_end_irq(unsigned int irq) | ||
54 | { | ||
55 | } | ||
56 | |||
57 | static unsigned int h8300_startup_irq(struct irq_data *data) | 53 | static 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 | ||
170 | asmlinkage void do_IRQ(int irq) | 161 | asmlinkage 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 | ||