ARM: 7529/1: delay: set loops_per_jiffy when moving to timer-based loop
authorWill Deacon <will.deacon@arm.com>
Fri, 7 Sep 2012 17:24:53 +0000 (18:24 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 9 Sep 2012 16:28:48 +0000 (17:28 +0100)
The delay functions may be called by some platforms between switching to
the timer-based delay loop but before calibration. In this case, the
initial loops_per_jiffy may not be suitable for the timer (although a
compromise may be achievable) and delay times may be considered too
inaccurate.

This patch updates loops_per_jiffy when switching to the timer-based
delay loop so that delays are consistent prior to calibration.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/lib/delay.c

index d6dacc6..395d5fb 100644 (file)
@@ -59,6 +59,7 @@ void __init init_current_timer_delay(unsigned long freq)
 {
        pr_info("Switching to timer-based delay loop\n");
        lpj_fine                        = freq / HZ;
+       loops_per_jiffy                 = lpj_fine;
        arm_delay_ops.delay             = __timer_delay;
        arm_delay_ops.const_udelay      = __timer_const_udelay;
        arm_delay_ops.udelay            = __timer_udelay;