If the connected panel supports both DRRS & PSR, driver gives preference
to PSR ("DRRS enabled: no"). Even though the hardware supports DRRS,
IGT treats ("DRRS enabled: yes") as not capable.

Introduce a new entry "DRRS capable" to debugfs i915_drrs_status, so
that IGT will read the DRRS capability as "DRRS capable: yes".

Signed-off-by: Bhanuprakash Modem <bhanuprakash.mo...@intel.com>
---
 drivers/gpu/drm/i915/display/intel_drrs.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_drrs.c 
b/drivers/gpu/drm/i915/display/intel_drrs.c
index 6282ec0fc9b4..169ef38ff188 100644
--- a/drivers/gpu/drm/i915/display/intel_drrs.c
+++ b/drivers/gpu/drm/i915/display/intel_drrs.c
@@ -299,6 +299,7 @@ void intel_drrs_crtc_init(struct intel_crtc *crtc)
 static int intel_drrs_debugfs_status_show(struct seq_file *m, void *unused)
 {
        struct intel_crtc *crtc = m->private;
+       struct drm_i915_private *i915 = to_i915(crtc->base.dev);
        const struct intel_crtc_state *crtc_state;
        int ret;
 
@@ -310,6 +311,11 @@ static int intel_drrs_debugfs_status_show(struct seq_file 
*m, void *unused)
 
        mutex_lock(&crtc->drrs.mutex);
 
+       seq_printf(m, "DRRS capable: %s\n",
+                  str_yes_no(crtc_state->has_drrs ||
+                             HAS_DOUBLE_BUFFERED_M_N(i915) ||
+                             intel_cpu_transcoder_has_m2_n2(i915, 
crtc_state->cpu_transcoder)));
+
        seq_printf(m, "DRRS enabled: %s\n",
                   str_yes_no(crtc_state->has_drrs));
 
-- 
2.43.0

Reply via email to