ARM: OMAP: Fix get_irqnr_and_base to clear spurious interrupt bits
authorTony Lindgren <tony@atomide.com>
Tue, 4 Nov 2008 21:35:07 +0000 (13:35 -0800)
committerTony Lindgren <tony@atomide.com>
Tue, 4 Nov 2008 21:35:07 +0000 (13:35 -0800)
commit52414739ca3df12f6d1e78d4dc670e97af0e845f
tree940919acdcecfc586f5eb025855f8e63a63d7bae
parente621f266d4cd18a07a833877c3995d2ccb35b951
ARM: OMAP: Fix get_irqnr_and_base to clear spurious interrupt bits

On omap24xx, INTCPS_SIR_IRQ_OFFSET bits [6:0] contains the current
active interrupt number.

However, on 34xx INTCPS_SIR_IRQ_OFFSET bits [31:7] also contains the
SPURIOUSIRQFLAG, which gets set if the interrupt sorting information
is invalid.

If the SPURIOUSIRQFLAG bits are not ignored, the interrupt code will
occasionally produce a bunch of confusing errors:

irq -33, desc: c02ddcc8, depth: 0, count: 0, unhandled: 0
->handle_irq():  c006f23c, handle_bad_irq+0x0/0x22c
->chip(): 00000000, 0x0
->action(): 00000000

Fix this by masking out only the ACTIVEIRQ bits. Also fix a
confusing comment.

Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/plat-omap/include/mach/entry-macro.S