davinci: fixups for banked GPIO interrupt handling
[pandora-kernel.git] / arch / arm / mach-davinci / gpio.c
index 34ba4ce..40327b5 100644 (file)
@@ -45,6 +45,7 @@ static struct gpio_controller __iomem * __init gpio2controller(unsigned gpio)
        return __gpio_to_controller(gpio);
 }
 
+static int __init davinci_gpio_irq_setup(void);
 
 /*--------------------------------------------------------------------------*/
 
@@ -157,6 +158,7 @@ static int __init davinci_gpio_setup(void)
                gpiochip_add(&chips[i].chip);
        }
 
+       davinci_gpio_irq_setup();
        return 0;
 }
 pure_initcall(davinci_gpio_setup);
@@ -238,6 +240,7 @@ gpio_irq_handler(unsigned irq, struct irq_desc *desc)
                mask <<= 16;
 
        /* temporarily mask (level sensitive) parent IRQ */
+       desc->chip->mask(irq);
        desc->chip->ack(irq);
        while (1) {
                u32             status;
@@ -333,4 +336,3 @@ static int __init davinci_gpio_irq_setup(void)
 
        return 0;
 }
-arch_initcall(davinci_gpio_irq_setup);