diff --git a/drivers/gpu/drm/amd/amdkcl/Makefile b/drivers/gpu/drm/amd/amdkcl/Makefile index 3933fcd80c5fc..c9f04d7c33396 100644 --- a/drivers/gpu/drm/amd/amdkcl/Makefile +++ b/drivers/gpu/drm/amd/amdkcl/Makefile @@ -6,7 +6,7 @@ amdkcl-y += kcl_device_cgroup.o kcl_drm_cache.o kcl_drm.o \ kcl_fence_array.o kcl_fence.o kcl_io.o kcl_kthread.o kcl_mm.o kcl_pci.o \ kcl_perf_event.o kcl_reservation.o kcl_suspend.o kcl_workqueue.o \ kcl_seq_file.o kcl_connector.o kcl_backlight.o kcl_drm_atomic_helper.o \ - kcl_drm_crtc.o kcl_drm_fb.o kcl_drm_modeset_lock.o kcl_drm_modes.o + kcl_drm_crtc.o kcl_drm_fb.o kcl_drm_modeset_lock.o kcl_drm_modes.o kcl_time.o amdkcl-$(CONFIG_MMU_NOTIFIER) += kcl_mn.o amdkcl-y += dma-buf/dma-resv.o diff --git a/drivers/gpu/drm/amd/amdkcl/kcl_time.c b/drivers/gpu/drm/amd/amdkcl/kcl_time.c new file mode 100644 index 0000000000000..e9ce715d45832 --- /dev/null +++ b/drivers/gpu/drm/amd/amdkcl/kcl_time.c @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: MIT */ +#include +#include + +#ifndef HAVE_JIFFIES64_TO_MSECS +u64 jiffies64_to_msecs(const u64 j) +{ +#if HZ <= MSEC_PER_SEC && !(MSEC_PER_SEC % HZ) + return (MSEC_PER_SEC / HZ) * j; +#else + return div_u64(j * HZ_TO_MSEC_NUM, HZ_TO_MSEC_DEN); +#endif +} +EXPORT_SYMBOL(jiffies64_to_msecs); +#endif diff --git a/drivers/gpu/drm/amd/dkms/config/config.h b/drivers/gpu/drm/amd/dkms/config/config.h index 7e5ea998aa27f..94487e0dbc6bc 100644 --- a/drivers/gpu/drm/amd/dkms/config/config.h +++ b/drivers/gpu/drm/amd/dkms/config/config.h @@ -608,6 +608,9 @@ /* IRQ translation domains exist */ #define HAVE_IRQ_DOMAIN 1 +/* jiffies64_to_msecs() is available */ +#define HAVE_JIFFIES64_TO_MSECS 1 + /* kallsyms_lookup_name is available */ #define HAVE_KALLSYMS_LOOKUP_NAME 1 diff --git a/drivers/gpu/drm/amd/dkms/m4/jiffies64_to_msecs.m4 b/drivers/gpu/drm/amd/dkms/m4/jiffies64_to_msecs.m4 new file mode 100644 index 0000000000000..e44504998e830 --- /dev/null +++ b/drivers/gpu/drm/amd/dkms/m4/jiffies64_to_msecs.m4 @@ -0,0 +1,11 @@ +dnl # +dnl # v5.1-rc3-699-g3b15d09f7e6d +dnl # time: Introduce jiffies64_to_msecs() +dnl # +AC_DEFUN([AC_AMDGPU_JIFFIES64_TO_MSECS], [ + AC_KERNEL_DO_BACKGROUND([ + AC_KERNEL_CHECK_SYMBOL_EXPORT([jiffies64_to_msecs], [kernel/time/time.c], [ + AC_DEFINE(HAVE_JIFFIES64_TO_MSECS, 1, [jiffies64_to_msecs() is available]) + ]) + ]) +]) diff --git a/drivers/gpu/drm/amd/dkms/m4/kernel.m4 b/drivers/gpu/drm/amd/dkms/m4/kernel.m4 index 929dcd71fd736..c12b949c51a90 100644 --- a/drivers/gpu/drm/amd/dkms/m4/kernel.m4 +++ b/drivers/gpu/drm/amd/dkms/m4/kernel.m4 @@ -202,6 +202,7 @@ AC_DEFUN([AC_CONFIG_KERNEL], [ AC_AMDGPU_DOWN_READ_KILLABLE AC_AMDGPU_DRM_DRIVER_RELEASE AC_AMDGPU_KTHREAD_USE_MM + AC_AMDGPU_JIFFIES64_TO_MSECS AC_KERNEL_WAIT AS_IF([test "$LINUX_OBJ" != "$LINUX"], [ diff --git a/include/kcl/kcl_timekeeping.h b/include/kcl/kcl_timekeeping.h index 373ddd0cb1cca..dbbc41a943d17 100644 --- a/include/kcl/kcl_timekeeping.h +++ b/include/kcl/kcl_timekeeping.h @@ -54,4 +54,8 @@ static inline u64 ktime_get_mono_fast_ns(void) } #endif +#ifndef HAVE_JIFFIES64_TO_MSECS +extern u64 jiffies64_to_msecs(u64 j); +#endif + #endif