diff options
Diffstat (limited to 'arch/arm/kernel/sched_clock.c')
-rw-r--r-- | arch/arm/kernel/sched_clock.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/arm/kernel/sched_clock.c b/arch/arm/kernel/sched_clock.c index 2cdcc9287c74..9a46370fe9da 100644 --- a/arch/arm/kernel/sched_clock.c +++ b/arch/arm/kernel/sched_clock.c | |||
@@ -34,7 +34,7 @@ void __init init_sched_clock(struct clock_data *cd, void (*update)(void), | |||
34 | sched_clock_update_fn = update; | 34 | sched_clock_update_fn = update; |
35 | 35 | ||
36 | /* calculate the mult/shift to convert counter ticks to ns. */ | 36 | /* calculate the mult/shift to convert counter ticks to ns. */ |
37 | clocks_calc_mult_shift(&cd->mult, &cd->shift, rate, NSEC_PER_SEC, 60); | 37 | clocks_calc_mult_shift(&cd->mult, &cd->shift, rate, NSEC_PER_SEC, 0); |
38 | 38 | ||
39 | r = rate; | 39 | r = rate; |
40 | if (r >= 4000000) { | 40 | if (r >= 4000000) { |
@@ -60,10 +60,15 @@ void __init init_sched_clock(struct clock_data *cd, void (*update)(void), | |||
60 | * sets the initial epoch. | 60 | * sets the initial epoch. |
61 | */ | 61 | */ |
62 | sched_clock_timer.data = msecs_to_jiffies(w - (w / 10)); | 62 | sched_clock_timer.data = msecs_to_jiffies(w - (w / 10)); |
63 | sched_clock_poll(sched_clock_timer.data); | 63 | update(); |
64 | 64 | ||
65 | /* | 65 | /* |
66 | * Ensure that sched_clock() starts off at 0ns | 66 | * Ensure that sched_clock() starts off at 0ns |
67 | */ | 67 | */ |
68 | cd->epoch_ns = 0; | 68 | cd->epoch_ns = 0; |
69 | } | 69 | } |
70 | |||
71 | void __init sched_clock_postinit(void) | ||
72 | { | ||
73 | sched_clock_poll(sched_clock_timer.data); | ||
74 | } | ||