Panel replay uses SRD_STATUS to track it's status despite selective update
mode.

Bspec: 53370

Signed-off-by: Jouni Högander <jouni.hogan...@intel.com>
---
 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 617ffd1854dc..01785587adbb 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -2547,7 +2547,8 @@ void intel_psr_wait_for_idle_locked(const struct 
intel_crtc_state *new_crtc_stat
                if (!intel_dp->psr.enabled)
                        continue;
 
-               if (intel_dp->psr.sel_update_enabled)
+               if (!intel_dp->psr.panel_replay_enabled &&
+                   intel_dp->psr.sel_update_enabled)
                        ret = _psr2_ready_for_pipe_update_locked(intel_dp);
                else
                        ret = _psr1_ready_for_pipe_update_locked(intel_dp);
@@ -2568,7 +2569,8 @@ static bool __psr_wait_for_idle_locked(struct intel_dp 
*intel_dp)
        if (!intel_dp->psr.enabled)
                return false;
 
-       if (intel_dp->psr.sel_update_enabled) {
+       if (!intel_dp->psr.panel_replay_enabled &&
+           intel_dp->psr.sel_update_enabled) {
                reg = EDP_PSR2_STATUS(cpu_transcoder);
                mask = EDP_PSR2_STATUS_STATE_MASK;
        } else {
-- 
2.34.1

Reply via email to