Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aeecf314 authored by John Stultz's avatar John Stultz Committed by Linus Torvalds
Browse files

Convert h8/300 to generic timekeeping



Currently h8/300 does not implement sub-jiffy timekeeping, so there is no
benefit to having arch specific timekeeping code.

This patch simply removes those functions and enables the generic
timekeeping code.

Signed-off-by: default avatarJohn Stultz <johnstul@us.ibm.com>
Acked-by: default avatarYoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent a5f6abd4
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -53,6 +53,10 @@ config GENERIC_CALIBRATE_DELAY
	bool
	default y

config GENERIC_TIME
	bool
	default y

config TIME_LOW_RES
	bool
	default y
+0 −52
Original line number Diff line number Diff line
@@ -66,55 +66,3 @@ void time_init(void)

	platform_timer_setup(timer_interrupt);
}

/*
 * This version of gettimeofday has near microsecond resolution.
 */
void do_gettimeofday(struct timeval *tv)
{
	unsigned long flags;
	unsigned long usec, sec;

	read_lock_irqsave(&xtime_lock, flags);
	usec = 0;
	sec = xtime.tv_sec;
	usec += (xtime.tv_nsec / 1000);
	read_unlock_irqrestore(&xtime_lock, flags);

	while (usec >= 1000000) {
		usec -= 1000000;
		sec++;
	}

	tv->tv_sec = sec;
	tv->tv_usec = usec;
}

EXPORT_SYMBOL(do_gettimeofday);

int do_settimeofday(struct timespec *tv)
{
	if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC)
		return -EINVAL;

	write_lock_irq(&xtime_lock);
	/* This is revolting. We need to set the xtime.tv_usec
	 * correctly. However, the value in this location is
	 * is value at the last tick.
	 * Discover what correction gettimeofday
	 * would have done, and then undo it!
	 */
	while (tv->tv_nsec < 0) {
		tv->tv_nsec += NSEC_PER_SEC;
		tv->tv_sec--;
	}

	xtime.tv_sec = tv->tv_sec;
	xtime.tv_nsec = tv->tv_nsec;
	ntp_clear();
	write_sequnlock_irq(&xtime_lock);
	clock_was_set();
	return 0;
}

EXPORT_SYMBOL(do_settimeofday);