--- ./arch/arm/plat-omap/gpio.c_orig 2006-01-06 19:37:32.602154520 +0100 +++ ./arch/arm/plat-omap/gpio.c 2006-01-06 19:44:03.917665520 +0100 @@ -767,6 +767,9 @@ static void gpio_irq_handler(unsigned in OMAP24XX_GPIO_LEVELDETECT0) | __raw_readl(bank->base + OMAP24XX_GPIO_LEVELDETECT1); + if(cpu_is_omap15xx()) + if(bank->method == METHOD_MPUIO) + level_mask = 0xffff0000; /* clear edge sensitive interrupts before handler(s) are called so that we don't miss any interrupt occurred while