blob: 6eee213ac4606084384caa8f8935d74893e590ba [file] [log] [blame]
From 51b1edb2e3af7fc16e3c6d1e91eba33e0e79d4fe Mon Sep 17 00:00:00 2001
From: Nicolai Stange <>
Date: Thu, 30 Mar 2017 22:09:12 +0200
Subject: [PATCH 111/286] clockevents/drivers/sh_cmt: Set ->min_delta_ticks and
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 sh_cmt 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
Cc: Ingo Molnar <>
Cc: Thomas Gleixner <>
Cc: Daniel Lezcano <>
Cc: Richard Cochran <>
Cc: Prarit Bhargava <>
Cc: Stephen Boyd <>
Acked-by: Daniel Lezcano <>
Signed-off-by: Nicolai Stange <>
Signed-off-by: John Stultz <>
(cherry picked from commit bb2e94ac0cf4628f5e5f778c8de4a376dac43558)
Signed-off-by: Simon Horman <>
drivers/clocksource/sh_cmt.c | 2 ++
1 file changed, 2 insertions(+)
--- a/drivers/clocksource/sh_cmt.c
+++ b/drivers/clocksource/sh_cmt.c
@@ -815,7 +815,9 @@ static int sh_cmt_register_clockevent(st
ced->shift = 32;
ced->mult = div_sc(ch->cmt->rate, NSEC_PER_SEC, ced->shift);
ced->max_delta_ns = clockevent_delta2ns(ch->max_match_value, ced);
+ ced->max_delta_ticks = ch->max_match_value;
ced->min_delta_ns = clockevent_delta2ns(0x1f, ced);
+ ced->min_delta_ticks = 0x1f;
dev_info(&ch->cmt->pdev->dev, "ch%u: used for clock events\n",