diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2006-07-01 18:01:50 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-07-01 18:01:50 -0400 |
commit | 07d265dd59456f702b7d2a1ac471f06ee4adc9ef (patch) | |
tree | ff7039264302251de8879bb253bf3678ad4aab0a /arch/arm | |
parent | 698dfe2b4513f8a13c0e082d141e8b64e63e0313 (diff) |
[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>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-at91rm9200/gpio.c | 11 | ||||
-rw-r--r-- | arch/arm/mach-at91rm9200/time.c | 2 |
2 files changed, 7 insertions, 6 deletions
diff --git a/arch/arm/mach-at91rm9200/gpio.c b/arch/arm/mach-at91rm9200/gpio.c index 83c34747087b..5783c282ae7b 100644 --- a/arch/arm/mach-at91rm9200/gpio.c +++ b/arch/arm/mach-at91rm9200/gpio.c | |||
@@ -10,12 +10,13 @@ | |||
10 | */ | 10 | */ |
11 | 11 | ||
12 | #include <linux/errno.h> | 12 | #include <linux/errno.h> |
13 | #include <linux/interrupt.h> | ||
14 | #include <linux/irq.h> | ||
13 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
14 | #include <linux/list.h> | 16 | #include <linux/list.h> |
15 | #include <linux/module.h> | 17 | #include <linux/module.h> |
16 | 18 | ||
17 | #include <asm/io.h> | 19 | #include <asm/io.h> |
18 | #include <asm/mach/irq.h> | ||
19 | #include <asm/hardware.h> | 20 | #include <asm/hardware.h> |
20 | #include <asm/arch/gpio.h> | 21 | #include <asm/arch/gpio.h> |
21 | 22 | ||
@@ -340,7 +341,7 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs | |||
340 | void __iomem *pio; | 341 | void __iomem *pio; |
341 | u32 isr; | 342 | u32 isr; |
342 | 343 | ||
343 | pio = desc->base; | 344 | pio = get_irq_chip_data(irq); |
344 | 345 | ||
345 | /* temporarily mask (level sensitive) parent IRQ */ | 346 | /* temporarily mask (level sensitive) parent IRQ */ |
346 | desc->chip->ack(irq); | 347 | desc->chip->ack(irq); |
@@ -350,12 +351,12 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs | |||
350 | if (!isr) | 351 | if (!isr) |
351 | break; | 352 | break; |
352 | 353 | ||
353 | pin = (unsigned) desc->data; | 354 | pin = (unsigned) get_irq_data(irq); |
354 | gpio = &irq_desc[pin]; | 355 | gpio = &irq_desc[pin]; |
355 | 356 | ||
356 | while (isr) { | 357 | while (isr) { |
357 | if (isr & 1) { | 358 | if (isr & 1) { |
358 | if (unlikely(gpio->disable_depth)) { | 359 | if (unlikely(gpio->depth)) { |
359 | /* | 360 | /* |
360 | * The core ARM interrupt handler lazily disables IRQs so | 361 | * The core ARM interrupt handler lazily disables IRQs so |
361 | * another IRQ must be generated before it actually gets | 362 | * 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 | |||
364 | gpio_irq_mask(pin); | 365 | gpio_irq_mask(pin); |
365 | } | 366 | } |
366 | else | 367 | else |
367 | gpio->handle(pin, gpio, regs); | 368 | desc_handle_irq(pin, gpio, regs); |
368 | } | 369 | } |
369 | pin++; | 370 | pin++; |
370 | gpio++; | 371 | gpio++; |
diff --git a/arch/arm/mach-at91rm9200/time.c b/arch/arm/mach-at91rm9200/time.c index f2f080350ccb..1f080e6ea509 100644 --- a/arch/arm/mach-at91rm9200/time.c +++ b/arch/arm/mach-at91rm9200/time.c | |||
@@ -21,13 +21,13 @@ | |||
21 | 21 | ||
22 | #include <linux/init.h> | 22 | #include <linux/init.h> |
23 | #include <linux/interrupt.h> | 23 | #include <linux/interrupt.h> |
24 | #include <linux/irq.h> | ||
24 | #include <linux/kernel.h> | 25 | #include <linux/kernel.h> |
25 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
26 | #include <linux/time.h> | 27 | #include <linux/time.h> |
27 | 28 | ||
28 | #include <asm/hardware.h> | 29 | #include <asm/hardware.h> |
29 | #include <asm/io.h> | 30 | #include <asm/io.h> |
30 | #include <asm/irq.h> | ||
31 | #include <asm/mach/time.h> | 31 | #include <asm/mach/time.h> |
32 | 32 | ||
33 | static unsigned long last_crtr; | 33 | static unsigned long last_crtr; |