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