summaryrefslogtreecommitdiff
path: root/arch/sh/kernel/smp.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2008-08-06 18:37:07 +0900
committerPaul Mundt <lethal@linux-sh.org>2008-09-08 10:35:03 +0900
commit8c24594deab89a484879bee270e948f0a556ed75 (patch)
tree2b0c95a4d53614e1118ea20aa7e705d983ddb23f /arch/sh/kernel/smp.c
parent6f52707e6882eb3bc6920c3f59beb05d23d68354 (diff)
sh: generic clockevent broadcast support.
This hooks up GENERIC_CLOCKEVENTS_BROADCAST and a dummy local timer, which we call in to from the timer IPI when no other local timer is provided. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/smp.c')
-rw-r--r--arch/sh/kernel/smp.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c
index 9cb3734dbd49..c55d314166c7 100644
--- a/arch/sh/kernel/smp.c
+++ b/arch/sh/kernel/smp.c
@@ -84,9 +84,12 @@ asmlinkage void __cpuinit start_secondary(void)
local_irq_enable();
+ cpu = smp_processor_id();
+
+ /* Enable local timers */
+ local_timer_setup(cpu);
calibrate_delay();
- cpu = smp_processor_id();
smp_store_cpu_info(cpu);
cpu_set(cpu, cpu_online_map);
@@ -195,7 +198,7 @@ void smp_timer_broadcast(cpumask_t mask)
static void ipi_timer(void)
{
irq_enter();
- /* XXX ... */
+ local_timer_interrupt();
irq_exit();
}