MIPS: sgi-ip27: Implement read_sched_clock
[firefly-linux-kernel-4.4.55.git] / arch / mips / sgi-ip27 / ip27-timer.c
index 1d97eaba0c5f0a86f1022913727fc05cf85bb712..a6d10f607f348ce1815813d9f3c488b7620c0805 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
+#include <linux/sched_clock.h>
 #include <linux/interrupt.h>
 #include <linux/kernel_stat.h>
 #include <linux/param.h>
@@ -159,11 +160,18 @@ struct clocksource hub_rt_clocksource = {
        .flags  = CLOCK_SOURCE_IS_CONTINUOUS,
 };
 
+static u64 notrace hub_rt_read_sched_clock(void)
+{
+       return REMOTE_HUB_L(cputonasid(0), PI_RT_COUNT);
+}
+
 static void __init hub_rt_clocksource_init(void)
 {
        struct clocksource *cs = &hub_rt_clocksource;
 
        clocksource_register_hz(cs, CYCLES_PER_SEC);
+
+       sched_clock_register(hub_rt_read_sched_clock, 52, CYCLES_PER_SEC);
 }
 
 void __init plat_time_init(void)