diff -Nru linux-2.6.15-omap1/arch/arm/plat-omap/gpio.c linux-2.6.15-omap1-palmtt2/arch/arm/plat-omap/gpio.c --- linux-2.6.15-omap1/arch/arm/plat-omap/gpio.c 2006-01-10 03:06:49.000000000 +0500 +++ linux-2.6.15-omap1-palmtt2/arch/arm/plat-omap/gpio.c 2006-01-15 13:36:52.000000000 +0500 @@ -767,6 +767,11 @@ OMAP24XX_GPIO_LEVELDETECT0) | __raw_readl(bank->base + OMAP24XX_GPIO_LEVELDETECT1); + if(cpu_is_omap15xx()) + if(bank->method == METHOD_MPUIO) { + isr &= 0x0000ffff; + } /* clear edge sensitive interrupts before handler(s) are called so that we don't miss any interrupt occurred while