public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 6/8] clocksource: m86knommu: Convert to clocksource_register_hz/khz
  2011-10-25 18:08 [PATCH 1/8] clocksource: Convert tcb_clksrc to use clocksource_register_hz/khz y
@ 2011-10-25 18:08 ` y
  0 siblings, 0 replies; 7+ messages in thread
From: y @ 2011-10-25 18:08 UTC (permalink / raw)
  To: lkml; +Cc: John Stultz, Geert Uytterhoeven, Greg Ungerer

From: John Stultz <johnstul@us.ibm.com>

This converts the m86knommu clocksources to use clocksource_register_hz/khz

This is untested, so any assistance in testing would be appreciated!

CC: Geert Uytterhoeven <geert@linux-m68k.org>
CC: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
---
 arch/m68k/platform/68328/timers.c         |    4 +-
 arch/m68k/platform/coldfire/dma_timer.c   |    5 +-
 arch/m68knommu/platform/coldfire/pit.c    |  167 ++++++++++++++++++++++++++++
 arch/m68knommu/platform/coldfire/timers.c |  172 +++++++++++++++++++++++++++++
 4 files changed, 341 insertions(+), 7 deletions(-)
 create mode 100644 arch/m68knommu/platform/coldfire/pit.c
 create mode 100644 arch/m68knommu/platform/coldfire/timers.c

diff --git a/arch/m68k/platform/68328/timers.c b/arch/m68k/platform/68328/timers.c
index 309f725..f267886 100644
--- a/arch/m68k/platform/68328/timers.c
+++ b/arch/m68k/platform/68328/timers.c
@@ -93,7 +93,6 @@ static struct clocksource m68328_clk = {
 	.name	= "timer",
 	.rating	= 250,
 	.read	= m68328_read_clk,
-	.shift	= 20,
 	.mask	= CLOCKSOURCE_MASK(32),
 	.flags	= CLOCK_SOURCE_IS_CONTINUOUS,
 };
@@ -115,8 +114,7 @@ void hw_timer_init(void)
 
 	/* Enable timer 1 */
 	TCTL |= TCTL_TEN;
-	m68328_clk.mult = clocksource_hz2mult(TICKS_PER_JIFFY*HZ, m68328_clk.shift);
-	clocksource_register(&m68328_clk);
+	clocksource_register_hz(&m68328_clk, TICKS_PER_JIFFY*HZ);
 }
 
 /***************************************************************************/
diff --git a/arch/m68k/platform/coldfire/dma_timer.c b/arch/m68k/platform/coldfire/dma_timer.c
index a5f5628..235ad57 100644
--- a/arch/m68k/platform/coldfire/dma_timer.c
+++ b/arch/m68k/platform/coldfire/dma_timer.c
@@ -44,7 +44,6 @@ static struct clocksource clocksource_cf_dt = {
 	.rating		= 200,
 	.read		= cf_dt_get_cycles,
 	.mask		= CLOCKSOURCE_MASK(32),
-	.shift		= 20,
 	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
@@ -60,9 +59,7 @@ static int __init  init_cf_dt_clocksource(void)
 	__raw_writeb(0x00, DTER0);
 	__raw_writel(0x00000000, DTRR0);
 	__raw_writew(DMA_DTMR_CLK_DIV_16 | DMA_DTMR_ENABLE, DTMR0);
-	clocksource_cf_dt.mult = clocksource_hz2mult(DMA_FREQ,
-						     clocksource_cf_dt.shift);
-	return clocksource_register(&clocksource_cf_dt);
+	return clocksource_register_hz(&clocksource_cf_dt, DMA_FREQ);
 }
 
 arch_initcall(init_cf_dt_clocksource);
diff --git a/arch/m68knommu/platform/coldfire/pit.c b/arch/m68knommu/platform/coldfire/pit.c
new file mode 100644
index 0000000..ff5e34a
--- /dev/null
+++ b/arch/m68knommu/platform/coldfire/pit.c
@@ -0,0 +1,167 @@
+/***************************************************************************/
+
+/*
+ *	pit.c -- Freescale ColdFire PIT timer. Currently this type of
+ *	         hardware timer only exists in the Freescale ColdFire
+ *		 5270/5271, 5282 and 5208 CPUs. No doubt newer ColdFire
+ *		 family members will probably use it too.
+ *
+ *	Copyright (C) 1999-2008, Greg Ungerer (gerg@snapgear.com)
+ *	Copyright (C) 2001-2004, SnapGear Inc. (www.snapgear.com)
+ */
+
+/***************************************************************************/
+
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/param.h>
+#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/clockchips.h>
+#include <asm/machdep.h>
+#include <asm/io.h>
+#include <asm/coldfire.h>
+#include <asm/mcfpit.h>
+#include <asm/mcfsim.h>
+
+/***************************************************************************/
+
+/*
+ *	By default use timer1 as the system clock timer.
+ */
+#define	FREQ	((MCF_CLK / 2) / 64)
+#define	TA(a)	(MCF_IPSBAR + MCFPIT_BASE1 + (a))
+#define PIT_CYCLES_PER_JIFFY (FREQ / HZ)
+
+static u32 pit_cnt;
+
+/*
+ * Initialize the PIT timer.
+ *
+ * This is also called after resume to bring the PIT into operation again.
+ */
+
+static void init_cf_pit_timer(enum clock_event_mode mode,
+                             struct clock_event_device *evt)
+{
+	switch (mode) {
+	case CLOCK_EVT_MODE_PERIODIC:
+
+		__raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR));
+		__raw_writew(PIT_CYCLES_PER_JIFFY, TA(MCFPIT_PMR));
+		__raw_writew(MCFPIT_PCSR_EN | MCFPIT_PCSR_PIE | \
+				MCFPIT_PCSR_OVW | MCFPIT_PCSR_RLD | \
+				MCFPIT_PCSR_CLK64, TA(MCFPIT_PCSR));
+		break;
+
+	case CLOCK_EVT_MODE_SHUTDOWN:
+	case CLOCK_EVT_MODE_UNUSED:
+
+		__raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR));
+		break;
+
+	case CLOCK_EVT_MODE_ONESHOT:
+
+		__raw_writew(MCFPIT_PCSR_DISABLE, TA(MCFPIT_PCSR));
+		__raw_writew(MCFPIT_PCSR_EN | MCFPIT_PCSR_PIE | \
+				MCFPIT_PCSR_OVW | MCFPIT_PCSR_CLK64, \
+				TA(MCFPIT_PCSR));
+		break;
+
+	case CLOCK_EVT_MODE_RESUME:
+		/* Nothing to do here */
+		break;
+	}
+}
+
+/*
+ * Program the next event in oneshot mode
+ *
+ * Delta is given in PIT ticks
+ */
+static int cf_pit_next_event(unsigned long delta,
+		struct clock_event_device *evt)
+{
+	__raw_writew(delta, TA(MCFPIT_PMR));
+	return 0;
+}
+
+struct clock_event_device cf_pit_clockevent = {
+	.name		= "pit",
+	.features	= CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
+	.set_mode	= init_cf_pit_timer,
+	.set_next_event	= cf_pit_next_event,
+	.shift		= 32,
+	.irq		= MCFINT_VECBASE + MCFINT_PIT1,
+};
+
+
+
+/***************************************************************************/
+
+static irqreturn_t pit_tick(int irq, void *dummy)
+{
+	struct clock_event_device *evt = &cf_pit_clockevent;
+	u16 pcsr;
+
+	/* Reset the ColdFire timer */
+	pcsr = __raw_readw(TA(MCFPIT_PCSR));
+	__raw_writew(pcsr | MCFPIT_PCSR_PIF, TA(MCFPIT_PCSR));
+
+	pit_cnt += PIT_CYCLES_PER_JIFFY;
+	evt->event_handler(evt);
+	return IRQ_HANDLED;
+}
+
+/***************************************************************************/
+
+static struct irqaction pit_irq = {
+	.name	 = "timer",
+	.flags	 = IRQF_DISABLED | IRQF_TIMER,
+	.handler = pit_tick,
+};
+
+/***************************************************************************/
+
+static cycle_t pit_read_clk(struct clocksource *cs)
+{
+	unsigned long flags;
+	u32 cycles;
+	u16 pcntr;
+
+	local_irq_save(flags);
+	pcntr = __raw_readw(TA(MCFPIT_PCNTR));
+	cycles = pit_cnt;
+	local_irq_restore(flags);
+
+	return cycles + PIT_CYCLES_PER_JIFFY - pcntr;
+}
+
+/***************************************************************************/
+
+static struct clocksource pit_clk = {
+	.name	= "pit",
+	.rating	= 100,
+	.read	= pit_read_clk,
+	.mask	= CLOCKSOURCE_MASK(32),
+};
+
+/***************************************************************************/
+
+void hw_timer_init(void)
+{
+	cf_pit_clockevent.cpumask = cpumask_of(smp_processor_id());
+	cf_pit_clockevent.mult = div_sc(FREQ, NSEC_PER_SEC, 32);
+	cf_pit_clockevent.max_delta_ns =
+		clockevent_delta2ns(0xFFFF, &cf_pit_clockevent);
+	cf_pit_clockevent.min_delta_ns =
+		clockevent_delta2ns(0x3f, &cf_pit_clockevent);
+	clockevents_register_device(&cf_pit_clockevent);
+
+	setup_irq(MCFINT_VECBASE + MCFINT_PIT1, &pit_irq);
+
+	clocksource_register_hz(&pit_clk, FREQ);
+}
+
+/***************************************************************************/
diff --git a/arch/m68knommu/platform/coldfire/timers.c b/arch/m68knommu/platform/coldfire/timers.c
new file mode 100644
index 0000000..6b8faec
--- /dev/null
+++ b/arch/m68knommu/platform/coldfire/timers.c
@@ -0,0 +1,172 @@
+/***************************************************************************/
+
+/*
+ *	timers.c -- generic ColdFire hardware timer support.
+ *
+ *	Copyright (C) 1999-2008, Greg Ungerer <gerg@snapgear.com>
+ */
+
+/***************************************************************************/
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/sched.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/profile.h>
+#include <linux/clocksource.h>
+#include <asm/io.h>
+#include <asm/traps.h>
+#include <asm/machdep.h>
+#include <asm/coldfire.h>
+#include <asm/mcftimer.h>
+#include <asm/mcfsim.h>
+
+/***************************************************************************/
+
+/*
+ *	By default use timer1 as the system clock timer.
+ */
+#define	FREQ	(MCF_BUSCLK / 16)
+#define	TA(a)	(MCF_MBAR + MCFTIMER_BASE1 + (a))
+
+/*
+ *	These provide the underlying interrupt vector support.
+ *	Unfortunately it is a little different on each ColdFire.
+ */
+void coldfire_profile_init(void);
+
+#if defined(CONFIG_M532x)
+#define	__raw_readtrr	__raw_readl
+#define	__raw_writetrr	__raw_writel
+#else
+#define	__raw_readtrr	__raw_readw
+#define	__raw_writetrr	__raw_writew
+#endif
+
+static u32 mcftmr_cycles_per_jiffy;
+static u32 mcftmr_cnt;
+
+/***************************************************************************/
+
+static irqreturn_t mcftmr_tick(int irq, void *dummy)
+{
+	/* Reset the ColdFire timer */
+	__raw_writeb(MCFTIMER_TER_CAP | MCFTIMER_TER_REF, TA(MCFTIMER_TER));
+
+	mcftmr_cnt += mcftmr_cycles_per_jiffy;
+	return arch_timer_interrupt(irq, dummy);
+}
+
+/***************************************************************************/
+
+static struct irqaction mcftmr_timer_irq = {
+	.name	 = "timer",
+	.flags	 = IRQF_DISABLED | IRQF_TIMER,
+	.handler = mcftmr_tick,
+};
+
+/***************************************************************************/
+
+static cycle_t mcftmr_read_clk(struct clocksource *cs)
+{
+	unsigned long flags;
+	u32 cycles;
+	u16 tcn;
+
+	local_irq_save(flags);
+	tcn = __raw_readw(TA(MCFTIMER_TCN));
+	cycles = mcftmr_cnt;
+	local_irq_restore(flags);
+
+	return cycles + tcn;
+}
+
+/***************************************************************************/
+
+static struct clocksource mcftmr_clk = {
+	.name	= "tmr",
+	.rating	= 250,
+	.read	= mcftmr_read_clk,
+	.mask	= CLOCKSOURCE_MASK(32),
+	.flags	= CLOCK_SOURCE_IS_CONTINUOUS,
+};
+
+/***************************************************************************/
+
+void hw_timer_init(void)
+{
+	__raw_writew(MCFTIMER_TMR_DISABLE, TA(MCFTIMER_TMR));
+	mcftmr_cycles_per_jiffy = FREQ / HZ;
+	/*
+	 *	The coldfire timer runs from 0 to TRR included, then 0
+	 *	again and so on.  It counts thus actually TRR + 1 steps
+	 *	for 1 tick, not TRR.  So if you want n cycles,
+	 *	initialize TRR with n - 1.
+	 */
+	__raw_writetrr(mcftmr_cycles_per_jiffy - 1, TA(MCFTIMER_TRR));
+	__raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 |
+		MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR));
+
+	clocksource_register_hz(&mcftmr_clk, FREQ);
+
+	setup_irq(MCF_IRQ_TIMER, &mcftmr_timer_irq);
+
+#ifdef CONFIG_HIGHPROFILE
+	coldfire_profile_init();
+#endif
+}
+
+/***************************************************************************/
+#ifdef CONFIG_HIGHPROFILE
+/***************************************************************************/
+
+/*
+ *	By default use timer2 as the profiler clock timer.
+ */
+#define	PA(a)	(MCF_MBAR + MCFTIMER_BASE2 + (a))
+
+/*
+ *	Choose a reasonably fast profile timer. Make it an odd value to
+ *	try and get good coverage of kernel operations.
+ */
+#define	PROFILEHZ	1013
+
+/*
+ *	Use the other timer to provide high accuracy profiling info.
+ */
+irqreturn_t coldfire_profile_tick(int irq, void *dummy)
+{
+	/* Reset ColdFire timer2 */
+	__raw_writeb(MCFTIMER_TER_CAP | MCFTIMER_TER_REF, PA(MCFTIMER_TER));
+	if (current->pid)
+		profile_tick(CPU_PROFILING);
+	return IRQ_HANDLED;
+}
+
+/***************************************************************************/
+
+static struct irqaction coldfire_profile_irq = {
+	.name	 = "profile timer",
+	.flags	 = IRQF_DISABLED | IRQF_TIMER,
+	.handler = coldfire_profile_tick,
+};
+
+void coldfire_profile_init(void)
+{
+	printk(KERN_INFO "PROFILE: lodging TIMER2 @ %dHz as profile timer\n",
+	       PROFILEHZ);
+
+	/* Set up TIMER 2 as high speed profile clock */
+	__raw_writew(MCFTIMER_TMR_DISABLE, PA(MCFTIMER_TMR));
+
+	__raw_writetrr(((MCF_BUSCLK / 16) / PROFILEHZ), PA(MCFTIMER_TRR));
+	__raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 |
+		MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, PA(MCFTIMER_TMR));
+
+	setup_irq(MCF_IRQ_PROFILER, &coldfire_profile_irq);
+}
+
+/***************************************************************************/
+#endif	/* CONFIG_HIGHPROFILE */
+/***************************************************************************/
-- 
1.7.3.2.146.gca209


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 6/8] clocksource: m86knommu: Convert to clocksource_register_hz/khz
       [not found] <4ea6fbe8.43310e0a.592c.5416SMTPIN_ADDED@mx.google.com>
@ 2011-10-25 18:35 ` Geert Uytterhoeven
  2011-10-25 18:39   ` john stultz
  2011-10-25 18:46   ` [PATCH 6/8] clocksource: m86k: " john stultz
  0 siblings, 2 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2011-10-25 18:35 UTC (permalink / raw)
  To: y; +Cc: lkml, John Stultz, Greg Ungerer, Greg Ungerer,
	uClinux development list

On Tue, Oct 25, 2011 at 20:08,  <y@kernel.beaverton.ibm.com> wrote:
> From: John Stultz <johnstul@us.ibm.com>
>
> This converts the m86knommu clocksources to use clocksource_register_hz/khz
>
> This is untested, so any assistance in testing would be appreciated!
>
> CC: Geert Uytterhoeven <geert@linux-m68k.org>
> CC: Greg Ungerer <gerg@uclinux.org>
> Signed-off-by: John Stultz <johnstul@us.ibm.com>
> ---
>  arch/m68k/platform/68328/timers.c         |    4 +-
>  arch/m68k/platform/coldfire/dma_timer.c   |    5 +-
>  arch/m68knommu/platform/coldfire/pit.c    |  167 ++++++++++++++++++++++++++++
>  arch/m68knommu/platform/coldfire/timers.c |  172 +++++++++++++++++++++++++++++
>  4 files changed, 341 insertions(+), 7 deletions(-)
>  create mode 100644 arch/m68knommu/platform/coldfire/pit.c
>  create mode 100644 arch/m68knommu/platform/coldfire/timers.c

arch/m68knommu no longer exists.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 6/8] clocksource: m86knommu: Convert to clocksource_register_hz/khz
  2011-10-25 18:35 ` [PATCH 6/8] clocksource: m86knommu: Convert to clocksource_register_hz/khz Geert Uytterhoeven
@ 2011-10-25 18:39   ` john stultz
  2011-10-25 18:46   ` [PATCH 6/8] clocksource: m86k: " john stultz
  1 sibling, 0 replies; 7+ messages in thread
From: john stultz @ 2011-10-25 18:39 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: lkml, Greg Ungerer, Greg Ungerer, uClinux development list

On Tue, 2011-10-25 at 20:35 +0200, Geert Uytterhoeven wrote:
> On Tue, Oct 25, 2011 at 20:08,  <y@kernel.beaverton.ibm.com> wrote:
> > From: John Stultz <johnstul@us.ibm.com>
> >
> > This converts the m86knommu clocksources to use clocksource_register_hz/khz
> >
> > This is untested, so any assistance in testing would be appreciated!
> >
> > CC: Geert Uytterhoeven <geert@linux-m68k.org>
> > CC: Greg Ungerer <gerg@uclinux.org>
> > Signed-off-by: John Stultz <johnstul@us.ibm.com>
> > ---
> >  arch/m68k/platform/68328/timers.c         |    4 +-
> >  arch/m68k/platform/coldfire/dma_timer.c   |    5 +-
> >  arch/m68knommu/platform/coldfire/pit.c    |  167 ++++++++++++++++++++++++++++
> >  arch/m68knommu/platform/coldfire/timers.c |  172 +++++++++++++++++++++++++++++
> >  4 files changed, 341 insertions(+), 7 deletions(-)
> >  create mode 100644 arch/m68knommu/platform/coldfire/pit.c
> >  create mode 100644 arch/m68knommu/platform/coldfire/timers.c
> 
> arch/m68knommu no longer exists.

Ah. My apologies. These patches have been around forever. Thanks for the
heads up.

thanks
-john


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 6/8] clocksource: m86k: Convert to clocksource_register_hz/khz
  2011-10-25 18:35 ` [PATCH 6/8] clocksource: m86knommu: Convert to clocksource_register_hz/khz Geert Uytterhoeven
  2011-10-25 18:39   ` john stultz
@ 2011-10-25 18:46   ` john stultz
  2011-10-26  5:10     ` Greg Ungerer
  1 sibling, 1 reply; 7+ messages in thread
From: john stultz @ 2011-10-25 18:46 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: lkml, Greg Ungerer, Greg Ungerer, uClinux development list

Updated to merge the valid bits of the two m68k patches.

This converts the m86k clocksources to use clocksource_register_hz/khz

This is untested, so any assistance in testing would be appreciated!

CC: Geert Uytterhoeven <geert@linux-m68k.org>
CC: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: John Stultz <johnstul@us.ibm.com>
---
 arch/m68k/platform/68328/timers.c       |    4 +---
 arch/m68k/platform/coldfire/dma_timer.c |    5 +----
 arch/m68k/platform/coldfire/pit.c       |    4 +---
 arch/m68k/platform/coldfire/sltimers.c  |    4 +---
 arch/m68k/platform/coldfire/timers.c    |    4 +---
 5 files changed, 5 insertions(+), 16 deletions(-)

diff --git a/arch/m68k/platform/68328/timers.c b/arch/m68k/platform/68328/timers.c
index 309f725..f267886 100644
--- a/arch/m68k/platform/68328/timers.c
+++ b/arch/m68k/platform/68328/timers.c
@@ -93,7 +93,6 @@ static struct clocksource m68328_clk = {
 	.name	= "timer",
 	.rating	= 250,
 	.read	= m68328_read_clk,
-	.shift	= 20,
 	.mask	= CLOCKSOURCE_MASK(32),
 	.flags	= CLOCK_SOURCE_IS_CONTINUOUS,
 };
@@ -115,8 +114,7 @@ void hw_timer_init(void)
 
 	/* Enable timer 1 */
 	TCTL |= TCTL_TEN;
-	m68328_clk.mult = clocksource_hz2mult(TICKS_PER_JIFFY*HZ, m68328_clk.shift);
-	clocksource_register(&m68328_clk);
+	clocksource_register_hz(&m68328_clk, TICKS_PER_JIFFY*HZ);
 }
 
 /***************************************************************************/
diff --git a/arch/m68k/platform/coldfire/dma_timer.c b/arch/m68k/platform/coldfire/dma_timer.c
index a5f5628..235ad57 100644
--- a/arch/m68k/platform/coldfire/dma_timer.c
+++ b/arch/m68k/platform/coldfire/dma_timer.c
@@ -44,7 +44,6 @@ static struct clocksource clocksource_cf_dt = {
 	.rating		= 200,
 	.read		= cf_dt_get_cycles,
 	.mask		= CLOCKSOURCE_MASK(32),
-	.shift		= 20,
 	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
@@ -60,9 +59,7 @@ static int __init  init_cf_dt_clocksource(void)
 	__raw_writeb(0x00, DTER0);
 	__raw_writel(0x00000000, DTRR0);
 	__raw_writew(DMA_DTMR_CLK_DIV_16 | DMA_DTMR_ENABLE, DTMR0);
-	clocksource_cf_dt.mult = clocksource_hz2mult(DMA_FREQ,
-						     clocksource_cf_dt.shift);
-	return clocksource_register(&clocksource_cf_dt);
+	return clocksource_register_hz(&clocksource_cf_dt, DMA_FREQ);
 }
 
 arch_initcall(init_cf_dt_clocksource);
diff --git a/arch/m68k/platform/coldfire/pit.c b/arch/m68k/platform/coldfire/pit.c
index c2b9809..02663d2 100644
--- a/arch/m68k/platform/coldfire/pit.c
+++ b/arch/m68k/platform/coldfire/pit.c
@@ -144,7 +144,6 @@ static struct clocksource pit_clk = {
 	.name	= "pit",
 	.rating	= 100,
 	.read	= pit_read_clk,
-	.shift	= 20,
 	.mask	= CLOCKSOURCE_MASK(32),
 };
 
@@ -162,8 +161,7 @@ void hw_timer_init(void)
 
 	setup_irq(MCFINT_VECBASE + MCFINT_PIT1, &pit_irq);
 
-	pit_clk.mult = clocksource_hz2mult(FREQ, pit_clk.shift);
-	clocksource_register(&pit_clk);
+	clocksource_register_hz(&pit_clk, FREQ);
 }
 
 /***************************************************************************/
diff --git a/arch/m68k/platform/coldfire/sltimers.c b/arch/m68k/platform/coldfire/sltimers.c
index 6a85daf..b7f822b 100644
--- a/arch/m68k/platform/coldfire/sltimers.c
+++ b/arch/m68k/platform/coldfire/sltimers.c
@@ -114,7 +114,6 @@ static struct clocksource mcfslt_clk = {
 	.name	= "slt",
 	.rating	= 250,
 	.read	= mcfslt_read_clk,
-	.shift	= 20,
 	.mask	= CLOCKSOURCE_MASK(32),
 	.flags	= CLOCK_SOURCE_IS_CONTINUOUS,
 };
@@ -136,8 +135,7 @@ void hw_timer_init(void)
 
 	setup_irq(MCF_IRQ_TIMER, &mcfslt_timer_irq);
 
-	mcfslt_clk.mult = clocksource_hz2mult(MCF_BUSCLK, mcfslt_clk.shift);
-	clocksource_register(&mcfslt_clk);
+	clocksource_register_hz(&mcfslt_clk, MCF_BUSCLK);
 
 #ifdef CONFIG_HIGHPROFILE
 	mcfslt_profile_init();
diff --git a/arch/m68k/platform/coldfire/timers.c b/arch/m68k/platform/coldfire/timers.c
index 60242f6..0d90da3 100644
--- a/arch/m68k/platform/coldfire/timers.c
+++ b/arch/m68k/platform/coldfire/timers.c
@@ -88,7 +88,6 @@ static struct clocksource mcftmr_clk = {
 	.name	= "tmr",
 	.rating	= 250,
 	.read	= mcftmr_read_clk,
-	.shift	= 20,
 	.mask	= CLOCKSOURCE_MASK(32),
 	.flags	= CLOCK_SOURCE_IS_CONTINUOUS,
 };
@@ -109,8 +108,7 @@ void hw_timer_init(void)
 	__raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 |
 		MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR));
 
-	mcftmr_clk.mult = clocksource_hz2mult(FREQ, mcftmr_clk.shift);
-	clocksource_register(&mcftmr_clk);
+	clocksource_register_hz(&mcftmr_clk, FREQ);
 
 	setup_irq(MCF_IRQ_TIMER, &mcftmr_timer_irq);
 
-- 
1.7.3.2.146.gca209




^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 6/8] clocksource: m86k: Convert to clocksource_register_hz/khz
  2011-10-25 18:46   ` [PATCH 6/8] clocksource: m86k: " john stultz
@ 2011-10-26  5:10     ` Greg Ungerer
  2011-10-26 17:57       ` john stultz
  0 siblings, 1 reply; 7+ messages in thread
From: Greg Ungerer @ 2011-10-26  5:10 UTC (permalink / raw)
  To: john stultz
  Cc: Geert Uytterhoeven, lkml, Greg Ungerer, uClinux development list

Hi John,

On 26/10/11 04:46, john stultz wrote:
> Updated to merge the valid bits of the two m68k patches.
>
> This converts the m86k clocksources to use clocksource_register_hz/khz
>
> This is untested, so any assistance in testing would be appreciated!

This looks good. I test compiled across all targets these files affect.
And run tested on ColdFire/5208 (which uses pit.c).


> CC: Geert Uytterhoeven<geert@linux-m68k.org>
> CC: Greg Ungerer<gerg@uclinux.org>
> Signed-off-by: John Stultz<johnstul@us.ibm.com>

Acked-by: Greg Ungerer <gerg@uclinux.org>

Do you want me to push these via the m68knommu git tree?

Regards
Greg


>   arch/m68k/platform/68328/timers.c       |    4 +---
>   arch/m68k/platform/coldfire/dma_timer.c |    5 +----
>   arch/m68k/platform/coldfire/pit.c       |    4 +---
>   arch/m68k/platform/coldfire/sltimers.c  |    4 +---
>   arch/m68k/platform/coldfire/timers.c    |    4 +---
>   5 files changed, 5 insertions(+), 16 deletions(-)
>
> diff --git a/arch/m68k/platform/68328/timers.c b/arch/m68k/platform/68328/timers.c
> index 309f725..f267886 100644
> --- a/arch/m68k/platform/68328/timers.c
> +++ b/arch/m68k/platform/68328/timers.c
> @@ -93,7 +93,6 @@ static struct clocksource m68328_clk = {
>   	.name	= "timer",
>   	.rating	= 250,
>   	.read	= m68328_read_clk,
> -	.shift	= 20,
>   	.mask	= CLOCKSOURCE_MASK(32),
>   	.flags	= CLOCK_SOURCE_IS_CONTINUOUS,
>   };
> @@ -115,8 +114,7 @@ void hw_timer_init(void)
>
>   	/* Enable timer 1 */
>   	TCTL |= TCTL_TEN;
> -	m68328_clk.mult = clocksource_hz2mult(TICKS_PER_JIFFY*HZ, m68328_clk.shift);
> -	clocksource_register(&m68328_clk);
> +	clocksource_register_hz(&m68328_clk, TICKS_PER_JIFFY*HZ);
>   }
>
>   /***************************************************************************/
> diff --git a/arch/m68k/platform/coldfire/dma_timer.c b/arch/m68k/platform/coldfire/dma_timer.c
> index a5f5628..235ad57 100644
> --- a/arch/m68k/platform/coldfire/dma_timer.c
> +++ b/arch/m68k/platform/coldfire/dma_timer.c
> @@ -44,7 +44,6 @@ static struct clocksource clocksource_cf_dt = {
>   	.rating		= 200,
>   	.read		= cf_dt_get_cycles,
>   	.mask		= CLOCKSOURCE_MASK(32),
> -	.shift		= 20,
>   	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
>   };
>
> @@ -60,9 +59,7 @@ static int __init  init_cf_dt_clocksource(void)
>   	__raw_writeb(0x00, DTER0);
>   	__raw_writel(0x00000000, DTRR0);
>   	__raw_writew(DMA_DTMR_CLK_DIV_16 | DMA_DTMR_ENABLE, DTMR0);
> -	clocksource_cf_dt.mult = clocksource_hz2mult(DMA_FREQ,
> -						     clocksource_cf_dt.shift);
> -	return clocksource_register(&clocksource_cf_dt);
> +	return clocksource_register_hz(&clocksource_cf_dt, DMA_FREQ);
>   }
>
>   arch_initcall(init_cf_dt_clocksource);
> diff --git a/arch/m68k/platform/coldfire/pit.c b/arch/m68k/platform/coldfire/pit.c
> index c2b9809..02663d2 100644
> --- a/arch/m68k/platform/coldfire/pit.c
> +++ b/arch/m68k/platform/coldfire/pit.c
> @@ -144,7 +144,6 @@ static struct clocksource pit_clk = {
>   	.name	= "pit",
>   	.rating	= 100,
>   	.read	= pit_read_clk,
> -	.shift	= 20,
>   	.mask	= CLOCKSOURCE_MASK(32),
>   };
>
> @@ -162,8 +161,7 @@ void hw_timer_init(void)
>
>   	setup_irq(MCFINT_VECBASE + MCFINT_PIT1,&pit_irq);
>
> -	pit_clk.mult = clocksource_hz2mult(FREQ, pit_clk.shift);
> -	clocksource_register(&pit_clk);
> +	clocksource_register_hz(&pit_clk, FREQ);
>   }
>
>   /***************************************************************************/
> diff --git a/arch/m68k/platform/coldfire/sltimers.c b/arch/m68k/platform/coldfire/sltimers.c
> index 6a85daf..b7f822b 100644
> --- a/arch/m68k/platform/coldfire/sltimers.c
> +++ b/arch/m68k/platform/coldfire/sltimers.c
> @@ -114,7 +114,6 @@ static struct clocksource mcfslt_clk = {
>   	.name	= "slt",
>   	.rating	= 250,
>   	.read	= mcfslt_read_clk,
> -	.shift	= 20,
>   	.mask	= CLOCKSOURCE_MASK(32),
>   	.flags	= CLOCK_SOURCE_IS_CONTINUOUS,
>   };
> @@ -136,8 +135,7 @@ void hw_timer_init(void)
>
>   	setup_irq(MCF_IRQ_TIMER,&mcfslt_timer_irq);
>
> -	mcfslt_clk.mult = clocksource_hz2mult(MCF_BUSCLK, mcfslt_clk.shift);
> -	clocksource_register(&mcfslt_clk);
> +	clocksource_register_hz(&mcfslt_clk, MCF_BUSCLK);
>
>   #ifdef CONFIG_HIGHPROFILE
>   	mcfslt_profile_init();
> diff --git a/arch/m68k/platform/coldfire/timers.c b/arch/m68k/platform/coldfire/timers.c
> index 60242f6..0d90da3 100644
> --- a/arch/m68k/platform/coldfire/timers.c
> +++ b/arch/m68k/platform/coldfire/timers.c
> @@ -88,7 +88,6 @@ static struct clocksource mcftmr_clk = {
>   	.name	= "tmr",
>   	.rating	= 250,
>   	.read	= mcftmr_read_clk,
> -	.shift	= 20,
>   	.mask	= CLOCKSOURCE_MASK(32),
>   	.flags	= CLOCK_SOURCE_IS_CONTINUOUS,
>   };
> @@ -109,8 +108,7 @@ void hw_timer_init(void)
>   	__raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 |
>   		MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR));
>
> -	mcftmr_clk.mult = clocksource_hz2mult(FREQ, mcftmr_clk.shift);
> -	clocksource_register(&mcftmr_clk);
> +	clocksource_register_hz(&mcftmr_clk, FREQ);
>
>   	setup_irq(MCF_IRQ_TIMER,&mcftmr_timer_irq);
>


-- 
------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@snapgear.com
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 6/8] clocksource: m86k: Convert to clocksource_register_hz/khz
  2011-10-26  5:10     ` Greg Ungerer
@ 2011-10-26 17:57       ` john stultz
  2011-10-27  4:15         ` Greg Ungerer
  0 siblings, 1 reply; 7+ messages in thread
From: john stultz @ 2011-10-26 17:57 UTC (permalink / raw)
  To: Greg Ungerer
  Cc: Geert Uytterhoeven, lkml, Greg Ungerer, uClinux development list

On Wed, 2011-10-26 at 15:10 +1000, Greg Ungerer wrote:
> Hi John,
> 
> On 26/10/11 04:46, john stultz wrote:
> > Updated to merge the valid bits of the two m68k patches.
> >
> > This converts the m86k clocksources to use clocksource_register_hz/khz
> >
> > This is untested, so any assistance in testing would be appreciated!
> 
> This looks good. I test compiled across all targets these files affect.
> And run tested on ColdFire/5208 (which uses pit.c).

Thanks for testing! I really appreciate it!

> 
> > CC: Geert Uytterhoeven<geert@linux-m68k.org>
> > CC: Greg Ungerer<gerg@uclinux.org>
> > Signed-off-by: John Stultz<johnstul@us.ibm.com>
> 
> Acked-by: Greg Ungerer <gerg@uclinux.org>
> 
> Do you want me to push these via the m68knommu git tree?

I'd prefer it go through either one of the m68k trees.

thanks
-john


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 6/8] clocksource: m86k: Convert to clocksource_register_hz/khz
  2011-10-26 17:57       ` john stultz
@ 2011-10-27  4:15         ` Greg Ungerer
  0 siblings, 0 replies; 7+ messages in thread
From: Greg Ungerer @ 2011-10-27  4:15 UTC (permalink / raw)
  To: john stultz
  Cc: Geert Uytterhoeven, lkml, Greg Ungerer, uClinux development list

Hi John,

On 27/10/11 03:57, john stultz wrote:
> On Wed, 2011-10-26 at 15:10 +1000, Greg Ungerer wrote:
>> Hi John,
>>
>> On 26/10/11 04:46, john stultz wrote:
>>> Updated to merge the valid bits of the two m68k patches.
>>>
>>> This converts the m86k clocksources to use clocksource_register_hz/khz
>>>
>>> This is untested, so any assistance in testing would be appreciated!
>>
>> This looks good. I test compiled across all targets these files affect.
>> And run tested on ColdFire/5208 (which uses pit.c).
>
> Thanks for testing! I really appreciate it!
>
>>
>>> CC: Geert Uytterhoeven<geert@linux-m68k.org>
>>> CC: Greg Ungerer<gerg@uclinux.org>
>>> Signed-off-by: John Stultz<johnstul@us.ibm.com>
>>
>> Acked-by: Greg Ungerer<gerg@uclinux.org>
>>
>> Do you want me to push these via the m68knommu git tree?
>
> I'd prefer it go through either one of the m68k trees.

Ok, I have put it int the m68knommu git tree (since all the changes
apply to non-mmu versions of the m68k).

Thanks
Greg


------------------------------------------------------------------------
Greg Ungerer  --  Principal Engineer        EMAIL:     gerg@snapgear.com
SnapGear Group, McAfee                      PHONE:       +61 7 3435 2888
8 Gardner Close                             FAX:         +61 7 3217 5323
Milton, QLD, 4064, Australia                WEB: http://www.SnapGear.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-10-27  4:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <4ea6fbe8.43310e0a.592c.5416SMTPIN_ADDED@mx.google.com>
2011-10-25 18:35 ` [PATCH 6/8] clocksource: m86knommu: Convert to clocksource_register_hz/khz Geert Uytterhoeven
2011-10-25 18:39   ` john stultz
2011-10-25 18:46   ` [PATCH 6/8] clocksource: m86k: " john stultz
2011-10-26  5:10     ` Greg Ungerer
2011-10-26 17:57       ` john stultz
2011-10-27  4:15         ` Greg Ungerer
2011-10-25 18:08 [PATCH 1/8] clocksource: Convert tcb_clksrc to use clocksource_register_hz/khz y
2011-10-25 18:08 ` [PATCH 6/8] clocksource: m86knommu: Convert to clocksource_register_hz/khz y

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox