[PATCH 2/2] mach-sa1100: modernize and cleanup timer code

Kristoffer Ericson kristoffer.ericson at gmail.com
Thu Jan 12 11:10:34 EST 2012


Ursäkta förseningen, fick något minne kring att cpu klockningen inte fungerade korrekt
om man inte satte direkt systemklock värde. Var något som pratade med russell om 
för något år sedan.
Ska bara kika lite snabbt.

On Wed, Jan 04, 2012 at 11:21:53AM +0100, Linus Walleij wrote:
> This gets rid of the hairy mult/shift calculation for SA1100
> timers and relies on clockevent core to figure this out, and removes
> the hard-coded rate constant in favor of the CLOCK_TICK_RATE
> already used by the clocksource.
> 
> Cc: Kristoffer Ericson <kristoffer.ericson at gmail.com>
> Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
> ---
>  arch/arm/mach-sa1100/time.c |   12 +++---------
>  1 files changed, 3 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/arm/mach-sa1100/time.c b/arch/arm/mach-sa1100/time.c
> index 69e3353..5cb8c7b 100644
> --- a/arch/arm/mach-sa1100/time.c
> +++ b/arch/arm/mach-sa1100/time.c
> @@ -88,20 +88,14 @@ static void __init sa1100_timer_init(void)
>  	OIER = 0;
>  	OSSR = OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3;
>  
> -	setup_sched_clock(sa1100_read_sched_clock, 32, 3686400);
> -
> -	clockevents_calc_mult_shift(&ckevt_sa1100_osmr0, 3686400, 4);
> -	ckevt_sa1100_osmr0.max_delta_ns =
> -		clockevent_delta2ns(0x7fffffff, &ckevt_sa1100_osmr0);
> -	ckevt_sa1100_osmr0.min_delta_ns =
> -		clockevent_delta2ns(MIN_OSCR_DELTA * 2, &ckevt_sa1100_osmr0) + 1;
> +	setup_sched_clock(sa1100_read_sched_clock, 32, CLOCK_TICK_RATE);
>  	ckevt_sa1100_osmr0.cpumask = cpumask_of(0);
> -
>  	setup_irq(IRQ_OST0, &sa1100_timer_irq);
>  
>  	clocksource_mmio_init(&OSCR, "oscr", CLOCK_TICK_RATE, 200, 32,
>  		clocksource_mmio_readl_up);
> -	clockevents_register_device(&ckevt_sa1100_osmr0);
> +	clockevents_config_and_register(&ckevt_sa1100_osmr0, CLOCK_TICK_RATE,
> +					MIN_OSCR_DELTA * 2, 0x7fffffff);
>  }
>  
>  #ifdef CONFIG_PM
> -- 
> 1.7.6.4



More information about the linux-arm-kernel mailing list