diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2012-01-10 23:38:25 +0000 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2012-03-13 13:45:55 +0000 |
commit | d45785929f1248d2e769f959f180f0504e326622 (patch) | |
tree | b9ff3ebc9ec742f649261d51d269dd8c7b2e6172 /arch/arm/kernel | |
parent | 5ca709c16d0fb88b86db35e958b165b61cbc1962 (diff) |
ARM: local timers: make the runtime registration interface mandatory
Remove all traces of the compile-time local timer interface,
and make the runtime selection mandatory.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/smp.c | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 89bb02c90ae1..1ad84a6c9bfb 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -246,6 +246,8 @@ static void __cpuinit smp_store_cpu_info(unsigned int cpuid) store_cpu_topology(cpuid); } +static void percpu_timer_setup(void); + /* * This is the secondary CPU boot entry. We're using this CPUs * idle thread stack, but a set of temporary page tables. @@ -472,21 +474,7 @@ int local_timer_register(struct local_timer_ops *ops) } #endif -int __cpuinit __attribute__ ((weak)) local_timer_setup(struct clock_event_device *clk) -{ - if (lt_ops) - return lt_ops->setup(clk); - - return -ENXIO; -} - -void __attribute__ ((weak)) local_timer_stop(struct clock_event_device *clk) -{ - if (lt_ops) - lt_ops->stop(clk); -} - -void __cpuinit percpu_timer_setup(void) +static void __cpuinit percpu_timer_setup(void) { unsigned int cpu = smp_processor_id(); struct clock_event_device *evt = &per_cpu(percpu_clockevent, cpu); @@ -494,7 +482,7 @@ void __cpuinit percpu_timer_setup(void) evt->cpumask = cpumask_of(cpu); evt->broadcast = smp_timer_broadcast; - if (local_timer_setup(evt)) + if (!lt_ops || lt_ops->setup(evt)) broadcast_timer_setup(evt); } @@ -509,7 +497,8 @@ static void percpu_timer_stop(void) unsigned int cpu = smp_processor_id(); struct clock_event_device *evt = &per_cpu(percpu_clockevent, cpu); - local_timer_stop(evt); + if (lt_ops) + lt_ops->stop(evt); } #endif |