On 9/15/26 21:42, Maíra Canal wrote: > DRM wait ioctls express their timeout in one of two ways: as an absolute > deadline in ns, or as a duration in ns. The core has a helper for the first > form, drm_timeout_abs_to_jiffies(), which panfrost, lima, tegra, xe and > some accel drivers use. However, there is no equivalent for the second > form, so the drivers that take a duration convert it themselves. > > For example, i915 has a local helper to handle the relative timeout case, > and v3d carries a copy of it. This series moves that conversion into a DRM > helper called drm_timeout_rel_to_jiffies(), next to the absolute variant, > and converts the drivers that were open-coding either form. > > This series becomes particularly relevant as the new helper will be used > in the next version of the series "drm/vc4: Switch to DRM GPU scheduler" > [1]. With this series, we avoid another duplication of the > nsecs_to_jiffies_timeout() function (and thanks Tvrtko for the suggestion). > > PATCH 1 moves drm_timeout_abs_to_jiffies() out of drm_syncobj.c and into a > file of its own, so that both helpers live together. PATCH 2 adds a helper > for the relative variant. Patches 3 to 6 convert amdgpu, v3d, i915 and vc4. > Finally, PATCH 7 renames the drm_utils.h header to drm_panel_quirks.h to > better express its meaning. > > Let me know your thoughts about it.
Feel free to add Reviewed-by: Christian König <[email protected]> to patches #1-#3 and Acked-by: Christian König <[email protected]> to the whole set and merge the amdgpu patch through drm-misc-next. Regards, Christian. > > [1] > https://lore.kernel.org/dri-devel/[email protected]/T/ > > Best regards, > - Maíra > > --- > v1 -> v2: > https://lore.kernel.org/r/[email protected] > > - [2/6] Add comment discouraging the use of relative timeouts in uAPIs > (Christian König) > - [3/6] Make it more explicit that any timeout that doesn't fit in a s64 > is mapped into an infinite wait (Christian König) > > v2 -> v3: > https://lore.kernel.org/r/[email protected] > > - [1/7] Move the function definitions to a new header file: drm_timeout.h > (Thomas Zimmermann) > - [1/7] Add Tvrtko's R-b (Tvrtko Ursulin) > - [1/7, 2/7] Apply adjustments to the function's kerneldoc (Thomas Zimmermann) > - [2/7] Fixed an inadequate overflow check in drm_timeout_rel_to_jiffies(), > which allowed `nsecs_to_jiffies64` to wrap around on 64-bit systems. > (Tvrtko Ursulin, Sashiko) > - [7/7] Rename drm_utils.h to drm_panel_quirks.h (Thomas Zimmermann) > > --- > Maíra Canal (7): > drm: Move drm_timeout_abs_to_jiffies() to drm_timeout.c > drm: Add drm_timeout_rel_to_jiffies() > drm/amdgpu: Use drm_timeout_abs_to_jiffies() > drm/v3d: Use drm_timeout_rel_to_jiffies() > drm/i915: Use drm_timeout_rel_to_jiffies() > drm/vc4: Use drm_timeout_rel_to_jiffies() > drm: Rename drm_utils.h to drm_panel_quirks.h > > drivers/accel/ethosu/ethosu_drv.c | 2 +- > drivers/accel/ivpu/ivpu_gem.c | 2 +- > drivers/accel/rocket/rocket_gem.c | 2 +- > drivers/gpu/drm/Makefile | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 20 +---- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 1 - > .../amd/display/amdgpu_dm/amdgpu_dm_backlight.c | 2 +- > .../amd/display/amdgpu_dm/amdgpu_dm_connector.c | 1 - > drivers/gpu/drm/drm_connector.c | 2 +- > drivers/gpu/drm/drm_panel_backlight_quirks.c | 2 +- > drivers/gpu/drm/drm_panel_orientation_quirks.c | 2 +- > drivers/gpu/drm/drm_syncobj.c | 35 +------- > drivers/gpu/drm/drm_timeout.c | 95 > ++++++++++++++++++++++ > drivers/gpu/drm/i915/gem/i915_gem_wait.c | 17 +--- > drivers/gpu/drm/lima/lima_gem.c | 2 +- > drivers/gpu/drm/panfrost/panfrost_drv.c | 2 +- > drivers/gpu/drm/panthor/panthor_drv.c | 1 - > drivers/gpu/drm/tegra/uapi.c | 2 +- > drivers/gpu/drm/v3d/v3d_bo.c | 3 +- > drivers/gpu/drm/v3d/v3d_drv.h | 10 --- > drivers/gpu/drm/vc4/vc4_gem.c | 3 +- > drivers/gpu/drm/xe/xe_wait_user_fence.c | 2 +- > drivers/video/fbdev/efifb.c | 2 +- > include/drm/{drm_utils.h => drm_panel_quirks.h} | 10 +-- > include/drm/drm_timeout.h | 17 ++++ > 25 files changed, 140 insertions(+), 98 deletions(-) > --- > base-commit: 5363e01e4ff03a204cab85292b89cf90c2d1b101 > change-id: 20260809-drm-timeout-helpers-55473e4879d1 >
