]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/vrr: Use SCL for computing guardband
authorAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Wed, 24 Sep 2025 14:15:36 +0000 (19:45 +0530)
committerAnkit Nautiyal <ankit.k.nautiyal@intel.com>
Thu, 25 Sep 2025 13:08:16 +0000 (18:38 +0530)
For now guardband is equal to the vblank length so ideally it should be
computed as difference between the vmin vtotal and vactive. However
since we are having few lines as SCL, we need to account for this while
computing the guardband.

Since the vblank start is moved by SCL lines from the vactive, the delta
between the vmin vtotal and new vblank start was used to account for this.
Now that SCL is explicitly tracked using the `set_context_latency` member,
use it directly in the guardband calculation.

In the future, when the guardband is shortened or optimized, we may need
to factor in both the change in the vblank start and SCL lines. For now,
explicitly accounting for SCL is sufficient.

v2: Fix typo: replace adjusted_mode->vdisplay with
adjusted_mode->crtc_vdisplay. (Ville)

Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://lore.kernel.org/r/20250924141542.3122126-5-ankit.k.nautiyal@intel.com
drivers/gpu/drm/i915/display/intel_vrr.c

index e188e5f079875b604458347e3ceba2b044a9141f..e414fb53552f0338b9388f0ac76c322d45bbbffb 100644 (file)
@@ -418,7 +418,9 @@ void intel_vrr_compute_config_late(struct intel_crtc_state *crtc_state)
                return;
 
        crtc_state->vrr.guardband =
-               crtc_state->vrr.vmin - adjusted_mode->crtc_vblank_start -
+               crtc_state->vrr.vmin -
+               adjusted_mode->crtc_vdisplay -
+               crtc_state->set_context_latency -
                intel_vrr_extra_vblank_delay(display);
 
        if (DISPLAY_VER(display) < 13) {