From: 黄涛 Date: Sat, 30 Jul 2011 14:57:57 +0000 (+0800) Subject: Revert "rtc: Try to prevent RTC errors from accumulating." X-Git-Tag: firefly_0821_release~9871 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f014b80bef9a010c60110eadcc59542e450f2a9a;p=firefly-linux-kernel-4.4.55.git Revert "rtc: Try to prevent RTC errors from accumulating." This reverts commit 65a84712596bfd5b0831b8a09691ad3eca391ade. --- diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c index 2bc9ef37b46f..be5a6b73e601 100644 --- a/drivers/rtc/class.c +++ b/drivers/rtc/class.c @@ -40,32 +40,25 @@ static void rtc_device_release(struct device *dev) */ static struct timespec delta; -static struct timespec delta_delta; static time_t oldtime; static int rtc_suspend(struct device *dev, pm_message_t mesg) { struct rtc_device *rtc = to_rtc_device(dev); struct rtc_time tm; - struct timespec ts; - struct timespec new_delta; + struct timespec ts = current_kernel_time(); if (strcmp(dev_name(&rtc->dev), CONFIG_RTC_HCTOSYS_DEVICE) != 0) return 0; - getnstimeofday(&ts); rtc_read_time(rtc, &tm); rtc_tm_to_time(&tm, &oldtime); /* RTC precision is 1 second; adjust delta for avg 1/2 sec err */ - set_normalized_timespec(&new_delta, + set_normalized_timespec(&delta, ts.tv_sec - oldtime, ts.tv_nsec - (NSEC_PER_SEC >> 1)); - /* prevent 1/2 sec errors from accumulating */ - delta_delta = timespec_sub(new_delta, delta); - if (delta_delta.tv_sec < -2 || delta_delta.tv_sec >= 2) - delta = new_delta; return 0; } @@ -85,8 +78,6 @@ static int rtc_resume(struct device *dev) return 0; } rtc_tm_to_time(&tm, &newtime); - if (delta_delta.tv_sec < -1) - newtime++; if (newtime <= oldtime) { if (newtime < oldtime) pr_debug("%s: time travel!\n", dev_name(&rtc->dev));