Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07d265dd authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Russell King
Browse files

[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: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 698dfe2b
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -10,12 +10,13 @@
 */

#include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/module.h>

#include <asm/io.h>
#include <asm/mach/irq.h>
#include <asm/hardware.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;
	u32		isr;

	pio = desc->base;
	pio = get_irq_chip_data(irq);

	/* temporarily mask (level sensitive) parent IRQ */
	desc->chip->ack(irq);
@@ -350,12 +351,12 @@ static void gpio_irq_handler(unsigned irq, struct irqdesc *desc, struct pt_regs
		if (!isr)
			break;

		pin = (unsigned) desc->data;
		pin = (unsigned) get_irq_data(irq);
		gpio = &irq_desc[pin];

		while (isr) {
			if (isr & 1) {
				if (unlikely(gpio->disable_depth)) {
				if (unlikely(gpio->depth)) {
					/*
					 * The core ARM interrupt handler lazily disables IRQs so
					 * 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);
				}
				else
					gpio->handle(pin, gpio, regs);
					desc_handle_irq(pin, gpio, regs);
			}
			pin++;
			gpio++;
+1 −1
Original line number Diff line number Diff line
@@ -21,13 +21,13 @@

#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/time.h>

#include <asm/hardware.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/mach/time.h>

static unsigned long last_crtr;