ARM: 6532/1: Allow machine to specify it's own IRQ handlers at run-time
[pandora-kernel.git] / arch / arm / kernel / entry-armv.S
index 35f3f20..caa6c39 100644 (file)
  * Interrupt handling.  Preserves r7, r8, r9
  */
        .macro  irq_handler
+#ifdef CONFIG_MULTI_IRQ_HANDLER
+       ldr     r5, =handle_arch_irq
+       mov     r0, sp
+       ldr     r5, [r5]
+       adr     lr, BSYM(9997f)
+       teq     r5, #0
+       movne   pc, r5
+#endif
        get_irqnr_preamble r5, lr
 1:     get_irqnr_and_base r0, r6, r5, lr
        movne   r1, sp
@@ -58,9 +66,8 @@
        adrne   lr, BSYM(1b)
        bne     do_local_timer
 #endif
-9997:
 #endif
-
+9997:
        .endm
 
 #ifdef CONFIG_KPROBES
@@ -1245,3 +1252,9 @@ cr_alignment:
        .space  4
 cr_no_alignment:
        .space  4
+
+#ifdef CONFIG_MULTI_IRQ_HANDLER
+       .globl  handle_arch_irq
+handle_arch_irq:
+       .space  4
+#endif