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. > --- > 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 -- Ville Syrjälä Intel
