From 29454dde27d8e340bb1987bad9aa504af7081eba Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 3 Jul 2006 02:22:22 +0200 Subject: [PATCH] [PATCH] genirq: Fixup ARM devel merge ARM devel merge introduced new machine functionality which was not covered by the ARM -> genirq patches. Fix it up and make it compile again. Signed-off-by: Thomas Gleixner Signed-off-by: Linus Torvalds --- arch/arm/plat-omap/gpio.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index cb0c21d384..fec7970e56 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c @@ -850,7 +850,8 @@ static void gpio_irq_handler(unsigned int irq, struct irqdesc *desc, /* Don't run the handler if it's already running * or was disabled lazely. */ - if (unlikely((d->disable_depth || d->running))) { + if (unlikely((d->depth || + (d->status & IRQ_INPROGRESS)))) { irq_mask = 1 << (gpio_irq - bank->virtual_irq_start); /* The unmasking will be done by @@ -859,22 +860,22 @@ static void gpio_irq_handler(unsigned int irq, struct irqdesc *desc, * it's already running. */ _enable_gpio_irqbank(bank, irq_mask, 0); - if (!d->disable_depth) { + if (!d->depth) { /* Level triggered interrupts * won't ever be reentered */ BUG_ON(level_mask & irq_mask); - d->pending = 1; + d->status |= IRQ_PENDING; } continue; } - d->running = 1; + desc_handle_irq(gpio_irq, d, regs); - d->running = 0; - if (unlikely(d->pending && !d->disable_depth)) { + + if (unlikely((d->status & IRQ_PENDING) && !d->depth)) { irq_mask = 1 << (gpio_irq - bank->virtual_irq_start); - d->pending = 0; + d->status &= ~IRQ_PENDING; _enable_gpio_irqbank(bank, irq_mask, 1); retrigger |= irq_mask; } -- 2.39.5