aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/smp.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2008-08-06 05:37:07 -0400
committerPaul Mundt <lethal@linux-sh.org>2008-09-07 21:35:03 -0400
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)
84 84
85 local_irq_enable(); 85 local_irq_enable();
86 86
87 cpu = smp_processor_id();
88
89 /* Enable local timers */
90 local_timer_setup(cpu);
87 calibrate_delay(); 91 calibrate_delay();
88 92
89 cpu = smp_processor_id();
90 smp_store_cpu_info(cpu); 93 smp_store_cpu_info(cpu);
91 94
92 cpu_set(cpu, cpu_online_map); 95 cpu_set(cpu, cpu_online_map);
@@ -195,7 +198,7 @@ void smp_timer_broadcast(cpumask_t mask)
195static void ipi_timer(void) 198static void ipi_timer(void)
196{ 199{
197 irq_enter(); 200 irq_enter();
198 /* XXX ... */ 201 local_timer_interrupt();
199 irq_exit(); 202 irq_exit();
200} 203}
201 204