diff options
Diffstat (limited to 'arch/arm/plat-s5p/s5p-time.c')
-rw-r--r-- | arch/arm/plat-s5p/s5p-time.c | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/arch/arm/plat-s5p/s5p-time.c b/arch/arm/plat-s5p/s5p-time.c index c833e7b57599..17c0a2c58dfd 100644 --- a/arch/arm/plat-s5p/s5p-time.c +++ b/arch/arm/plat-s5p/s5p-time.c | |||
@@ -10,7 +10,6 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include <linux/sched.h> | ||
14 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
15 | #include <linux/irq.h> | 14 | #include <linux/irq.h> |
16 | #include <linux/err.h> | 15 | #include <linux/err.h> |
@@ -321,26 +320,14 @@ static void __iomem *s5p_timer_reg(void) | |||
321 | * this wraps around for now, since it is just a relative time | 320 | * this wraps around for now, since it is just a relative time |
322 | * stamp. (Inspired by U300 implementation.) | 321 | * stamp. (Inspired by U300 implementation.) |
323 | */ | 322 | */ |
324 | static DEFINE_CLOCK_DATA(cd); | 323 | static u32 notrace s5p_read_sched_clock(void) |
325 | |||
326 | unsigned long long notrace sched_clock(void) | ||
327 | { | 324 | { |
328 | void __iomem *reg = s5p_timer_reg(); | 325 | void __iomem *reg = s5p_timer_reg(); |
329 | 326 | ||
330 | if (!reg) | 327 | if (!reg) |
331 | return 0; | 328 | return 0; |
332 | 329 | ||
333 | return cyc_to_sched_clock(&cd, ~__raw_readl(reg), (u32)~0); | 330 | return ~__raw_readl(reg); |
334 | } | ||
335 | |||
336 | static void notrace s5p_update_sched_clock(void) | ||
337 | { | ||
338 | void __iomem *reg = s5p_timer_reg(); | ||
339 | |||
340 | if (!reg) | ||
341 | return; | ||
342 | |||
343 | update_sched_clock(&cd, ~__raw_readl(reg), (u32)~0); | ||
344 | } | 331 | } |
345 | 332 | ||
346 | static void __init s5p_clocksource_init(void) | 333 | static void __init s5p_clocksource_init(void) |
@@ -358,7 +345,7 @@ static void __init s5p_clocksource_init(void) | |||
358 | s5p_time_setup(timer_source.source_id, TCNT_MAX); | 345 | s5p_time_setup(timer_source.source_id, TCNT_MAX); |
359 | s5p_time_start(timer_source.source_id, PERIODIC); | 346 | s5p_time_start(timer_source.source_id, PERIODIC); |
360 | 347 | ||
361 | init_sched_clock(&cd, s5p_update_sched_clock, 32, clock_rate); | 348 | setup_sched_clock(s5p_read_sched_clock, 32, clock_rate); |
362 | 349 | ||
363 | if (clocksource_mmio_init(s5p_timer_reg(), "s5p_clocksource_timer", | 350 | if (clocksource_mmio_init(s5p_timer_reg(), "s5p_clocksource_timer", |
364 | clock_rate, 250, 32, clocksource_mmio_readl_down)) | 351 | clock_rate, 250, 32, clocksource_mmio_readl_down)) |