[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: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by: Thomas Glexiner <tglx@linutronix.de>
This commit is contained in:
committed by
Russell King
parent
78d236c2b3
commit
ee348d5a1d
@@ -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)
|
|||||||
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)
|
|||||||
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
|
||||||
|
Reference in New Issue
Block a user