Revert "rtc: Try to prevent RTC errors from accumulating."
author黄涛 <huangtao@rock-chips.com>
Sat, 30 Jul 2011 14:57:57 +0000 (22:57 +0800)
committer黄涛 <huangtao@rock-chips.com>
Sat, 30 Jul 2011 14:57:57 +0000 (22:57 +0800)
This reverts commit 65a84712596bfd5b0831b8a09691ad3eca391ade.

drivers/rtc/class.c

index 2bc9ef37b46f3d879d984a82cf86e0b68c2a78f2..be5a6b73e601c6be30966e9191c0d5315fd3d5db 100644 (file)
@@ -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));