> -----Original Message-----
> From: Golani, Mitulkumar Ajitkumar <[email protected]>
> Sent: Tuesday, December 2, 2025 1:07 PM
> To: [email protected]
> Cc: [email protected]; Golani, Mitulkumar Ajitkumar
> <[email protected]>; Nautiyal, Ankit K
> <[email protected]>; [email protected]; Shankar, Uma
> <[email protected]>; Nikula, Jani <[email protected]>
> Subject: [PATCH v10 13/17] drm/i915/display: Wait for VRR PUSH status update
>
> After VRR Push is sent, need to wait till flipline decision boundary to get
> Push bit
> to get cleared.
>
> --v2:
> - Adjust delays to vrr vmin vblank delays. (Ankit)
>
> --v3:
> - Change intel_vrr_vmin_safe_window_end() so that
> intel_dsb_wait_for_delayed_vblank() uses correct delay. (Ankit)
>
> --v4:
> - Simplify intel_vrr_vmin_safe_window_end implementation. (Ankit)
Looks Good to me.
Reviewed-by: Uma Shankar <[email protected]>
> Signed-off-by: Mitul Golani <[email protected]>
> ---
> drivers/gpu/drm/i915/display/intel_vrr.c | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c
> b/drivers/gpu/drm/i915/display/intel_vrr.c
> index 3db61d1f0124..4c1470dcd3bb 100644
> --- a/drivers/gpu/drm/i915/display/intel_vrr.c
> +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
> @@ -1095,10 +1095,21 @@ int intel_vrr_safe_window_start(const struct
> intel_crtc_state *crtc_state)
> return crtc_state->hw.adjusted_mode.crtc_vdisplay;
> }
>
> +static int
> +intel_vrr_dcb_vmin_vblank_start(const struct intel_crtc_state
> +*crtc_state) {
> + return (intel_vrr_dcb_vmin_vblank_start_next(crtc_state) < 0) ?
> + intel_vrr_dcb_vmin_vblank_start_final(crtc_state) :
> + intel_vrr_dcb_vmin_vblank_start_next(crtc_state);
> +}
> +
> int intel_vrr_vmin_safe_window_end(const struct intel_crtc_state
> *crtc_state) {
> - return intel_vrr_vmin_vblank_start(crtc_state) -
> - crtc_state->set_context_latency;
> + int vmin_vblank_start = crtc_state->vrr.dc_balance.enable ?
> + intel_vrr_dcb_vmin_vblank_start(crtc_state) :
> + intel_vrr_vmin_vblank_start(crtc_state);
> +
> + return vmin_vblank_start - crtc_state->set_context_latency;
> }
>
> int intel_vrr_dcb_vmin_vblank_start_next(const struct intel_crtc_state
> *crtc_state)
> --
> 2.48.1