diff options
Diffstat (limited to 'arch/arm/mach-imx/time.c')
| -rw-r--r-- | arch/arm/mach-imx/time.c | 18 | 
1 files changed, 5 insertions, 13 deletions
diff --git a/arch/arm/mach-imx/time.c b/arch/arm/mach-imx/time.c index f017302f6d0..fea91313678 100644 --- a/arch/arm/mach-imx/time.c +++ b/arch/arm/mach-imx/time.c @@ -152,7 +152,8 @@ static int v2_set_next_event(unsigned long evt,  	__raw_writel(tcmp, timer_base + V2_TCMP); -	return (int)(tcmp - __raw_readl(timer_base + V2_TCN)) < 0 ? +	return evt < 0x7fffffff && +		(int)(tcmp - __raw_readl(timer_base + V2_TCN)) < 0 ?  				-ETIME : 0;  } @@ -256,7 +257,6 @@ static struct irqaction mxc_timer_irq = {  static struct clock_event_device clockevent_mxc = {  	.name		= "mxc_timer1",  	.features	= CLOCK_EVT_FEAT_ONESHOT, -	.shift		= 32,  	.set_mode	= mxc_set_mode,  	.set_next_event	= mx1_2_set_next_event,  	.rating		= 200, @@ -264,21 +264,13 @@ static struct clock_event_device clockevent_mxc = {  static int __init mxc_clockevent_init(struct clk *timer_clk)  { -	unsigned int c = clk_get_rate(timer_clk); -  	if (timer_is_v2())  		clockevent_mxc.set_next_event = v2_set_next_event; -	clockevent_mxc.mult = div_sc(c, NSEC_PER_SEC, -					clockevent_mxc.shift); -	clockevent_mxc.max_delta_ns = -			clockevent_delta2ns(0xfffffffe, &clockevent_mxc); -	clockevent_mxc.min_delta_ns = -			clockevent_delta2ns(0xff, &clockevent_mxc); -  	clockevent_mxc.cpumask = cpumask_of(0); - -	clockevents_register_device(&clockevent_mxc); +	clockevents_config_and_register(&clockevent_mxc, +					clk_get_rate(timer_clk), +					0xff, 0xfffffffe);  	return 0;  }  |