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

Bspec: 53370, 68920

v2:
  - use intel_dp_is_edp to differentiate
  - modify debugfs status as well

Signed-off-by: Jouni Högander <jouni.hogan...@intel.com>
---
 drivers/gpu/drm/i915/display/intel_psr.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index 111eb7d6bc1c..bba1063ccd2e 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -2849,7 +2849,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_is_edp(intel_dp) &&
+                   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);
@@ -2870,7 +2871,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 {
@@ -3489,7 +3491,7 @@ psr_source_status(struct intel_dp *intel_dp, struct 
seq_file *m)
        const char *status = "unknown";
        u32 val, status_val;
 
-       if (intel_dp->psr.sel_update_enabled) {
+       if (intel_dp_is_edp(intel_dp)) {
                static const char * const live_status[] = {
                        "IDLE",
                        "CAPTURE",
-- 
2.34.1

Reply via email to