summaryrefslogtreecommitdiffstats
path: root/drivers/clocksource/dw_apb_timer.c
diff options
context:
space:
mode:
authorNicolai Stange <nicstange@gmail.com>2017-03-30 22:07:49 +0200
committerJohn Stultz <john.stultz@linaro.org>2017-04-14 13:11:13 -0700
commit8317b53fbe32439c56ba83ad4435b641799b2ce8 (patch)
treeecba7e9ee6bebd2ef55d5fd4d697e1c0348d98b4 /drivers/clocksource/dw_apb_timer.c
parenta60a9fb8fb52768bd19cd8c0893f4c0432acb10e (diff)
downloadlinux-8317b53fbe32439c56ba83ad4435b641799b2ce8.tar.gz
linux-8317b53fbe32439c56ba83ad4435b641799b2ce8.tar.bz2
linux-8317b53fbe32439c56ba83ad4435b641799b2ce8.zip
clockevents/drivers/dw_apb: Set ->min_delta_ticks and ->max_delta_ticks
In preparation for making the clockevents core NTP correction aware, all clockevent device drivers must set ->min_delta_ticks and ->max_delta_ticks rather than ->min_delta_ns and ->max_delta_ns: a clockevent device's rate is going to change dynamically and thus, the ratio of ns to ticks ceases to stay invariant. Make the dw_apb clockevent driver initialize these fields properly. This patch alone doesn't introduce any change in functionality as the clockevents core still looks exclusively at the (untouched) ->min_delta_ns and ->max_delta_ns. As soon as this has changed, a followup patch will purge the initialization of ->min_delta_ns and ->max_delta_ns from this driver. Cc: Ingo Molnar <mingo@redhat.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Cc: Richard Cochran <richardcochran@gmail.com> Cc: Prarit Bhargava <prarit@redhat.com> Cc: Stephen Boyd <sboyd@codeaurora.org> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Nicolai Stange <nicstange@gmail.com> Signed-off-by: John Stultz <john.stultz@linaro.org>
Diffstat (limited to 'drivers/clocksource/dw_apb_timer.c')
-rw-r--r--drivers/clocksource/dw_apb_timer.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/clocksource/dw_apb_timer.c b/drivers/clocksource/dw_apb_timer.c
index 63e4f5519577..880f37e8278f 100644
--- a/drivers/clocksource/dw_apb_timer.c
+++ b/drivers/clocksource/dw_apb_timer.c
@@ -257,7 +257,9 @@ dw_apb_clockevent_init(int cpu, const char *name, unsigned rating,
clockevents_calc_mult_shift(&dw_ced->ced, freq, APBT_MIN_PERIOD);
dw_ced->ced.max_delta_ns = clockevent_delta2ns(0x7fffffff,
&dw_ced->ced);
+ dw_ced->ced.max_delta_ticks = 0x7fffffff;
dw_ced->ced.min_delta_ns = clockevent_delta2ns(5000, &dw_ced->ced);
+ dw_ced->ced.min_delta_ticks = 5000;
dw_ced->ced.cpumask = cpumask_of(cpu);
dw_ced->ced.features = CLOCK_EVT_FEAT_PERIODIC |
CLOCK_EVT_FEAT_ONESHOT | CLOCK_EVT_FEAT_DYNIRQ;