LGTM 

Reviewed-by: Jeevan B <jeeva...@intel.com>

> -----Original Message-----
> From: Intel-gfx <intel-gfx-boun...@lists.freedesktop.org> On Behalf Of Jouni
> Högander
> Sent: Tuesday, August 26, 2025 1:15 PM
> To: intel-gfx@lists.freedesktop.org; intel...@lists.freedesktop.org
> Cc: Hogander, Jouni <jouni.hogan...@intel.com>
> Subject: [PATCH] drm/i915/psr: Check PSR pause counter in
> __psr_wait_for_idle_locked
> 
> PSR work is using __psr_wait_for_idle_locked to ensure PSR exit is completed
> before continuing to PSR activation. __psr_wait_for_idle_locked is unlocking
> PSR mutex which allows PSR disable/enable and PSR pause/resume while PSR
> idle is being wait. PSR enable status is already checked after locking again 
> PSR
> mutex but PSR pause counter check is missing. Due to this PSR work may
> continue to PSR activation even PSR is paused.
> 
> Fix this by checking PSR pause counter in __psr_wait_for_idle_locked after PSR
> mutex is locked again.
> 
> Signed-off-by: Jouni Högander <jouni.hogan...@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_psr.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index eec4f7dc2d66..8b4cdf9b30db 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -3092,7 +3092,7 @@ static bool __psr_wait_for_idle_locked(struct
> intel_dp *intel_dp)
> 
>       /* After the unlocked wait, verify that PSR is still wanted! */
>       mutex_lock(&intel_dp->psr.lock);
> -     return err == 0 && intel_dp->psr.enabled;
> +     return err == 0 && intel_dp->psr.enabled &&
> +!intel_dp->psr.pause_counter;
>  }
> 
>  static int intel_psr_fastset_force(struct intel_display *display)
> --
> 2.43.0

Reply via email to