On 9/22/2025 3:44 PM, Ville Syrjälä wrote:
On Sun, Sep 21, 2025 at 10:05:30AM +0530, Ankit Nautiyal wrote:
The helper intel_vrr_real_vblank_delay() was added to account for the
SCL lines for TGL where we do not have the TRANS_SET_CONTEXT_LATENCY.

Now, since we already are tracking the SCL with new member
`set_context_latency` use it directly instead of the helper.

Signed-off-by: Ankit Nautiyal <[email protected]>
Reviewed-by: Ville Syrjälä <[email protected]>

I think right after this patch you could also do a patch to
change the guardband calculation to something like:

guardband = vmin - crtc_vdisplay -
        intel_vrr_extra_vblank_delay() -
        crtc_state->set_context_latency;

That better reflects how the hardware opearates.


Sure will make a separate patch for this.


Regards,

Ankit


---
  drivers/gpu/drm/i915/display/intel_vrr.c | 16 +++++-----------
  1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c 
b/drivers/gpu/drm/i915/display/intel_vrr.c
index 9e007aab1452..698b33b5b326 100644
--- a/drivers/gpu/drm/i915/display/intel_vrr.c
+++ b/drivers/gpu/drm/i915/display/intel_vrr.c
@@ -79,12 +79,6 @@ intel_vrr_check_modeset(struct intel_atomic_state *state)
        }
  }
-static int intel_vrr_real_vblank_delay(const struct intel_crtc_state *crtc_state)
-{
-       return crtc_state->hw.adjusted_mode.crtc_vblank_start -
-               crtc_state->hw.adjusted_mode.crtc_vdisplay;
-}
-
  static int intel_vrr_extra_vblank_delay(struct intel_display *display)
  {
        /*
@@ -102,7 +96,7 @@ int intel_vrr_vblank_delay(const struct intel_crtc_state 
*crtc_state)
  {
        struct intel_display *display = to_intel_display(crtc_state);
- return intel_vrr_real_vblank_delay(crtc_state) +
+       return crtc_state->set_context_latency +
                intel_vrr_extra_vblank_delay(display);
  }
@@ -263,7 +257,7 @@ static int intel_vrr_hw_value(const struct intel_crtc_state *crtc_state,
        if (DISPLAY_VER(display) >= 13)
                return value;
        else
-               return value - intel_vrr_real_vblank_delay(crtc_state);
+               return value - crtc_state->set_context_latency;
  }
/*
@@ -761,9 +755,9 @@ void intel_vrr_get_config(struct intel_crtc_state 
*crtc_state)
if (DISPLAY_VER(display) < 13) {
                        /* undo what intel_vrr_hw_value() does when writing the 
values */
-                       crtc_state->vrr.flipline += 
intel_vrr_real_vblank_delay(crtc_state);
-                       crtc_state->vrr.vmax += 
intel_vrr_real_vblank_delay(crtc_state);
-                       crtc_state->vrr.vmin += 
intel_vrr_real_vblank_delay(crtc_state);
+                       crtc_state->vrr.flipline += 
crtc_state->set_context_latency;
+                       crtc_state->vrr.vmax += crtc_state->set_context_latency;
+                       crtc_state->vrr.vmin += crtc_state->set_context_latency;
crtc_state->vrr.vmin += intel_vrr_vmin_flipline_offset(display);
                }
--
2.45.2

Reply via email to