[PATCH] Setup scheduler clock for MXS

From: Stanislav Meduna
Date: Fri Nov 02 2012 - 10:00:44 EST


---
arch/arm/mach-mxs/timer.c | 19 +++++++++++++++++++
1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mxs/timer.c b/arch/arm/mach-mxs/timer.c
index 564a632..0ab86a2 100644
--- a/arch/arm/mach-mxs/timer.c
+++ b/arch/arm/mach-mxs/timer.c
@@ -26,6 +26,7 @@
#include <linux/clk.h>

#include <asm/mach/time.h>
+#include <asm/sched_clock.h>
#include <mach/mxs.h>
#include <mach/common.h>

@@ -243,6 +244,16 @@ static int __init mxs_clocksource_init(struct clk *timer_clk)
return 0;
}

+static u32 notrace mxs_read_sched_clock_v1(void)
+{
+ return timrotv1_get_cycles(&clocksource_mxs);
+}
+
+static u32 notrace mxs_read_sched_clock_v2(void)
+{
+ return ~readl_relaxed(mxs_timrot_base + HW_TIMROT_RUNNING_COUNTn(1));
+}
+
void __init mxs_timer_init(struct clk *timer_clk, int irq)
{
clk_prepare_enable(timer_clk);
@@ -285,6 +296,14 @@ void __init mxs_timer_init(struct clk *timer_clk, int irq)
mxs_clocksource_init(timer_clk);
mxs_clockevent_init(timer_clk);

+ /* Register scheduler clocksource */
+ if (timrot_is_v1())
+ setup_sched_clock(mxs_read_sched_clock_v1,
+ 16, clk_get_rate(timer_clk));
+ else
+ setup_sched_clock(mxs_read_sched_clock_v2,
+ 32, clk_get_rate(timer_clk));
+
/* Make irqs happen */
setup_irq(irq, &mxs_timer_irq);
}
--
1.7.0.4


--------------060407010504090007010905--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/