diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-02 18:07:45 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-07-02 18:07:45 -0400 |
commit | b4b9034132c7e1e4474999e688dd7d03b7d97a99 (patch) | |
tree | c02c571b9e0e59b9ffa18baae23c83f09ff07adb /arch/arm/mach-at91rm9200/gpio.c | |
parent | a8c4c20dfa8b28a3c99e33c639d9c2ea5657741e (diff) | |
parent | 07d265dd59456f702b7d2a1ac471f06ee4adc9ef (diff) |
Merge branch 'genirq' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'genirq' of master.kernel.org:/home/rmk/linux-2.6-arm: (24 commits)
[ARM] 3683/2: ARM: Convert at91rm9200 to generic irq handling
[ARM] 3682/2: ARM: Convert ixp4xx to generic irq handling
[ARM] 3702/1: ARM: Convert ixp23xx to generic irq handling
[ARM] 3701/1: ARM: Convert plat-omap to generic irq handling
[ARM] 3700/1: ARM: Convert lh7a40x to generic irq handling
[ARM] 3699/1: ARM: Convert s3c2410 to generic irq handling
[ARM] 3698/1: ARM: Convert sa1100 to generic irq handling
[ARM] 3697/1: ARM: Convert shark to generic irq handling
[ARM] 3696/1: ARM: Convert clps711x to generic irq handling
[ARM] 3694/1: ARM: Convert ecard driver to generic irq handling
[ARM] 3693/1: ARM: Convert omap1 to generic irq handling
[ARM] 3691/1: ARM: Convert imx to generic irq handling
[ARM] 3688/1: ARM: Convert clps7500 to generic irq handling
[ARM] 3687/1: ARM: Convert integrator to generic irq handling
[ARM] 3685/1: ARM: Convert pxa to generic irq handling
[ARM] 3684/1: ARM: Convert l7200 to generic irq handling
[ARM] 3681/1: ARM: Convert ixp2000 to generic irq handling
[ARM] 3680/1: ARM: Convert footbridge to generic irq handling
[ARM] 3695/1: ARM drivers/pcmcia: Fixup includes
[ARM] 3689/1: ARM drivers/input/touchscreen: Fixup includes
...
Manual conflict resolved in kernel/irq/handle.c (butt-ugly ARM tickless
code).
Diffstat (limited to 'arch/arm/mach-at91rm9200/gpio.c')
-rw-r--r-- | arch/arm/mach-at91rm9200/gpio.c | 11 |
1 files changed, 6 insertions, 5 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++; |