extern asmlinkage void mipsIRQ(void);
 
-asmlinkage void sead_hw0_irqdispatch(struct pt_regs *regs)
-{
-       do_IRQ(SEADINT_UART0, regs);
-}
-
-asmlinkage void sead_hw1_irqdispatch(struct pt_regs *regs)
-{
-       do_IRQ(SEADINT_UART1, regs);
-}
-
 void __init arch_init_irq(void)
 {
-       mips_cpu_irq_init(0);
+       mips_cpu_irq_init(MIPSCPU_INT_BASE);
 
        /* Now safe to set the exception vector. */
        set_except_vector(0, mipsIRQ);
 
        return "MIPS SEAD";
 }
 
-static void __init sead_setup(void)
+void __init plat_setup(void)
 {
        ioport_resource.end = 0x7fffffff;
 
 #else
        s.iobase = SEAD_UART0_REGS_BASE+3;
 #endif
-       s.irq = SEADINT_UART0;
+       s.irq = MIPSCPU_INT_BASE + MIPSCPU_INT_UART0;
        s.uartclk = SEAD_BASE_BAUD * 16;
        s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ;
        s.iotype = 0;
 
 #ifndef _MIPS_SEADINT_H
 #define _MIPS_SEADINT_H
 
-#define SEADINT_UART0     2
-#define SEADINT_UART1     3
+/*
+ * Interrupts 0..7 are used for SEAD CPU interrupts
+ */
+#define MIPSCPU_INT_BASE       0
+
+#define MIPSCPU_INT_UART0      2
+#define MIPSCPU_INT_UART1      3
+
+#define MIPSCPU_INT_CPUCTR     7
 
 #endif /* !(_MIPS_SEADINT_H) */