Tony,
Here is the patch against the latest git. I'm a little concerned
about masking the interrupt number so that the spurious bit are
ignored. Do you really want to turn a spurious interrupt into a
normal (good) interrupt?
> Also, AFAIK we don't have infinitely repeating irqs any longer, it's
> just an occasional single spurious interrupt.
That's correct. And those disappeared when I applied the S-O patch.
Without the S-O patch I was seeing one spurious interrupt in about 15
reboots, after the patch I got zero in 350 reboots.
Rick
--- linux-omap-2.6/arch/arm/plat-omap/include/mach/entry-macro.S.git
2008-10-22 20:01:33.000000000 -0700
+++ linux-omap-2.6/arch/arm/plat-omap/include/mach/entry-macro.S
2008-10-22 20:11:26.000000000 -0700
@@ -67,6 +67,10 @@
#define INTCPS_SIR_IRQ_OFFSET 0x0040 /* Active interrupt offset */
#define ACTIVEIRQ_MASK 0x7f /* Active interrupt
bits */
+#define INTCPS_CONTROL 0x0048 /* new interrupt agreement bits
*/
+#define INTCPS_PENDING_IRQ_1 0x0098 /* IRQ pending reg 1 */
+#define INTCPS_PENDING_IRQ_2 0x00b8 /* IRQ pending reg 2 */
+#define INTCPS_PENDING_IRQ_3 0x00d8 /* IRQ pending reg 3 */
.macro disable_fiq
.endm
@@ -79,18 +83,20 @@
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
ldr \base, =OMAP2_VA_IC_BASE
- ldr \irqnr, [\base, #0x98] /* IRQ pending reg 1 */
- cmp \irqnr, #0x0
- bne 2222f
- ldr \irqnr, [\base, #0xb8] /* IRQ pending reg 2 */
- cmp \irqnr, #0x0
- bne 2222f
- ldr \irqnr, [\base, #0xd8] /* IRQ pending reg 3 */
- cmp \irqnr, #0x0
-2222:
- ldrne \irqnr, [\base, #INTCPS_SIR_IRQ_OFFSET]
+ ldr \irqnr, [\base, #INTCPS_SIR_IRQ_OFFSET]
+ cmp \irqnr, #0 /* check for negative */
+ movmi \tmp, #0x1 /* Ack the spurious irq, this lets it
+ * generate a bad irq error message,
+ * but prevents infinitely repeating
+ * irq.
+ */
+ strmi \tmp, [\base, #INTCPS_CONTROL]
and \irqnr, \irqnr, #ACTIVEIRQ_MASK /* Clear spurious bits
*/
-
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html