diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2014-04-29 13:26:58 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2014-04-29 13:26:58 -0400 |
commit | fb0095da19a2e905dfa3141a7704d9614f64992c (patch) | |
tree | 2d2c0269ee183afae555ae2df3c185e97d96f9e4 /drivers/clocksource | |
parent | d1db0eea852497762cab43b905b879dfcd3b8987 (diff) | |
parent | 9afa27ce9414c92e271b0d7eec937bd9f5565da5 (diff) |
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
Diffstat (limited to 'drivers/clocksource')
-rw-r--r-- | drivers/clocksource/arm_arch_timer.c | 6 | ||||
-rw-r--r-- | drivers/clocksource/zevio-timer.c | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c index 57e823c44d2a..5163ec13429d 100644 --- a/drivers/clocksource/arm_arch_timer.c +++ b/drivers/clocksource/arm_arch_timer.c | |||
@@ -66,6 +66,7 @@ static int arch_timer_ppi[MAX_TIMER_PPI]; | |||
66 | static struct clock_event_device __percpu *arch_timer_evt; | 66 | static struct clock_event_device __percpu *arch_timer_evt; |
67 | 67 | ||
68 | static bool arch_timer_use_virtual = true; | 68 | static bool arch_timer_use_virtual = true; |
69 | static bool arch_timer_c3stop; | ||
69 | static bool arch_timer_mem_use_virtual; | 70 | static bool arch_timer_mem_use_virtual; |
70 | 71 | ||
71 | /* | 72 | /* |
@@ -263,7 +264,8 @@ static void __arch_timer_setup(unsigned type, | |||
263 | clk->features = CLOCK_EVT_FEAT_ONESHOT; | 264 | clk->features = CLOCK_EVT_FEAT_ONESHOT; |
264 | 265 | ||
265 | if (type == ARCH_CP15_TIMER) { | 266 | if (type == ARCH_CP15_TIMER) { |
266 | clk->features |= CLOCK_EVT_FEAT_C3STOP; | 267 | if (arch_timer_c3stop) |
268 | clk->features |= CLOCK_EVT_FEAT_C3STOP; | ||
267 | clk->name = "arch_sys_timer"; | 269 | clk->name = "arch_sys_timer"; |
268 | clk->rating = 450; | 270 | clk->rating = 450; |
269 | clk->cpumask = cpumask_of(smp_processor_id()); | 271 | clk->cpumask = cpumask_of(smp_processor_id()); |
@@ -665,6 +667,8 @@ static void __init arch_timer_init(struct device_node *np) | |||
665 | } | 667 | } |
666 | } | 668 | } |
667 | 669 | ||
670 | arch_timer_c3stop = !of_property_read_bool(np, "always-on"); | ||
671 | |||
668 | arch_timer_register(); | 672 | arch_timer_register(); |
669 | arch_timer_common_init(); | 673 | arch_timer_common_init(); |
670 | } | 674 | } |
diff --git a/drivers/clocksource/zevio-timer.c b/drivers/clocksource/zevio-timer.c index ca81809d159d..7ce442148c3f 100644 --- a/drivers/clocksource/zevio-timer.c +++ b/drivers/clocksource/zevio-timer.c | |||
@@ -212,4 +212,9 @@ error_free: | |||
212 | return ret; | 212 | return ret; |
213 | } | 213 | } |
214 | 214 | ||
215 | CLOCKSOURCE_OF_DECLARE(zevio_timer, "lsi,zevio-timer", zevio_timer_add); | 215 | static void __init zevio_timer_init(struct device_node *node) |
216 | { | ||
217 | BUG_ON(zevio_timer_add(node)); | ||
218 | } | ||
219 | |||
220 | CLOCKSOURCE_OF_DECLARE(zevio_timer, "lsi,zevio-timer", zevio_timer_init); | ||