[PATCH v3 2/2] drm/i915/psr: Move PSR workaround to intel_psr.c
Murthy, Arun R
arun.r.murthy at intel.com
Fri Apr 25 08:01:50 UTC 2025
> -----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>
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