Skip to content

Commit

Permalink
ARM: OMAP3: Fixed spurious IRQ issue for GPIO interrupts
Browse files Browse the repository at this point in the history
Flush posted write to IRQSTATUS register in GPIO IRQ handler.
This eliminates the below error for all peripherals that use GPIO interrupts.

<4>Spurious irq 95: 0xffffffdf, please flush posted write for irq 31

Signed-off-by: Roger Quadros <ext-roger.quadros@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
  • Loading branch information
Roger Quadros authored and Tony Lindgren committed Apr 23, 2009
1 parent c485ab5 commit bedfd15
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion arch/arm/plat-omap/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -758,8 +758,12 @@ static void _clear_gpio_irqbank(struct gpio_bank *bank, int gpio_mask)

/* Workaround for clearing DSP GPIO interrupts to allow retention */
#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
reg = bank->base + OMAP24XX_GPIO_IRQSTATUS2;
if (cpu_is_omap24xx() || cpu_is_omap34xx())
__raw_writel(gpio_mask, bank->base + OMAP24XX_GPIO_IRQSTATUS2);
__raw_writel(gpio_mask, reg);

/* Flush posted write for the irq status to avoid spurious interrupts */
__raw_readl(reg);
#endif
}

Expand Down

0 comments on commit bedfd15

Please sign in to comment.