diff mbox

[PATCHv2] ARM: msm: Implement read_current_timer for msm timers

Message ID 1346371222-7450-1-git-send-email-sboyd@codeaurora.org (mailing list archive)
State New, archived
Headers show

Commit Message

Stephen Boyd Aug. 31, 2012, midnight UTC
Setup the same timer used as the clocksource to be used as the
read_current_timer implementation. This allows us to support a
stable udelay implementation on MSMs where it's possible for the
CPUs to scale speeds independently of one another.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---

Changes since v1:
 * Updated for new function signature

 arch/arm/mach-msm/timer.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

David Brown Sept. 4, 2012, 10:14 p.m. UTC | #1
On Thu, Aug 30, 2012 at 05:00:22PM -0700, Stephen Boyd wrote:
> Setup the same timer used as the clocksource to be used as the
> read_current_timer implementation. This allows us to support a
> stable udelay implementation on MSMs where it's possible for the
> CPUs to scale speeds independently of one another.

Did you intend to send this "To" the MSM maintainers?  As it stands,
it's a little ambiguous who is supposed to pick up this patch, since I
don't think Will maintains a tree with pull requests.

David
David Brown Sept. 4, 2012, 11:21 p.m. UTC | #2
On Thu, Aug 30, 2012 at 05:00:22PM -0700, Stephen Boyd wrote:
> Setup the same timer used as the clocksource to be used as the
> read_current_timer implementation. This allows us to support a
> stable udelay implementation on MSMs where it's possible for the
> CPUs to scale speeds independently of one another.
> 
> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>

Acked-by: David Brown <davidb@codeaurora.org>

Will, let me know if you'd prefer that I pull this.

David
Will Deacon Sept. 5, 2012, 8:42 a.m. UTC | #3
On Wed, Sep 05, 2012 at 12:21:11AM +0100, David Brown wrote:
> On Thu, Aug 30, 2012 at 05:00:22PM -0700, Stephen Boyd wrote:
> > Setup the same timer used as the clocksource to be used as the
> > read_current_timer implementation. This allows us to support a
> > stable udelay implementation on MSMs where it's possible for the
> > CPUs to scale speeds independently of one another.
> > 
> > Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
> 
> Acked-by: David Brown <davidb@codeaurora.org>
> 
> Will, let me know if you'd prefer that I pull this.

It probably makes sense for you to take Stephen's patch, however I'll merge
my series through Russell separately. If you want it for 3.7, I can ask Arnd
to pull it into arm-soc as well?

Will
diff mbox

Patch

diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c
index ce6b008..6e3b91b 100644
--- a/arch/arm/mach-msm/timer.c
+++ b/arch/arm/mach-msm/timer.c
@@ -28,6 +28,7 @@ 
 #include <asm/hardware/gic.h>
 #include <asm/localtimer.h>
 #include <asm/sched_clock.h>
+#include <asm/delay.h>
 
 #include "common.h"
 
@@ -173,6 +174,15 @@  static notrace u32 msm_sched_clock_read(void)
 	return msm_clocksource.read(&msm_clocksource);
 }
 
+static unsigned long msm_read_current_timer(void)
+{
+	return msm_clocksource.read(&msm_clocksource);
+}
+
+static struct delay_timer msm_delay_timer = {
+	.read_current_timer = msm_read_current_timer,
+};
+
 static void __init msm_timer_init(u32 dgt_hz, int sched_bits, int irq,
 				  bool percpu)
 {
@@ -217,6 +227,8 @@  err:
 	if (res)
 		pr_err("clocksource_register failed\n");
 	setup_sched_clock(msm_sched_clock_read, sched_bits, dgt_hz);
+	msm_delay_timer.freq = dgt_hz;
+	register_current_timer_delay(&msm_delay_timer);
 }
 
 #ifdef CONFIG_OF