Skip to contentSkip to conversation

ARM: msm: Implement read_current_timer for msm timers

PATCH New Stephen Boyd 3 participants 4 messages Aug 31, 2012 – Sep 5, 2012

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 ARM: msm: Implement read_current_timer for msm timers

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.

---

Changes since v1:
* Updated for new function signature

 arch/arm/mach-msm/timer.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
arch/arm/mach-msm/timer.c +12 -0
index ce6b008..6e3b91b 100644
@@ -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
Signature · 2 lines
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
#1 lore raw

PATCH v2 1/1 ARM: msm: Implement read_current_timer for msm timers

Quoted 4 lines · Stephen Boyd

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

Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
#2 lore raw

PATCH v2 1/1 ARM: msm: Implement read_current_timer for msm timers

In reply to Stephen Boyd
Quoted 6 lines · Stephen Boyd

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.

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

David

Signature · 2 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
hosted by The Linux Foundation
#3 lore raw

PATCH v2 1/1 ARM: msm: Implement read_current_timer for msm timers

Quoted 11 lines · David Brown
Quoted 6 lines · Stephen Boyd

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.

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