diff mbox

clocksource/arm_smp_twd: handle frequency changes

Message ID 4E048DCA.8070700@arm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Marc Zyngier June 24, 2011, 1:14 p.m. UTC
On 20/06/11 09:48, Linus Walleij wrote:
> From: Colin Cross <ccross@android.com>
> 
> First add a clock called "smp_twd" that is used to determine the
> twd frequency, which can also be used at init time to avoid
> calibrating the twd frequency since we already know it.
> 
> Then the localtimer's clock changes with the cpu clock, since the
> block has only one clock input. After a cpufreq transition, update
> the clockevent's frequency and reprogram the next clock event
> so we stay tight on the scheduled timeline.
> 
> Clock changes are based on Rob Herring's work.
> 
> This patch depends on the whole localtimer rewrite and move
> shebang from Marc Zyngier, and that in turn depends on other
> stuff.
> 
> Signed-off-by: Colin Cross <ccross@android.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Russell King <linux@arm.linux.org.uk>
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Acked-by: Rob Herring <rob.herring@calxeda.com>
> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> [ifdef:ed CPUfreq stuff - rebased to Marc Z patches]
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
> ---
> Marc, if you're pursuing this series, consider merging this on top,
> it is needed for the new ARM A9 small-form factor reference platform
> whatever it is called.

Linus,

I've applied the attached patch on top of this one, just removing a now
superfluous variable. No functional changes.

Cheers,

	M.
diff mbox

Patch

From 602dc634a0ef516b93d4b5f605e22c58a56c1b9e Mon Sep 17 00:00:00 2001
From: Marc Zyngier <marc.zyngier@arm.com>
Date: Fri, 24 Jun 2011 14:01:41 +0100
Subject: [PATCH] ARM: clocksource/arm_smp_twd: remove superfluous per_cpu variable

The twd_ce variable was used to track the per-cpu clock event devices
in the previous incarnation of the driver. As these clock event
devices are now directly accessible inside the driver, just get rid
of it and access the real thing directly.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
---
 drivers/clocksource/arm_smp_twd.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/drivers/clocksource/arm_smp_twd.c b/drivers/clocksource/arm_smp_twd.c
index 4d58975..65f4669 100644
--- a/drivers/clocksource/arm_smp_twd.c
+++ b/drivers/clocksource/arm_smp_twd.c
@@ -40,7 +40,6 @@  static void __iomem *twd_base;
 static int twd_ppi;
 
 static struct clk *twd_clk;
-static DEFINE_PER_CPU(struct clock_event_device *, twd_ce);
 static unsigned long twd_timer_rate;
 static DEFINE_PER_CPU(bool, irq_reqd);
 static struct clock_event_device __percpu *twd_evt;
@@ -106,7 +105,7 @@  static void twd_update_frequency(void *data)
 {
 	twd_timer_rate = clk_get_rate(twd_clk);
 
-	clockevents_update_freq(__get_cpu_var(twd_ce), twd_timer_rate);
+	clockevents_update_freq(__get_cpu_var(twd_evt), twd_timer_rate);
 }
 
 static int twd_cpufreq_transition(struct notifier_block *nb,
@@ -238,7 +237,6 @@  static void __cpuinit twd_setup(void *data)
 		return;
 	}
 
-	__get_cpu_var(twd_ce) = clk;
 	clockevents_config_and_register(clk, twd_timer_rate,
 					0xf, 0xffffffff);
 }
-- 
1.7.0.4