drm/i915/psr: Disable PSR when bigjoiner is used
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 4 Apr 2024 21:34:26 +0000 (00:34 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 8 Apr 2024 12:27:24 +0000 (15:27 +0300)
Bigjoiner seem to be causing all kinds of grief to the PSR
code currently. I don't believe there is any hardware issue
but the code simply not handling this correctly. For now
just disable PSR when bigjoiner is needed.

Cc: stable@vger.kernel.org
Link: https://patchwork.freedesktop.org/patch/msgid/20240404213441.17637-3-ville.syrjala@linux.intel.com
Reviewed-by: Arun R Murthy <arun.r.mruthy@intel.com>
Acked-by: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
drivers/gpu/drm/i915/display/intel_psr.c

index 4db6c19731e96eb3df73eef7e60e55c2f8bf0e3f..7af974bb41ca224ac3bfee608303936afc68a34e 100644 (file)
@@ -1619,6 +1619,17 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
                return;
        }
 
+       /*
+        * FIXME figure out what is wrong with PSR+bigjoiner and
+        * fix it. Presumably something related to the fact that
+        * PSR is a transcoder level feature.
+        */
+       if (crtc_state->bigjoiner_pipes) {
+               drm_dbg_kms(&dev_priv->drm,
+                           "PSR disabled due to bigjoiner\n");
+               return;
+       }
+
        if (CAN_PANEL_REPLAY(intel_dp))
                crtc_state->has_panel_replay = true;