Skip to content

Commit

Permalink
clocksource: arm_generic: use integer math helpers
Browse files Browse the repository at this point in the history
This will make the two crucial integer divisions in the generic
ARM arch timer used for ARMv8 use the kernel DIV_ROUND_CLOSEST()
helper inline from <linux/kernel.h> so they get more precise.

Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
  • Loading branch information
Linus Walleij authored and John Stultz committed Nov 13, 2012
1 parent f95a985 commit 980097b
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/clocksource/arm_generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ static void __init arch_timer_calibrate(void)

/* Cache the sched_clock multiplier to save a divide in the hot path. */

sched_clock_mult = NSEC_PER_SEC / arch_timer_rate;
sched_clock_mult = DIV_ROUND_CLOSEST(NSEC_PER_SEC, arch_timer_rate);

pr_info("Architected local timer running at %u.%02uMHz.\n",
arch_timer_rate / 1000000, (arch_timer_rate / 10000) % 100);
Expand Down Expand Up @@ -221,7 +221,7 @@ int __init arm_generic_timer_init(void)
clocksource_register_hz(&clocksource_counter, arch_timer_rate);

/* Calibrate the delay loop directly */
lpj_fine = arch_timer_rate / HZ;
lpj_fine = DIV_ROUND_CLOSEST(arch_timer_rate, HZ);

/* Immediately configure the timer on the boot CPU */
arch_timer_setup(per_cpu_ptr(&arch_timer_evt, smp_processor_id()));
Expand Down

0 comments on commit 980097b

Please sign in to comment.