[PATCH v5 1/1] drm/i915/display: Add no_psr_reason to PSR debugfs

Krzysztof Karas krzysztof.karas at intel.com
Thu Jul 17 11:09:10 UTC 2025


Hi Michał,

[...]
> @@ -2937,13 +2939,21 @@ void intel_psr_pre_plane_update(struct intel_atomic_state *state,
>  			 * - Region Early Transport changing
>  			 * - Display WA #1136: skl, bxt
>  			 */
> -			if (intel_crtc_needs_modeset(new_crtc_state) ||
> -			    !new_crtc_state->has_psr ||
> -			    !new_crtc_state->active_planes ||
> -			    new_crtc_state->has_sel_update != psr->sel_update_enabled ||
> -			    new_crtc_state->enable_psr2_su_region_et != psr->su_region_et_enabled ||
> -			    new_crtc_state->has_panel_replay != psr->panel_replay_enabled ||
> -			    (DISPLAY_VER(display) < 11 && new_crtc_state->wm_level_disabled))
> +			if (intel_crtc_needs_modeset(new_crtc_state))
> +				psr->no_psr_reason = "CRTC needs modeset";
> +			if (!new_crtc_state->has_psr)
> +				psr->no_psr_reason = "PSR disabled";
> +			if (!new_crtc_state->active_planes)
> +				psr->no_psr_reason = "All planes inactive";
> +			if (new_crtc_state->has_sel_update != psr->sel_update_enabled)
> +				psr->no_psr_reason = "Changing between PSR versions";
> +			if (new_crtc_state->enable_psr2_su_region_et != psr->su_region_et_enabled)
> +				psr->no_psr_reason = "Changing Region Early Transport";
> +			if (new_crtc_state->has_panel_replay != psr->panel_replay_enabled)
> +				psr->no_psr_reason = "Changing Panel Replay mode";
> +			if (DISPLAY_VER(display) < 11 && new_crtc_state->wm_level_disabled)
> +				psr->no_psr_reason = "Wa_1136";
> +			if (psr->no_psr_reason)
>  				intel_psr_disable_locked(intel_dp);
>  			else if (new_crtc_state->wm_level_disabled)
>  				/* Wa_14015648006 */
Is it possible to have multiple reasons for disabling psr?
The way no_psr_reason is set above causes only the last reason
to be logged into that field.

---
Best Regards,
Krzysztof


More information about the Intel-gfx mailing list