All of lore.kernel.org
 help / color / mirror / Atom feed
From: john stultz <johnstul@us.ibm.com>
To: lkml <linux-kernel@vger.kernel.org>
Cc: Hirokazu Takata <takata@linux-m32r.org>, linux-m32r@ml.linux-m32r.org
Subject: [RFC][PATCH 9/14] Convert m32r to read/update_persistent_clock
Date: Tue, 22 Dec 2009 20:10:15 -0800	[thread overview]
Message-ID: <1261541415.3508.71.camel@localhost.localdomain> (raw)
In-Reply-To: <1261541342.3508.70.camel@localhost.localdomain>

This patch converts the m32r  architecture to use the generic
read_persistent_clock and update_persistent_clock interfaces, reducing
the amount of arch specific code we have to maintain, and allowing for
further cleanups in the future.

I have not built or tested this patch, so help from arch maintainers
would be appreciated.

Signed-off-by: John Stultz <johnstul@us.ibm.com>
---
 time.c |   47 +++++++----------------------------------------
 1 file changed, 7 insertions(+), 40 deletions(-)

Index: gettimeoffset/arch/m32r/kernel/time.c
===================================================================
--- gettimeoffset.orig/arch/m32r/kernel/time.c	2009-12-22 18:50:54.000000000 -0800
+++ gettimeoffset/arch/m32r/kernel/time.c	2009-12-22 18:51:15.000000000 -0800
@@ -106,24 +106,6 @@ u32 arch_gettimeoffset(void)
 }
 
 /*
- * In order to set the CMOS clock precisely, set_rtc_mmss has to be
- * called 500 ms after the second nowtime has started, because when
- * nowtime is written into the registers of the CMOS clock, it will
- * jump to the next second precisely 500 ms later. Check the Motorola
- * MC146818A or Dallas DS12887 data sheet for details.
- *
- * BUG: This routine does not handle hour overflow properly; it just
- *      sets the minutes. Usually you won't notice until after reboot!
- */
-static inline int set_rtc_mmss(unsigned long nowtime)
-{
-	return 0;
-}
-
-/* last time the cmos clock got updated */
-static long last_rtc_update = 0;
-
-/*
  * timer_interrupt() needs to keep up the real-time clock,
  * as well as call the "do_timer()" routine every clocktick
  */
@@ -138,23 +120,6 @@ static irqreturn_t timer_interrupt(int i
 #ifndef CONFIG_SMP
 	update_process_times(user_mode(get_irq_regs()));
 #endif
-	/*
-	 * If we have an externally synchronized Linux clock, then update
-	 * CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be
-	 * called as close as possible to 500 ms before the new second starts.
-	 */
-	write_seqlock(&xtime_lock);
-	if (ntp_synced()
-		&& xtime.tv_sec > last_rtc_update + 660
-		&& (xtime.tv_nsec / 1000) >= 500000 - ((unsigned)TICK_SIZE) / 2
-		&& (xtime.tv_nsec / 1000) <= 500000 + ((unsigned)TICK_SIZE) / 2)
-	{
-		if (set_rtc_mmss(xtime.tv_sec) == 0)
-			last_rtc_update = xtime.tv_sec;
-		else	/* do it again in 60 s */
-			last_rtc_update = xtime.tv_sec - 600;
-	}
-	write_sequnlock(&xtime_lock);
 	/* As we return to user mode fire off the other CPU schedulers..
 	   this is basically because we don't yet share IRQ's around.
 	   This message is rigged to be safe on the 386 - basically it's
@@ -174,7 +139,7 @@ static struct irqaction irq0 = {
 	.name = "MFT2",
 };
 
-void __init time_init(void)
+void read_persistent_clock(struct timespec *ts)
 {
 	unsigned int epoch, year, mon, day, hour, min, sec;
 
@@ -194,11 +159,13 @@ void __init time_init(void)
 		epoch = 1952;
 	year += epoch;
 
-	xtime.tv_sec = mktime(year, mon, day, hour, min, sec);
-	xtime.tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ);
-	set_normalized_timespec(&wall_to_monotonic,
-		-xtime.tv_sec, -xtime.tv_nsec);
+	ts->tv_sec = mktime(year, mon, day, hour, min, sec);
+	ts->tv_nsec = (INITIAL_JIFFIES % HZ) * (NSEC_PER_SEC / HZ);
+}
+
 
+void __init time_init(void)
+{
 #if defined(CONFIG_CHIP_M32102) || defined(CONFIG_CHIP_XNUX2) \
 	|| defined(CONFIG_CHIP_VDEC2) || defined(CONFIG_CHIP_M32700) \
 	|| defined(CONFIG_CHIP_OPSP) || defined(CONFIG_CHIP_M32104)



  reply	other threads:[~2009-12-23  4:10 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-23  3:59 [RFC][PATCH 0/14] Convert remaining arches to read/update_persistent_clock john stultz
2009-12-23  4:00 ` [RFC][PATCH 1/14] Convert alpha " john stultz
2009-12-23  4:01   ` [RFC][PATCH 2/14] Convert arm " john stultz
2009-12-23  4:01     ` john stultz
2009-12-23  4:03     ` [RFC][PATCH 3/14] Convert avr32 " john stultz
2009-12-23  4:04       ` [RFC][PATCH 4/14] Convert blackfin " john stultz
2009-12-23  4:05         ` [RFC][PATCH 5/14] Convert cris " john stultz
2009-12-23  4:06           ` [RFC][PATCH 6/14] Convert frv " john stultz
2009-12-23  4:08             ` [RFC][PATCH 7/14] Convert h8300 " john stultz
2009-12-23  4:09               ` [RFC][PATCH 8/14] Convert ia64 " john stultz
2009-12-23  4:09                 ` john stultz
2009-12-23  4:10                 ` john stultz [this message]
2009-12-23  4:11                   ` [RFC][PATCH 10/14] Convert m68k " john stultz
2009-12-23  4:11                     ` john stultz
2009-12-23  4:12                     ` [RFC][PATCH 11/14] Convert mn10300 " john stultz
2009-12-23  4:14                       ` [RFC][PATCH 12/14] Convert parisc " john stultz
2009-12-23  4:14                         ` john stultz
2009-12-23  4:15                         ` [RFC][PATCH 13/14] Convert sh " john stultz
2009-12-23  4:15                           ` john stultz
2009-12-23  4:16                           ` [RFC][PATCH 14/14] Convert sparc " john stultz
2009-12-23  4:16                             ` john stultz
2009-12-24  4:52                             ` [RFC][PATCH 14/14] Convert sparc to David Miller
2009-12-24  4:52                               ` [RFC][PATCH 14/14] Convert sparc to read/update_persistent_clock David Miller
2010-01-05 16:41                             ` Kristoffer Glembo
2010-01-05 16:41                               ` Kristoffer Glembo
2010-01-05 17:08                       ` [RFC][PATCH 11/14] Convert mn10300 " David Howells
2010-01-05 16:47             ` [RFC][PATCH 6/14] Convert frv " David Howells
2009-12-24 11:09     ` [RFC][PATCH 2/14] Convert arm " Uwe Kleine-König
2009-12-24 11:09       ` Uwe Kleine-König
2009-12-23  5:08 ` [RFC][PATCH 0/14] Convert remaining arches " Paul Mundt
2009-12-23  5:08   ` Paul Mundt
2009-12-23 10:08   ` Geert Uytterhoeven
2009-12-23 10:08     ` [RFC][PATCH 0/14] Convert remaining arches to Geert Uytterhoeven
2009-12-23 22:04   ` [RFC][PATCH 0/14] Convert remaining arches to read/update_persistent_clock john stultz
2009-12-23 22:04     ` [RFC][PATCH 0/14] Convert remaining arches to john stultz
2009-12-24  0:27     ` [RFC][PATCH 0/14] Convert remaining arches to read/update_persistent_clock Dialup Jon Norstog
2009-12-24  0:27       ` Dialup Jon Norstog
2009-12-24  4:54   ` David Miller
2009-12-24  4:54     ` [RFC][PATCH 0/14] Convert remaining arches to David Miller
2009-12-24  5:10     ` [RFC][PATCH 0/14] Convert remaining arches to read/update_persistent_clock Paul Mundt
2009-12-24  5:10       ` Paul Mundt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1261541415.3508.71.camel@localhost.localdomain \
    --to=johnstul@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m32r@ml.linux-m32r.org \
    --cc=takata@linux-m32r.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.