All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@mvista.com>
To: dsaxena@plexity.net
Cc: mingo@elte.hu, tglx@linutronix.de, johnstul@us.ibm.com,
	dwalker@mvista.com, james.perkins@windriver.com,
	linux-kernel@vger.kernel.org, rmk@arm.linux.org.uk
Subject: Re: [patch-rt 0/2] Initial ARM generic-timeofday support
Date: Tue, 06 Jun 2006 13:05:16 -0700	[thread overview]
Message-ID: <1149624316.29864.48.camel@vence.internal.net> (raw)
In-Reply-To: <20060605222956.608067000@localhost.localdomain>

[-- Attachment #1: Type: text/plain, Size: 485 bytes --]

On Mon, 2006-06-05 at 15:29 -0700, dsaxena@plexity.net wrote:
> patchset (against -rt26, but should apply to newer patch) adds
> initial support for generic TOD on ARM. It is fairly simple and
> copletely rips out the existing TOD code in ARM, assuming that each
> sub-arch will either provide a clocksource or enable CONFIG_IS_TICK_BASED.
> Currently only Versatile is supported.

And here's a patch on top of the ARM support which adds a clocksource
for the ixp4xx platform.

Kevin


[-- Attachment #2: arm-ixp4xx-clocksource.patch --]
[-- Type: text/x-patch, Size: 2218 bytes --]

Add a clocksource driver for the Intel IXP4xx platform allowing it to
use the generic time-of-day code.

Signed-off-by: Kevin Hilman <khilman@deeprooted.net>

Index: ixp4xx/arch/arm/mach-ixp4xx/common.c
===================================================================
--- ixp4xx.orig/arch/arm/mach-ixp4xx/common.c
+++ ixp4xx/arch/arm/mach-ixp4xx/common.c
@@ -27,6 +27,7 @@
 #include <linux/bitops.h>
 #include <linux/time.h>
 #include <linux/timex.h>
+#include <linux/clocksource.h>
 
 #include <asm/hardware.h>
 #include <asm/uaccess.h>
@@ -253,16 +254,6 @@ static unsigned volatile last_jiffy_time
 
 #define CLOCK_TICKS_PER_USEC	((CLOCK_TICK_RATE + USEC_PER_SEC/2) / USEC_PER_SEC)
 
-/* IRQs are disabled before entering here from do_gettimeofday() */
-static unsigned long ixp4xx_gettimeoffset(void)
-{
-	u32 elapsed;
-
-	elapsed = *IXP4XX_OSTS - last_jiffy_time;
-
-	return elapsed / CLOCK_TICKS_PER_USEC;
-}
-
 static irqreturn_t ixp4xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
 	write_seqlock(&xtime_lock);
@@ -297,8 +288,6 @@ static void __init ixp4xx_timer_init(voi
 	/* Setup the Timer counter value */
 	*IXP4XX_OSRT1 = (LATCH & ~IXP4XX_OST_RELOAD_MASK) | IXP4XX_OST_ENABLE;
 
-	/* Reset time-stamp counter */
-	*IXP4XX_OSTS = 0;
 	last_jiffy_time = 0;
 
 	/* Connect the interrupt handler and enable the interrupt */
@@ -307,7 +296,6 @@ static void __init ixp4xx_timer_init(voi
 
 struct sys_timer ixp4xx_timer = {
 	.init		= ixp4xx_timer_init,
-	.offset		= ixp4xx_gettimeoffset,
 };
 
 static struct resource ixp46x_i2c_resources[] = {
@@ -363,3 +351,30 @@ void __init ixp4xx_sys_init(void)
 			ixp4xx_exp_bus_size >> 20);
 }
 
+cycle_t ixp4xx_get_cycles(void)
+{
+	return *IXP4XX_OSTS;
+}
+
+static struct clocksource clocksource_ixp4xx = {
+	.name 		= "OSTS",
+	.rating		= 200,
+	.read		= ixp4xx_get_cycles,
+	.mask		= 0xFFFFFFFF,
+	.shift 		= 10,
+	.is_continuous 	= 1,
+};
+
+static int __init ixp4xx_clocksource_init(void)
+{
+	/* Reset time-stamp counter */
+	*IXP4XX_OSTS = 0;
+
+	clocksource_ixp4xx.mult =
+		clocksource_khz2mult(66660, clocksource_ixp4xx.shift);
+	register_clocksource(&clocksource_ixp4xx);
+
+	return 0;
+}
+
+device_initcall(ixp4xx_clocksource_init);

      parent reply	other threads:[~2006-06-06 20:05 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-05 22:29 [patch-rt 0/2] Initial ARM generic-timeofday support dsaxena
2006-06-05 22:29 ` [patch-rt 1/2] Remove existing time code from ARM architecture dsaxena
2006-06-05 23:13   ` john stultz
2006-06-05 22:29 ` [patch-rt 2/2] Add clocksource driver for Versatile board dsaxena
2006-06-05 23:17   ` john stultz
2006-06-05 23:06 ` [patch-rt 0/2] Initial ARM generic-timeofday support john stultz
2006-06-05 23:13   ` Deepak Saxena
2006-06-05 23:16     ` john stultz
2006-06-06 20:05 ` Kevin Hilman [this message]

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=1149624316.29864.48.camel@vence.internal.net \
    --to=khilman@mvista.com \
    --cc=dsaxena@plexity.net \
    --cc=dwalker@mvista.com \
    --cc=james.perkins@windriver.com \
    --cc=johnstul@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rmk@arm.linux.org.uk \
    --cc=tglx@linutronix.de \
    /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.