Commit 3da0e102 authored by Lauri Leukkunen's avatar Lauri Leukkunen Committed by Tony Lindgren

OMAP3: ack spurious IRQs in get_irqnr_and_base

This prevents spurious interrupts from repeating unacked and
thus locking the system, while still allowing the spurious
bad irq error message to be show on console.
Signed-off-by: default avatarLauri Leukkunen <lauri.leukkunen@nokia.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 10b383a6
......@@ -87,7 +87,26 @@
ldr \irqnr, [\base, #0xd8] /* IRQ pending reg 3 */
cmp \irqnr, #0x0
2222:
#if defined(CONFIG_ARCH_OMAP34XX)
mov \tmp, \irqnr
#endif
ldrne \irqnr, [\base, #INTCPS_SIR_IRQ_OFFSET]
#if defined(CONFIG_ARCH_OMAP34XX)
mov \irqstat, \irqnr
bic \irqstat, \irqstat, #0x7f /* check for spurious flag */
cmp \irqstat, #0x0
beq 2223f
mov \irqstat, #0x1 /* Ack the spurious irq, this lets it
* generate a bad irq error message,
* but prevents infinitely repeating
* irq.
*/
str \irqstat, [\base, #0x48] /* INTC_CONTROL register */
2223:
cmp \tmp, #0x0 /* set conditional back to what it was
* before spurious test
*/
#endif
.endm
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment