> -----Original Message-----
> From: Nautiyal, Ankit K <[email protected]>
> Sent: 28 November 2025 18:52
> To: Golani, Mitulkumar Ajitkumar <[email protected]>;
> [email protected]
> Cc: [email protected]; [email protected]
> Subject: Re: [PATCH v9 13/17] drm/i915/display: Wait for VRR PUSH status
> update
> 
> 
> On 11/27/2025 2:46 PM, Mitul Golani wrote:
> > 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)
> >
> > Signed-off-by: Mitul Golani <[email protected]>
> > ---
> >   drivers/gpu/drm/i915/display/intel_vrr.c | 17 +++++++++++++++--
> >   1 file changed, 15 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_vrr.c
> > b/drivers/gpu/drm/i915/display/intel_vrr.c
> > index 11f06a5b854a..e5cff3892cb1 100644
> > --- a/drivers/gpu/drm/i915/display/intel_vrr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_vrr.c
> > @@ -1081,10 +1081,23 @@ 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;
> > +   if (crtc_state->vrr.dc_balance.enable) {
> > +           return intel_vrr_dcb_vmin_vblank_start(crtc_state) -
> > +                   crtc_state->set_context_latency;
> > +   } else {
> > +           return intel_vrr_vmin_vblank_start(crtc_state) -
> > +                   crtc_state->set_context_latency;
> > +   }
> >   }
> 
> 
> This can be simplified to:
> 
>   int intel_vrr_vmin_safe_window_end(const struct intel_crtc_state
> *crtc_state)
>   {
>      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;
>   }

Sure, I will simplify this function in next revision based on suggestion.

Thanks
> 
> Regards,
> 
> Ankit
> 
> >
> >   int intel_vrr_dcb_vmin_vblank_start_next(const struct
> > intel_crtc_state *crtc_state)

Reply via email to