提交 ee348d5a 编写于 作者: R Russell King 提交者: Russell King

[ARM] realview: fix broadcast tick support

Having discussed broadcast tick support with Thomas Glexiner, the
broadcast tick devices should be registered with a higher rating
than the global tick device, and it should have the ONESHOT and
PERIODIC feature flags set.
Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
Acked-by: NThomas Glexiner <tglx@linutronix.de>
上级 78d236c2
...@@ -750,14 +750,6 @@ void __init realview_timer_init(unsigned int timer_irq) ...@@ -750,14 +750,6 @@ void __init realview_timer_init(unsigned int timer_irq)
{ {
u32 val; u32 val;
#ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
/*
* The dummy clock device has to be registered before the main device
* so that the latter will broadcast the clock events
*/
local_timer_setup();
#endif
/* /*
* set clock frequency: * set clock frequency:
* REALVIEW_REFCLK is 32KHz * REALVIEW_REFCLK is 32KHz
......
...@@ -189,8 +189,10 @@ void __cpuinit local_timer_setup(void) ...@@ -189,8 +189,10 @@ void __cpuinit local_timer_setup(void)
struct clock_event_device *clk = &per_cpu(local_clockevent, cpu); struct clock_event_device *clk = &per_cpu(local_clockevent, cpu);
clk->name = "dummy_timer"; clk->name = "dummy_timer";
clk->features = CLOCK_EVT_FEAT_DUMMY; clk->features = CLOCK_EVT_FEAT_ONESHOT |
clk->rating = 200; CLOCK_EVT_FEAT_PERIODIC |
CLOCK_EVT_FEAT_DUMMY;
clk->rating = 400;
clk->mult = 1; clk->mult = 1;
clk->set_mode = dummy_timer_set_mode; clk->set_mode = dummy_timer_set_mode;
clk->broadcast = smp_timer_broadcast; clk->broadcast = smp_timer_broadcast;
......
...@@ -217,11 +217,9 @@ void __init smp_prepare_cpus(unsigned int max_cpus) ...@@ -217,11 +217,9 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
if (max_cpus > ncores) if (max_cpus > ncores)
max_cpus = ncores; max_cpus = ncores;
#ifdef CONFIG_LOCAL_TIMERS #if defined(CONFIG_LOCAL_TIMERS) || defined(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST)
/* /*
* Enable the local timer for primary CPU. If the device is * Enable the local timer or broadcast device for the boot CPU.
* dummy (!CONFIG_LOCAL_TIMERS), it was already registers in
* realview_timer_init
*/ */
local_timer_setup(); local_timer_setup();
#endif #endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册