Message ID | 20210113220935.4151-19-manasi.d.navare@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | VRR/Adaptive Sync Enabling on DP/eDP for TGL+ | expand |
On Wed, Jan 13, 2021 at 02:09:35PM -0800, Manasi Navare wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > With vrr enabled the hardware no longer latches the registers > automagically at vblank start. The point at which it will do the > latching even when no push has been sent is the vmax decision > boundary. That is the thing we need to evade to avoid our > register latching to get split between two frames. > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: Manasi Navare <manasi.d.navare@intel.com> Makes sense to us vmax vblank start here with vrr enable Reviewed-by: Manasi Navare <manasi.d.navare@intel.com> Manasi > --- > drivers/gpu/drm/i915/display/intel_sprite.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c > index 0e82d1629d2d..530ce0497559 100644 > --- a/drivers/gpu/drm/i915/display/intel_sprite.c > +++ b/drivers/gpu/drm/i915/display/intel_sprite.c > @@ -101,7 +101,10 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state) > if (new_crtc_state->uapi.async_flip) > return; > > - vblank_start = intel_mode_vblank_start(adjusted_mode); > + if (new_crtc_state->vrr.enable) > + vblank_start = intel_vrr_vmax_vblank_start(new_crtc_state); > + else > + vblank_start = intel_mode_vblank_start(adjusted_mode); > > /* FIXME needs to be calibrated sensibly */ > min = vblank_start - intel_usecs_to_scanlines(adjusted_mode, > -- > 2.19.1 >
diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c index 0e82d1629d2d..530ce0497559 100644 --- a/drivers/gpu/drm/i915/display/intel_sprite.c +++ b/drivers/gpu/drm/i915/display/intel_sprite.c @@ -101,7 +101,10 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state) if (new_crtc_state->uapi.async_flip) return; - vblank_start = intel_mode_vblank_start(adjusted_mode); + if (new_crtc_state->vrr.enable) + vblank_start = intel_vrr_vmax_vblank_start(new_crtc_state); + else + vblank_start = intel_mode_vblank_start(adjusted_mode); /* FIXME needs to be calibrated sensibly */ min = vblank_start - intel_usecs_to_scanlines(adjusted_mode,