From c6e906549806792e53bb0087ee8ecea765c32e35 Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Wed, 15 Jun 2011 12:11:32 +0200 Subject: [PATCH] Fix current_total_tick calculation --- sys_linux.c | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/sys_linux.c b/sys_linux.c index 98c18eb..c26023e 100644 --- a/sys_linux.c +++ b/sys_linux.c @@ -649,29 +649,11 @@ set_frequency(double freq_ppm) double scaled_freq; /* what adjtimex & the kernel use */ double old_total_tick; int required_delta_tick; - int neg; /* True if estimate is that local clock runs slow, - i.e. positive frequency correction required */ - - - if (freq_ppm < 0.0) { - neg = 1; - freq_ppm = -freq_ppm; - } else { - neg = 0; - } required_delta_tick = our_round(freq_ppm / dhz); - required_freq = freq_ppm - dhz * (double) required_delta_tick; - - if (neg) { - /* Uncompensated local clock runs slow */ - required_tick = nominal_tick + required_delta_tick; - scaled_freq = freq_scale * required_freq; - } else { - /* Uncompensated local clock runs fast */ - required_tick = nominal_tick - required_delta_tick; - scaled_freq = -freq_scale * required_freq; - } + required_freq = -(freq_ppm - dhz * required_delta_tick); + required_tick = nominal_tick - required_delta_tick; + scaled_freq = freq_scale * required_freq; min_allowed_tick = nominal_tick - max_tick_bias; max_allowed_tick = nominal_tick + max_tick_bias;