summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Zimmermann <tzimmermann@suse.de>2026-04-27 17:00:38 +0200
committerThomas Zimmermann <tzimmermann@suse.de>2026-05-04 13:47:02 +0200
commit83ae9a231dadbe2b0686786344a692d0b598953a (patch)
tree3b18bbcddca89560edec5219ada3d1da40615a20
parentc0d650bd0e67048dba04cdc21e8d77aef1ff0d5f (diff)
downloadlinux-83ae9a231dadbe2b0686786344a692d0b598953a.tar.gz
linux-83ae9a231dadbe2b0686786344a692d0b598953a.zip
drm/vmwgfx: Determine lock-waiting timeout from vblank state
Use the calculated duration of a frame as stored in the vblank state for the lock-waiting timeout. Decouples the waiting from the details of the vblank implementation. Both values should be equal. This will be helpful for replacing vmwgfx's vblank timer with DRM's common implementation. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Zack Rusin <zack.rusin@broadcom.com> Link: https://patch.msgid.link/20260427150250.699768-2-tzimmermann@suse.de
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c
index 5abd7f5ad2db..7862f6972512 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_vkms.c
@@ -516,9 +516,13 @@ vmw_vkms_set_crc_surface(struct drm_crtc *crtc,
static inline u64
vmw_vkms_lock_max_wait_ns(struct vmw_display_unit *du)
{
- s64 nsecs = ktime_to_ns(du->vkms.period_ns);
+ struct drm_crtc *crtc = &du->crtc;
+ struct drm_vblank_crtc *vblank = drm_crtc_vblank_crtc(crtc);
+
+ if (!vblank || !vblank->framedur_ns)
+ return NSEC_PER_SEC / 60; /* disabled; assume 60 Hz */
- return (nsecs > 0) ? nsecs : 16666666;
+ return vblank->framedur_ns;
}
/**