diff options
Diffstat (limited to 'arch/arm/plat-nomadik/timer.c')
| -rw-r--r-- | arch/arm/plat-nomadik/timer.c | 20 | 
1 files changed, 5 insertions, 15 deletions
diff --git a/arch/arm/plat-nomadik/timer.c b/arch/arm/plat-nomadik/timer.c index 30b6433d910..ad1b45b605a 100644 --- a/arch/arm/plat-nomadik/timer.c +++ b/arch/arm/plat-nomadik/timer.c @@ -17,7 +17,6 @@  #include <linux/clk.h>  #include <linux/jiffies.h>  #include <linux/err.h> -#include <linux/sched.h>  #include <asm/mach/time.h>  #include <asm/sched_clock.h> @@ -79,23 +78,12 @@ void __iomem *mtu_base; /* Assigned by machine code */   * local implementation which uses the clocksource to get some   * better resolution when scheduling the kernel.   */ -static DEFINE_CLOCK_DATA(cd); - -unsigned long long notrace sched_clock(void) +static u32 notrace nomadik_read_sched_clock(void)  { -	u32 cyc; -  	if (unlikely(!mtu_base))  		return 0; -	cyc = -readl(mtu_base + MTU_VAL(0)); -	return cyc_to_sched_clock(&cd, cyc, (u32)~0); -} - -static void notrace nomadik_update_sched_clock(void) -{ -	u32 cyc = -readl(mtu_base + MTU_VAL(0)); -	update_sched_clock(&cd, cyc, (u32)~0); +	return -readl(mtu_base + MTU_VAL(0));  }  #endif @@ -231,9 +219,11 @@ void __init nmdk_timer_init(void)  			rate, 200, 32, clocksource_mmio_readl_down))  		pr_err("timer: failed to initialize clock source %s\n",  		       "mtu_0"); +  #ifdef CONFIG_NOMADIK_MTU_SCHED_CLOCK -	init_sched_clock(&cd, nomadik_update_sched_clock, 32, rate); +	setup_sched_clock(nomadik_read_sched_clock, 32, rate);  #endif +  	/* Timer 1 is used for events */  	clockevents_calc_mult_shift(&nmdk_clkevt, rate, MTU_MIN_RANGE);  |