diff options
author | Tero Kristo <t-kristo@ti.com> | 2016-06-16 08:25:18 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2016-06-17 05:46:45 -0400 |
commit | 970f9091d25df14e9540ec7ff48a2f709e284cd1 (patch) | |
tree | a4186b2944597b219300ceaad8561951e011f847 | |
parent | ef5bdccf6d4363fd934035e0b1ca8445975e1d89 (diff) |
ARM: OMAP2+: timer: add probe for clocksources
A few platforms are currently missing clocksource_probe() completely
in their time_init functionality. On OMAP3430 for example, this is
causing cpuidle to be pretty much dead, as the counter32k is not
going to be registered and instead a gptimer is used as a clocksource.
This will tick in periodic mode, preventing any deeper idle states.
While here, also drop one unnecessary check for populated DT before
existing clocksource_probe() call.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
-rw-r--r-- | arch/arm/mach-omap2/timer.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 5b385bb8aff9..cb9497a20fb3 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
@@ -496,8 +496,7 @@ void __init omap_init_time(void) | |||
496 | __omap_sync32k_timer_init(1, "timer_32k_ck", "ti,timer-alwon", | 496 | __omap_sync32k_timer_init(1, "timer_32k_ck", "ti,timer-alwon", |
497 | 2, "timer_sys_ck", NULL, false); | 497 | 2, "timer_sys_ck", NULL, false); |
498 | 498 | ||
499 | if (of_have_populated_dt()) | 499 | clocksource_probe(); |
500 | clocksource_probe(); | ||
501 | } | 500 | } |
502 | 501 | ||
503 | #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM43XX) | 502 | #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM43XX) |
@@ -505,6 +504,8 @@ void __init omap3_secure_sync32k_timer_init(void) | |||
505 | { | 504 | { |
506 | __omap_sync32k_timer_init(12, "secure_32k_fck", "ti,timer-secure", | 505 | __omap_sync32k_timer_init(12, "secure_32k_fck", "ti,timer-secure", |
507 | 2, "timer_sys_ck", NULL, false); | 506 | 2, "timer_sys_ck", NULL, false); |
507 | |||
508 | clocksource_probe(); | ||
508 | } | 509 | } |
509 | #endif /* CONFIG_ARCH_OMAP3 */ | 510 | #endif /* CONFIG_ARCH_OMAP3 */ |
510 | 511 | ||
@@ -513,6 +514,8 @@ void __init omap3_gptimer_timer_init(void) | |||
513 | { | 514 | { |
514 | __omap_sync32k_timer_init(2, "timer_sys_ck", NULL, | 515 | __omap_sync32k_timer_init(2, "timer_sys_ck", NULL, |
515 | 1, "timer_sys_ck", "ti,timer-alwon", true); | 516 | 1, "timer_sys_ck", "ti,timer-alwon", true); |
517 | |||
518 | clocksource_probe(); | ||
516 | } | 519 | } |
517 | #endif | 520 | #endif |
518 | 521 | ||