clocksource: sti: Provide 'use timer as sched clock' capability
authorLee Jones <lee.jones@linaro.org>
Tue, 12 May 2015 12:58:11 +0000 (13:58 +0100)
committerLee Jones <lee.jones@linaro.org>
Thu, 23 Jul 2015 16:07:26 +0000 (17:07 +0100)
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/clocksource/clksrc_st_lpc.c

index f38cf33281a206775c9421d1c959b50a80520ae9..65ec4674416d0e70567164059a71c01b0fa7813e 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/clocksource.h>
 #include <linux/init.h>
 #include <linux/of_address.h>
+#include <linux/sched_clock.h>
 #include <linux/slab.h>
 
 #include <dt-bindings/mfd/st-lpc.h>
@@ -38,6 +39,11 @@ static void __init st_clksrc_reset(void)
        writel_relaxed(1, ddata.base + LPC_LPT_START_OFF);
 }
 
+static u64 notrace st_clksrc_sched_clock_read(void)
+{
+       return (u64)readl_relaxed(ddata.base + LPC_LPT_LSB_OFF);
+}
+
 static int __init st_clksrc_init(void)
 {
        unsigned long rate;
@@ -47,6 +53,8 @@ static int __init st_clksrc_init(void)
 
        rate = clk_get_rate(ddata.clk);
 
+       sched_clock_register(st_clksrc_sched_clock_read, 32, rate);
+
        ret = clocksource_mmio_init(ddata.base + LPC_LPT_LSB_OFF,
                                    "clksrc-st-lpc", rate, 300, 32,
                                    clocksource_mmio_readl_up);