aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clocksource
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2014-05-22 01:32:57 -0400
committerOlof Johansson <olof@lixom.net>2014-05-22 01:32:57 -0400
commitefca0a3e85045da839320d7c5121f82d55be8b79 (patch)
treeac3a55fc94cea3c3bc518f6ea4c819ab9c742104 /drivers/clocksource
parented99885ccb89471f52d34b74b15fc9059bf07504 (diff)
parent93bfb769752babdc4d3665a1fb166bb4e3ff927b (diff)
Merge tag 'samsung-drivers' of http://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/drivers
Merge "Samsung driver update for 3.16" from Kukjin Kim: exynos_mct update for v3.16 - register sched_clock callback to use clocksource mct-frc * tag 'samsung-drivers' of http://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: clocksource: exynos_mct: register sched_clock callback Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'drivers/clocksource')
-rw-r--r--drivers/clocksource/exynos_mct.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/clocksource/exynos_mct.c b/drivers/clocksource/exynos_mct.c
index acf5a329d538..8d6420013a04 100644
--- a/drivers/clocksource/exynos_mct.c
+++ b/drivers/clocksource/exynos_mct.c
@@ -24,6 +24,7 @@
24#include <linux/of_irq.h> 24#include <linux/of_irq.h>
25#include <linux/of_address.h> 25#include <linux/of_address.h>
26#include <linux/clocksource.h> 26#include <linux/clocksource.h>
27#include <linux/sched_clock.h>
27 28
28#define EXYNOS4_MCTREG(x) (x) 29#define EXYNOS4_MCTREG(x) (x)
29#define EXYNOS4_MCT_G_CNT_L EXYNOS4_MCTREG(0x100) 30#define EXYNOS4_MCT_G_CNT_L EXYNOS4_MCTREG(0x100)
@@ -192,12 +193,19 @@ struct clocksource mct_frc = {
192 .resume = exynos4_frc_resume, 193 .resume = exynos4_frc_resume,
193}; 194};
194 195
196static u64 notrace exynos4_read_sched_clock(void)
197{
198 return exynos4_frc_read(&mct_frc);
199}
200
195static void __init exynos4_clocksource_init(void) 201static void __init exynos4_clocksource_init(void)
196{ 202{
197 exynos4_mct_frc_start(0, 0); 203 exynos4_mct_frc_start(0, 0);
198 204
199 if (clocksource_register_hz(&mct_frc, clk_rate)) 205 if (clocksource_register_hz(&mct_frc, clk_rate))
200 panic("%s: can't register clocksource\n", mct_frc.name); 206 panic("%s: can't register clocksource\n", mct_frc.name);
207
208 sched_clock_register(exynos4_read_sched_clock, 64, clk_rate);
201} 209}
202 210
203static void exynos4_mct_comp0_stop(void) 211static void exynos4_mct_comp0_stop(void)