clockevents/drivers/dw_apb: Set ->min_delta_ticks and ->max_delta_ticks
authorNicolai Stange <nicstange@gmail.com>
Thu, 30 Mar 2017 20:07:49 +0000 (22:07 +0200)
committerJohn Stultz <john.stultz@linaro.org>
Fri, 14 Apr 2017 20:11:13 +0000 (13:11 -0700)
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>
drivers/clocksource/dw_apb_timer.c

index 63e4f55..880f37e 100644 (file)
@@ -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;