forked from Minki/linux
Merge branch 'clockevents/3.15-fixes' of git://git.linaro.org/people/daniel.lezcano/linux into timers/urgent
clockevent fixes for 3.15 from Daniel Lezcano: * Lorenzo Pieralizi fixed an issue with the arch_arm_timer where the C3STOP flag for all the arch can cause some trouble by setting the flag only if the power domain is not always on * Alexander Shiyan fixed a compilation by changing the init function to the right prototype
This commit is contained in:
commit
fb0095da19
@ -19,6 +19,9 @@ to deliver its interrupts via SPIs.
|
||||
|
||||
- clock-frequency : The frequency of the main counter, in Hz. Optional.
|
||||
|
||||
- always-on : a boolean property. If present, the timer is powered through an
|
||||
always-on power domain, therefore it never loses context.
|
||||
|
||||
Example:
|
||||
|
||||
timer {
|
||||
|
@ -66,6 +66,7 @@ static int arch_timer_ppi[MAX_TIMER_PPI];
|
||||
static struct clock_event_device __percpu *arch_timer_evt;
|
||||
|
||||
static bool arch_timer_use_virtual = true;
|
||||
static bool arch_timer_c3stop;
|
||||
static bool arch_timer_mem_use_virtual;
|
||||
|
||||
/*
|
||||
@ -263,7 +264,8 @@ static void __arch_timer_setup(unsigned type,
|
||||
clk->features = CLOCK_EVT_FEAT_ONESHOT;
|
||||
|
||||
if (type == ARCH_CP15_TIMER) {
|
||||
clk->features |= CLOCK_EVT_FEAT_C3STOP;
|
||||
if (arch_timer_c3stop)
|
||||
clk->features |= CLOCK_EVT_FEAT_C3STOP;
|
||||
clk->name = "arch_sys_timer";
|
||||
clk->rating = 450;
|
||||
clk->cpumask = cpumask_of(smp_processor_id());
|
||||
@ -665,6 +667,8 @@ static void __init arch_timer_init(struct device_node *np)
|
||||
}
|
||||
}
|
||||
|
||||
arch_timer_c3stop = !of_property_read_bool(np, "always-on");
|
||||
|
||||
arch_timer_register();
|
||||
arch_timer_common_init();
|
||||
}
|
||||
|
@ -212,4 +212,9 @@ error_free:
|
||||
return ret;
|
||||
}
|
||||
|
||||
CLOCKSOURCE_OF_DECLARE(zevio_timer, "lsi,zevio-timer", zevio_timer_add);
|
||||
static void __init zevio_timer_init(struct device_node *node)
|
||||
{
|
||||
BUG_ON(zevio_timer_add(node));
|
||||
}
|
||||
|
||||
CLOCKSOURCE_OF_DECLARE(zevio_timer, "lsi,zevio-timer", zevio_timer_init);
|
||||
|
Loading…
Reference in New Issue
Block a user