From: Marc Zyngier Date: Fri, 20 Jan 2012 12:05:09 +0000 (+0000) Subject: ARM: architected timers: add support for UP timer X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=1d8ec93a7177ee118df2f5314d472ae0f2f47fd4;p=people%2Fsstabellini%2Flinux-pvhvm-deprecated.git ARM: architected timers: add support for UP timer If CONFIG_LOCAL_TIMERS is not defined, let the architected timer driver register a single clock_event_device that is used as a global timer. Signed-off-by: Marc Zyngier --- diff --git a/arch/arm/kernel/arch_timer.c b/arch/arm/kernel/arch_timer.c index 46729a2e230..9189e6392e9 100644 --- a/arch/arm/kernel/arch_timer.c +++ b/arch/arm/kernel/arch_timer.c @@ -229,6 +229,7 @@ static struct clocksource clocksource_counter = { .flags = CLOCK_SOURCE_IS_CONTINUOUS, }; +#ifdef CONFIG_LOCAL_TIMERS static void __cpuinit arch_timer_stop(struct clock_event_device *clk) { pr_debug("arch_timer_teardown disable IRQ%d cpu #%d\n", @@ -243,6 +244,9 @@ static struct local_timer_ops arch_timer_ops __cpuinitdata = { .setup = arch_timer_setup, .stop = arch_timer_stop, }; +#else +static struct clock_event_device arch_timer_global_evt; +#endif static int __init arch_timer_common_register(void) { @@ -277,7 +281,12 @@ static int __init arch_timer_common_register(void) } } +#ifdef CONFIG_LOCAL_TIMERS err = local_timer_register(&arch_timer_ops); +#else + arch_timer_global_evt.cpumask = cpumask_of(0); + err = arch_timer_setup(&arch_timer_global_evt); +#endif if (err) goto out_free_irq;