Panel Replay is also using ALPM. Currently possible ALPM errors are
detected only when PSR2 is enabled. Detect possible ALPM errors also when
eDP Panel Replay is enabled.

Signed-off-by: Jouni Högander <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_psr.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index 99d357bfd84b7..a848c57e4ce5d 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -3866,7 +3866,8 @@ static void psr_alpm_check(struct intel_dp *intel_dp)
 {
        struct intel_psr *psr = &intel_dp->psr;
 
-       if (!psr->sel_update_enabled)
+       if ((!psr->sel_update_enabled && !intel_dp->psr.panel_replay_enabled) ||
+           !intel_dp_is_edp(intel_dp))
                return;
 
        if (intel_alpm_get_error(intel_dp)) {
@@ -3980,7 +3981,6 @@ static void _psr_short_pulse(struct intel_dp *intel_dp)
        /* clear status register */
        drm_dp_dpcd_write_byte(&intel_dp->aux, DP_PSR_ERROR_STATUS, 
error_status);
 
-       psr_alpm_check(intel_dp);
        psr_capability_changed_check(intel_dp);
 }
 
@@ -4001,6 +4001,8 @@ void intel_psr_short_pulse(struct intel_dp *intel_dp)
        else
                _psr_short_pulse(intel_dp);
 
+       psr_alpm_check(intel_dp);
+
 exit:
        mutex_unlock(&intel_dp->psr.lock);
 }
-- 
2.43.0

Reply via email to