Add basic SMP support for the Integrator/CP platform.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
 obj-$(CONFIG_PCI)                      += pci_v3.o pci.o
 obj-$(CONFIG_CPU_FREQ_INTEGRATOR)      += cpu.o
 obj-$(CONFIG_INTEGRATOR_IMPD1)         += impd1.o
+obj-$(CONFIG_SMP)                      += platsmp.o headsmp.o
 
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
 #include <linux/sched.h>
+#include <linux/smp.h>
 
 #include <asm/hardware.h>
 #include <asm/irq.h>
         */
        timer1->TimerClear = 1;
 
-       timer_tick(regs);
+       /*
+        * the clock tick routines are only processed on the
+        * primary CPU
+        */
+       if (hard_smp_processor_id() == 0) {
+               nmi_tick();
+               timer_tick(regs);
+#ifdef CONFIG_SMP
+               smp_send_timer();
+#endif
+       }
+
+#ifdef CONFIG_SMP
+       /*
+        * this is the ARM equivalent of the APIC timer interrupt
+        */
+       update_process_times(user_mode(regs));
+#endif /* CONFIG_SMP */
 
        write_sequnlock(&xtime_lock);
 
 
  */
 #include <linux/kernel.h>
 #include <linux/init.h>
+#include <linux/smp.h>
+#include <linux/spinlock.h>
 
 #include <asm/hardware.h>
 #include <asm/io.h>
        return 0;
 }
 
-__initcall(leds_init);
+core_initcall(leds_init);