]> www.infradead.org Git - nvme.git/commitdiff
drm/i915: Calculate vblank delay more accurately
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 24 Jun 2024 19:10:19 +0000 (22:10 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 12 Jul 2024 11:22:42 +0000 (14:22 +0300)
Calculate the vblank delay in the vblank evasion code correctly
for interlaced modes.

The current code assumes that we won't be using an interlaced mode.
That assumption is actually valid since we've defeatured interlaced
scanout in commit f71c9b7bc35f ("drm/i915/display: Prune Interlace
modes for Display >=12") for DSB capable platforms. However the
feature is still present in the hardware, and if we ever find the
need to re-enable it seems better to calculate the vblank delay
correctly.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240624191032.27333-2-ville.syrjala@linux.intel.com
Reviewed-by: Animesh Manna <animesh.manna@intel.com>
drivers/gpu/drm/i915/display/intel_vblank.c

index 5b065e1cd4e44c126875d37ea490bea19a0c678f..f183e0d4b2babc8f8a2df1651ff3aef141499bc5 100644 (file)
@@ -652,7 +652,8 @@ void intel_vblank_evade_init(const struct intel_crtc_state *old_crtc_state,
         */
        if (intel_color_uses_dsb(new_crtc_state) ||
            new_crtc_state->update_m_n || new_crtc_state->update_lrr)
-               evade->min -= adjusted_mode->crtc_vblank_start - adjusted_mode->crtc_vdisplay;
+               evade->min -= intel_mode_vblank_start(adjusted_mode) -
+                       intel_mode_vdisplay(adjusted_mode);
 }
 
 /* must be called with vblank interrupt already enabled! */