[PATCH] Re: omap1510 MPU interupt BUG

Dirk Behme
2006-01-06T19:37:25Z

[-- Attachment #1: Type: text/plain, Size: 1043 bytes --]

Tony Lindgren wrote:

>>diff -Nru linux-2.6.14-omap2/arch/arm/plat-omap/gpio.c
>>linux-2.6.14-omap2-palmtt2/arch/arm/plat-omap/gpio.c
>>
>>--- linux-2.6.14-omap2/arch/arm/plat-omap/gpio.c Sat Dec 10 21:05:46 2005
>>+++ linux-2.6.14-omap2-palmtt2/arch/arm/plat-omap/gpio.c Sat Dec 10 19:57:30 2005
>>@@ -758,6 +758,10 @@
>>
>>while(1) {
>>isr = __raw_readl(isr_reg);
>>+#ifdef CONFIG_ARCH_OMAP15XX
>>+ if (bank->method == METHOD_MPUIO)
>>+ isr&=0xffff;
>>+#endif !
>>
>>_enable_gpio_irqbank(bank, isr, 0);
>>_clear_gpio_irqbank(bank, isr);
>>_enable_gpio_irqbank(bank, isr, 1);
>
>
> Can't read this patch because of the bad formatting... Can you please
> repost? Maybe sending it as an attachment works better with a web
> interface :)

arch/arm/plat-omap/gpio.c has changed since 2.6.14-omap2, so patch above
will not apply to recent git even if formatting is correct. I tried to
adapt it to current version of gpio.c. I can't test it, so is patch
below okay?

[-- Attachment #2: omap1510_mpu_interrupt_bug.patch --]
[-- Type: text/plain, Size: 522 bytes --]

--- ./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