From: Miroslav Lichvar Date: Mon, 18 Aug 2014 11:06:38 +0000 (+0200) Subject: rtc: improve accuracy of preinit step X-Git-Tag: 1.31-pre1~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=38ac08111410e5d3f8e0f1e6b699809b149a488a;p=thirdparty%2Fchrony.git rtc: improve accuracy of preinit step --- diff --git a/rtc_linux.c b/rtc_linux.c index c0c8a69e..64d41992 100644 --- a/rtc_linux.c +++ b/rtc_linux.c @@ -1027,8 +1027,12 @@ RTC_Linux_TimePreInit(void) } /* Correct time */ - new_sys_time.tv_sec = rtc_t - (time_t)(0.5 + accumulated_error); - new_sys_time.tv_usec = 0; + + new_sys_time.tv_sec = rtc_t; + /* Average error in the RTC reading */ + new_sys_time.tv_usec = 500000; + + UTI_AddDoubleToTimeval(&new_sys_time, -accumulated_error, &new_sys_time); /* Set system time only if the step is larger than 1 second */ if (!(gettimeofday(&old_sys_time, NULL) < 0) &&