> -----Original Message-----
> From: Dibin Moolakadan Subrahmanian
> <[email protected]>
> Sent: Friday, June 5, 2026 2:14 PM
> To: [email protected]; [email protected]
> Cc: Manna, Animesh <[email protected]>; Shankar, Uma
> <[email protected]>; [email protected]
> Subject: [PATCH v5 07/14] drm/i915/psr: Add psr2 deep sleep helper API
> 
> Add intel_psr2_in_deep_sleep() to check whether PSR2 is currently in
> DEEP_SLEEP state. Will be used in subsequent patches.

Looks Good to me.
Reviewed-by: Uma Shankar <[email protected]>

> Signed-off-by: Dibin Moolakadan Subrahmanian
> <[email protected]>
> ---
>  drivers/gpu/drm/i915/display/intel_psr.c | 21 +++++++++++++++++++++
> drivers/gpu/drm/i915/display/intel_psr.h |  1 +
>  2 files changed, 22 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index b7344f2b865e..932aff386023 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -2219,6 +2219,27 @@ static void intel_psr_exit(struct intel_dp *intel_dp)
>       intel_dp->psr.active = false;
>  }
> 
> +bool intel_psr2_in_deep_sleep(struct intel_dp *intel_dp) {
> +     struct intel_display *display = to_intel_display(intel_dp);
> +     enum transcoder cpu_transcoder;
> +     bool in_deep_sleep = false;
> +     u32 val;
> +
> +     mutex_lock(&intel_dp->psr.lock);
> +
> +     if (!intel_dp->psr.enabled || !intel_dp->psr.sel_update_enabled)
> +             goto out;
> +
> +     cpu_transcoder = intel_dp->psr.transcoder;
> +     val = intel_de_read(display, EDP_PSR2_STATUS(display,
> cpu_transcoder));
> +     in_deep_sleep = (val & EDP_PSR2_STATUS_STATE_MASK) ==
> +             EDP_PSR2_STATUS_STATE_DEEP_SLEEP;
> +out:
> +     mutex_unlock(&intel_dp->psr.lock);
> +     return in_deep_sleep;
> +}
> +
>  static void intel_psr_wait_exit_locked(struct intel_dp *intel_dp)  {
>       struct intel_display *display = to_intel_display(intel_dp); diff --git
> a/drivers/gpu/drm/i915/display/intel_psr.h
> b/drivers/gpu/drm/i915/display/intel_psr.h
> index 29723e63888f..d545fdaa0de7 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.h
> +++ b/drivers/gpu/drm/i915/display/intel_psr.h
> @@ -87,5 +87,6 @@ void intel_psr_compute_config_late(struct intel_dp
> *intel_dp,  int intel_psr_min_guardband(struct intel_crtc_state *crtc_state); 
>  bool
> intel_psr_use_trans_push(const struct intel_crtc_state *crtc_state);  bool
> intel_psr_pr_async_video_timing_supported(struct intel_dp *intel_dp);
> +bool intel_psr2_in_deep_sleep(struct intel_dp *intel_dp);
> 
>  #endif /* __INTEL_PSR_H__ */
> --
> 2.43.0

Reply via email to