static struct timespec wall_to_monotonic __attribute__ ((aligned (16)));
static struct timespec total_sleep_time;
-/* Offset clock monotonic -> clock realtime */
-static ktime_t offs_real;
-
-/* Offset clock monotonic -> clock boottime */
-static ktime_t offs_boot;
-
/*
* The raw monotonic time for the CLOCK_MONOTONIC_RAW posix clock.
*/
static struct timespec raw_time;
-/* must hold write on xtime_lock */
-static void update_rt_offset(void)
-{
- struct timespec tmp, *wtm = &wall_to_monotonic;
-
- set_normalized_timespec(&tmp, -wtm->tv_sec, -wtm->tv_nsec);
- offs_real = timespec_to_ktime(tmp);
-}
-
/* must hold write on xtime_lock */
static void timekeeping_update(bool clearntp)
{
timekeeper.ntp_error = 0;
ntp_clear();
}
- update_rt_offset();
update_vsyscall(&xtime, &wall_to_monotonic,
timekeeper.clock, timekeeper.mult);
}
}
set_normalized_timespec(&wall_to_monotonic,
-boot.tv_sec, -boot.tv_nsec);
- update_rt_offset();
total_sleep_time.tv_sec = 0;
total_sleep_time.tv_nsec = 0;
write_sequnlock_irqrestore(&xtime_lock, flags);
/* time in seconds when suspend began */
static struct timespec timekeeping_suspend_time;
-static void update_sleep_time(struct timespec t)
-{
- total_sleep_time = t;
- offs_boot = timespec_to_ktime(t);
-}
-
/**
* __timekeeping_inject_sleeptime - Internal function to add sleep interval
* @delta: pointer to a timespec delta value
{
xtime = timespec_add(xtime, *delta);
wall_to_monotonic = timespec_sub(wall_to_monotonic, *delta);
- update_sleep_time(timespec_add(total_sleep_time, *delta));
+ total_sleep_time = timespec_add(total_sleep_time, *delta);
}