With the yet to come introduction of NTP correction awareness to the
clockevent core, drivers should report their valid ranges in units of
cycles to the latter.

Currently, the x86's uv rtc clockevent device is initialized as follows:

  clock_event_device_uv.min_delta_ns = NSEC_PER_SEC /
                                 sn_rtc_cycles_per_second;
  clock_event_device_uv.max_delta_ns = clocksource_uv.mask *
                                 (NSEC_PER_SEC / sn_rtc_cycles_per_second);

This translates to a ->min_delta_ticks value of 1 and a ->max_delta_ticks
value of clocksource_uv.mask.

Initialize ->min_delta_ticks and ->max_delta_ticks with these values
respectively.

Signed-off-by: Nicolai Stange <nicsta...@gmail.com>
---

Notes:
    Compile-only tested through an allmodconfig build on ARCH=x86_64.

 arch/x86/platform/uv/uv_time.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/platform/uv/uv_time.c b/arch/x86/platform/uv/uv_time.c
index b333fc4..6410ee3 100644
--- a/arch/x86/platform/uv/uv_time.c
+++ b/arch/x86/platform/uv/uv_time.c
@@ -390,9 +390,11 @@ static __init int uv_rtc_setup_clock(void)
 
        clock_event_device_uv.min_delta_ns = NSEC_PER_SEC /
                                                sn_rtc_cycles_per_second;
+       clock_event_device_uv.min_delta_ticks = 1;
 
        clock_event_device_uv.max_delta_ns = clocksource_uv.mask *
                                (NSEC_PER_SEC / sn_rtc_cycles_per_second);
+       clock_event_device_uv.max_delta_ticks = clocksource_uv.mask;
 
        rc = schedule_on_each_cpu(uv_rtc_register_clockevents);
        if (rc) {
-- 
2.10.0

Reply via email to