[PATCH] ARM SMP: Add basic support Integrator/CP platform
Add basic SMP support for the Integrator/CP platform. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
e65f38ed0b
commit
20cf33ea16
@ -12,3 +12,4 @@ obj-$(CONFIG_LEDS) += leds.o
|
|||||||
obj-$(CONFIG_PCI) += pci_v3.o pci.o
|
obj-$(CONFIG_PCI) += pci_v3.o pci.o
|
||||||
obj-$(CONFIG_CPU_FREQ_INTEGRATOR) += cpu.o
|
obj-$(CONFIG_CPU_FREQ_INTEGRATOR) += cpu.o
|
||||||
obj-$(CONFIG_INTEGRATOR_IMPD1) += impd1.o
|
obj-$(CONFIG_INTEGRATOR_IMPD1) += impd1.o
|
||||||
|
obj-$(CONFIG_SMP) += platsmp.o headsmp.o
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
#include <linux/spinlock.h>
|
#include <linux/spinlock.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
|
#include <linux/smp.h>
|
||||||
|
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
#include <asm/irq.h>
|
#include <asm/irq.h>
|
||||||
@ -221,7 +222,24 @@ integrator_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
|||||||
*/
|
*/
|
||||||
timer1->TimerClear = 1;
|
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);
|
write_sequnlock(&xtime_lock);
|
||||||
|
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
*/
|
*/
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
#include <linux/smp.h>
|
||||||
|
#include <linux/spinlock.h>
|
||||||
|
|
||||||
#include <asm/hardware.h>
|
#include <asm/hardware.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
@ -85,4 +87,4 @@ static int __init leds_init(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
__initcall(leds_init);
|
core_initcall(leds_init);
|
||||||
|
Loading…
Reference in New Issue
Block a user