Right now the only user of psr_pause/resume is intel_cdclk but
additional users will be added in the future and we may need
do reference counting for PSR pause and resume, for now only adding a
warn_on so this cases do not go unnoticed.

Cc: Mika Kahola <mika.kah...@intel.com>
Cc: Jouni Hogander <jouni.hogan...@intel.com>
Cc: Radhakrishna Sripada <radhakrishna.srip...@intel.com>
Signed-off-by: José Roberto de Souza <jose.so...@intel.com>
---
 drivers/gpu/drm/i915/display/intel_psr.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index 7a205fd5023bb..49c2dfbd40554 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1346,6 +1346,7 @@ void intel_psr_disable(struct intel_dp *intel_dp,
  */
 void intel_psr_pause(struct intel_dp *intel_dp)
 {
+       struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
        struct intel_psr *psr = &intel_dp->psr;
 
        if (!CAN_PSR(intel_dp))
@@ -1358,6 +1359,9 @@ void intel_psr_pause(struct intel_dp *intel_dp)
                return;
        }
 
+       /* If we ever hit this, we will need to add refcount to pause/resume */
+       drm_WARN_ON(&dev_priv->drm, psr->paused);
+
        intel_psr_exit(intel_dp);
        intel_psr_wait_exit_locked(intel_dp);
        psr->paused = true;
-- 
2.33.1

Reply via email to