[PATCH v3 2/2] drm/i915/psr: Move PSR workaround to intel_psr.c

Hogander, Jouni jouni.hogander at intel.com
Mon Apr 28 09:55:01 UTC 2025


On Fri, 2025-04-25 at 08:01 +0000, Murthy, Arun R wrote:
> > -----Original Message-----
> > From: Intel-gfx <intel-gfx-bounces at lists.freedesktop.org> On Behalf
> > Of Jouni
> > Högander
> > Sent: Wednesday, April 23, 2025 3:57 PM
> > To: intel-gfx at lists.freedesktop.org; intel-xe at lists.freedesktop.org
> > Cc: Hogander, Jouni <jouni.hogander at intel.com>
> > Subject: [PATCH v3 2/2] drm/i915/psr: Move PSR workaround to
> > intel_psr.c
> > 
> > Logical place for PSR workaround needing vblank delay is in
> > intel_psr_min_vblank_delay. Move it there.
> > 
> > Signed-off-by: Jouni Högander <jouni.hogander at intel.com>
> > ---
> Looks good to me!
> 
> Reviewed-by: Arun R Murthy <arun.r.murthy at intel.com>

Thank you Arun for checking my patches. These are now pushed to drm-
intel-next.

BR,

Jouni Högander

> 
> Thanks and Regards,
> Arun R Murthy
> -------------------
> 
> >  drivers/gpu/drm/i915/display/intel_display.c | 12 ------------
> >  drivers/gpu/drm/i915/display/intel_psr.c     | 11 ++++++++++-
> >  2 files changed, 10 insertions(+), 13 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c
> > b/drivers/gpu/drm/i915/display/intel_display.c
> > index a7b35fc13d7c8..c931e76c2fa11 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display.c
> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
> > @@ -2402,14 +2402,6 @@ static int
> > intel_crtc_compute_pipe_mode(struct
> > intel_crtc_state *crtc_state)
> >  	return 0;
> >  }
> > 
> > -static bool intel_crtc_needs_wa_14015401596(const struct
> > intel_crtc_state
> > *crtc_state) -{
> > -	struct intel_display *display =
> > to_intel_display(crtc_state);
> > -
> > -	return intel_vrr_possible(crtc_state) && crtc_state-
> > >has_psr &&
> > -		IS_DISPLAY_VER(display, 13, 14);
> > -}
> > -
> >  static int intel_crtc_vblank_delay(const struct intel_crtc_state
> > *crtc_state)  {
> >  	struct intel_display *display =
> > to_intel_display(crtc_state); @@ -
> > 2418,10 +2410,6 @@ static int intel_crtc_vblank_delay(const struct
> > intel_crtc_state *crtc_state)
> >  	if (!HAS_DSB(display))
> >  		return 0;
> > 
> > -	/* Wa_14015401596 */
> > -	if (intel_crtc_needs_wa_14015401596(crtc_state))
> > -		vblank_delay = max(vblank_delay, 1);
> > -
> >  	vblank_delay = max(vblank_delay,
> > intel_psr_min_vblank_delay(crtc_state));
> > 
> >  	return vblank_delay;
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index 1058134422bcf..ca91c7033714c 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -48,6 +48,7 @@
> >  #include "intel_psr_regs.h"
> >  #include "intel_snps_phy.h"
> >  #include "intel_vblank.h"
> > +#include "intel_vrr.h"
> >  #include "skl_universal_plane.h"
> > 
> >  /**
> > @@ -2395,7 +2396,15 @@ int intel_psr_min_vblank_delay(const struct
> > intel_crtc_state *crtc_state)  {
> >  	struct intel_display *display =
> > to_intel_display(crtc_state);
> > 
> > -	if (!crtc_state->has_psr || DISPLAY_VER(display) < 20)
> > +	if (!crtc_state->has_psr)
> > +		return 0;
> > +
> > +	/* Wa_14015401596 */
> > +	if (intel_vrr_possible(crtc_state) &&
> > IS_DISPLAY_VER(display, 13, 14))
> > +		return 1;
> > +
> > +	/* Rest is for SRD_STATUS needed on LunarLake and onwards
> > */
> > +	if (DISPLAY_VER(display) < 20)
> >  		return 0;
> > 
> >  	/*
> > --
> > 2.43.0
> 



More information about the Intel-xe mailing list