diff options
| -rw-r--r-- | arch/arm/mach-omap1/time.c | 7 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/timer-gp.c | 10 | ||||
| -rw-r--r-- | arch/arm/plat-omap/counter_32k.c | 3 | ||||
| -rw-r--r-- | arch/arm/plat-omap/include/plat/common.h | 1 | 
4 files changed, 17 insertions, 4 deletions
| diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c index ed7a61ff916a..6ec65e599997 100644 --- a/arch/arm/mach-omap1/time.c +++ b/arch/arm/mach-omap1/time.c @@ -244,6 +244,13 @@ static void __init omap_timer_init(void)  	omap_init_mpu_timer(rate);  	omap_init_clocksource(rate); +	/* +	 * XXX Since this file seems to deal mostly with the MPU timer, +	 * this doesn't seem like the correct place for the sync timer +	 * clocksource init. +	 */ +	if (!cpu_is_omap7xx() && !cpu_is_omap15xx()) +		omap_init_clocksource_32k();  }  struct sys_timer omap_timer = { diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c index 4e48e786bec7..7b7c2683ae7b 100644 --- a/arch/arm/mach-omap2/timer-gp.c +++ b/arch/arm/mach-omap2/timer-gp.c @@ -42,6 +42,8 @@  #include "timer-gp.h" +#include <plat/common.h> +  /* MAX_GPTIMER_ID: number of GPTIMERs on the chip */  #define MAX_GPTIMER_ID		12 @@ -176,10 +178,14 @@ static void __init omap2_gp_clockevent_init(void)  /*    * When 32k-timer is enabled, don't use GPTimer for clocksource   * instead, just leave default clocksource which uses the 32k - * sync counter.  See clocksource setup in see plat-omap/common.c.  + * sync counter.  See clocksource setup in plat-omap/counter_32k.c   */ -static inline void __init omap2_gp_clocksource_init(void) {} +static void __init omap2_gp_clocksource_init(void) +{ +	omap_init_clocksource_32k(); +} +  #else  /*   * clocksource diff --git a/arch/arm/plat-omap/counter_32k.c b/arch/arm/plat-omap/counter_32k.c index ea4644021fb9..0367998ff685 100644 --- a/arch/arm/plat-omap/counter_32k.c +++ b/arch/arm/plat-omap/counter_32k.c @@ -160,7 +160,7 @@ void read_persistent_clock(struct timespec *ts)  	*ts = *tsp;  } -static int __init omap_init_clocksource_32k(void) +int __init omap_init_clocksource_32k(void)  {  	static char err[] __initdata = KERN_ERR  			"%s: can't register clocksource!\n"; @@ -195,7 +195,6 @@ static int __init omap_init_clocksource_32k(void)  	}  	return 0;  } -arch_initcall(omap_init_clocksource_32k);  #endif	/* !(defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP15XX)) */ diff --git a/arch/arm/plat-omap/include/plat/common.h b/arch/arm/plat-omap/include/plat/common.h index 6b8088ec74af..84c707f713b1 100644 --- a/arch/arm/plat-omap/include/plat/common.h +++ b/arch/arm/plat-omap/include/plat/common.h @@ -35,6 +35,7 @@ struct sys_timer;  extern void omap_map_common_io(void);  extern struct sys_timer omap_timer; +extern int __init omap_init_clocksource_32k(void);  extern void omap_reserve(void); | 
