[ARM] 3683/2: ARM: Convert at91rm9200 to generic irq handling

Patch from Thomas Gleixner

From: Thomas Gleixner <tglx@linutronix.de>

Fixup the conversion to generic irq subsystem.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
Thomas Gleixner 2006-07-01 23:01:50 +01:00 committed by Russell King
parent 698dfe2b45
commit 07d265dd59
2 changed files with 7 additions and 6 deletions

View file

@ -10,12 +10,13 @@
*/ */
#include <linux/errno.h> #include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/module.h> #include <linux/module.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/mach/irq.h>
#include <asm/hardware.h> #include <asm/hardware.h>
#include <asm/arch/gpio.h> #include <asm/arch/gpio.h>
@ -340,7 +341,7 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs
void __iomem *pio; void __iomem *pio;
u32 isr; u32 isr;
pio = desc->base; pio = get_irq_chip_data(irq);
/* temporarily mask (level sensitive) parent IRQ */ /* temporarily mask (level sensitive) parent IRQ */
desc->chip->ack(irq); desc->chip->ack(irq);
@ -350,12 +351,12 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs
if (!isr) if (!isr)
break; break;
pin = (unsigned) desc->data; pin = (unsigned) get_irq_data(irq);
gpio = &irq_desc[pin]; gpio = &irq_desc[pin];
while (isr) { while (isr) {
if (isr & 1) { if (isr & 1) {
if (unlikely(gpio->disable_depth)) { if (unlikely(gpio->depth)) {
/* /*
* The core ARM interrupt handler lazily disables IRQs so * The core ARM interrupt handler lazily disables IRQs so
* another IRQ must be generated before it actually gets * another IRQ must be generated before it actually gets
@ -364,7 +365,7 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs
gpio_irq_mask(pin); gpio_irq_mask(pin);
} }
else else
gpio->handle(pin, gpio, regs); desc_handle_irq(pin, gpio, regs);
} }
pin++; pin++;
gpio++; gpio++;

View file

@ -21,13 +21,13 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/sched.h> #include <linux/sched.h>
#include <linux/time.h> #include <linux/time.h>
#include <asm/hardware.h> #include <asm/hardware.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/irq.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
static unsigned long last_crtr; static unsigned long last_crtr;