[PATCH v2 2/4] drm/i915/psr: Add new define for PSR idle timeout

Kahola, Mika mika.kahola at intel.com
Wed Aug 13 07:28:12 UTC 2025


> -----Original Message-----
> From: Intel-xe <intel-xe-bounces at lists.freedesktop.org> On Behalf Of Jouni Högander
> Sent: Wednesday, 6 August 2025 8.22
> To: intel-gfx at lists.freedesktop.org; intel-xe at lists.freedesktop.org
> Cc: Hogander, Jouni <jouni.hogander at intel.com>
> Subject: [PATCH v2 2/4] drm/i915/psr: Add new define for PSR idle timeout
> 
> Currently we are using value 50ms as timeout for waiting PSR to idle. Add own define for this purpose.
> 

Reviewed-by: Mika Kahola <mika.kahola at intel.com>

> Signed-off-by: Jouni Högander <jouni.hogander at intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_psr.c | 20 ++++++++++++--------
>  1 file changed, 12 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
> index c2ab00fe2c20..172bc0c39968 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -2982,6 +2982,14 @@ void intel_psr_post_plane_update(struct intel_atomic_state *state,
>  	}
>  }
> 
> +/*
> + * From bspec: Panel Self Refresh (BDW+)
> + * Max. time for PSR to idle = Inverse of the refresh rate + 6 ms of
> + * exit training time + 1.5 ms of aux channel handshake. 50 ms is
> + * defensive enough to cover everything.
> + */
> +#define PSR_IDLE_TIMEOUT_MS 50
> +
>  static int
>  _psr2_ready_for_pipe_update_locked(const struct intel_crtc_state *new_crtc_state)  { @@ -2995,7 +3003,8 @@
> _psr2_ready_for_pipe_update_locked(const struct intel_crtc_state *new_crtc_state
>  	 */
>  	return intel_de_wait_for_clear(display,
>  				       EDP_PSR2_STATUS(display, cpu_transcoder),
> -				       EDP_PSR2_STATUS_STATE_DEEP_SLEEP, 50);
> +				       EDP_PSR2_STATUS_STATE_DEEP_SLEEP,
> +				       PSR_IDLE_TIMEOUT_MS);
>  }
> 
>  static int
> @@ -3004,15 +3013,10 @@ _psr1_ready_for_pipe_update_locked(const struct intel_crtc_state *new_crtc_state
>  	struct intel_display *display = to_intel_display(new_crtc_state);
>  	enum transcoder cpu_transcoder = new_crtc_state->cpu_transcoder;
> 
> -	/*
> -	 * From bspec: Panel Self Refresh (BDW+)
> -	 * Max. time for PSR to idle = Inverse of the refresh rate + 6 ms of
> -	 * exit training time + 1.5 ms of aux channel handshake. 50 ms is
> -	 * defensive enough to cover everything.
> -	 */
>  	return intel_de_wait_for_clear(display,
>  				       psr_status_reg(display, cpu_transcoder),
> -				       EDP_PSR_STATUS_STATE_MASK, 50);
> +				       EDP_PSR_STATUS_STATE_MASK,
> +				       PSR_IDLE_TIMEOUT_MS);
>  }
> 
>  /**
> --
> 2.43.0



More information about the Intel-xe mailing list