diff -urN linux-2.6.19/arch/mips/bcm963xx/include/bcmtypes.h linux-2.6.19.new/arch/mips/bcm963xx/include/bcmtypes.h
--- linux-2.6.19/arch/mips/bcm963xx/include/bcmtypes.h 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.19.new/arch/mips/bcm963xx/include/bcmtypes.h 2006-12-16 18:46:31.000000000 +0100
-@@ -0,0 +1,163 @@
+@@ -0,0 +1,160 @@
+/*
+<:copyright-gpl
+ Copyright 2002 Broadcom Corp. All Rights Reserved.
+typedef signed char int8;
+typedef signed short int16;
+typedef signed long int32;
-+#if !defined(__cplusplus)
-+typedef int bool;
-+#endif
+#endif
+
+typedef unsigned char byte;
+ irq_desc[i].status = IRQ_DISABLED;
+ irq_desc[i].action = 0;
+ irq_desc[i].depth = 1;
-+ irq_desc[i].handler = &brcm_irq_type;
++ irq_desc[i].handler_data = &brcm_irq_type;
+ }
+}
+
+ * explicitly call BcmHalInterruptEnable or enable_brcm_irq. This behavior
+ * is consistent with interrupt handling on VxWorks.
+ */
-+ irq_desc[interruptId].handler = &brcm_irq_no_end_type;
++ irq_desc[interruptId].handler_data = &brcm_irq_no_end_type;
+
+ if( interruptId >= INTERNAL_ISR_TABLE_OFFSET )
+ {
diff -urN linux-2.6.19/arch/mips/bcm963xx/setup.c linux-2.6.19.new/arch/mips/bcm963xx/setup.c
--- linux-2.6.19/arch/mips/bcm963xx/setup.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.19.new/arch/mips/bcm963xx/setup.c 2006-12-16 18:46:31.000000000 +0100
-@@ -0,0 +1,525 @@
+@@ -0,0 +1,524 @@
+/*
+<:copyright-gpl
+ Copyright 2002 Broadcom Corp. All Rights Reserved.
+ pm_power_off = brcm_machine_halt;
+
+ board_time_init = brcm_time_init;
-+ board_timer_setup = brcm_timer_setup;
+
+ panic_timeout = 5;
+
+ return 0;
+}
+
-+void plat_setup(void)
++void __init plat_mem_setup(void)
+{
+ brcm63xx_setup();
+}
diff -urN linux-2.6.19/arch/mips/bcm963xx/time.c linux-2.6.19.new/arch/mips/bcm963xx/time.c
--- linux-2.6.19/arch/mips/bcm963xx/time.c 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.19.new/arch/mips/bcm963xx/time.c 2006-12-16 18:46:31.000000000 +0100
-@@ -0,0 +1,114 @@
+@@ -0,0 +1,119 @@
+/*
+<:copyright-gpl
+ Copyright 2004 Broadcom Corp. All Rights Reserved.
+ irq_enter();
+ kstat_this_cpu.irqs[irq]++;
+
-+ timer_interrupt(irq, NULL, regs);
++ timer_interrupt(irq, regs);
+ irq_exit();
+ return IRQ_HANDLED;
+}
+ write_c0_compare(r4k_cur);
+ set_c0_status(IE_IRQ5);
+}
++
++void __init plat_timer_setup(struct irqaction *irq)
++{
++ brcm_timer_setup(irq);
++}
diff -urN linux-2.6.19/arch/mips/kernel/cpu-probe.c linux-2.6.19.new/arch/mips/kernel/cpu-probe.c
--- linux-2.6.19/arch/mips/kernel/cpu-probe.c 2006-11-29 22:57:37.000000000 +0100
+++ linux-2.6.19.new/arch/mips/kernel/cpu-probe.c 2006-12-16 18:46:31.000000000 +0100