aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Högander <jouni.hogander@intel.com>2024-10-31 10:10:25 +0200
committerJouni Högander <jouni.hogander@intel.com>2024-11-08 11:36:43 +0200
commitf2afd9035ebdaa54ec96db217c0aeca4e58aab9a (patch)
tree28a2a5882f1fb2b2d2d09b0d065f9b7985644d2d
parentdrm/i915/hdcp: Handle HDCP Line Rekeying for HDCP 1.4 (diff)
downloadlinux-f2afd9035ebdaa54ec96db217c0aeca4e58aab9a.tar.gz
linux-f2afd9035ebdaa54ec96db217c0aeca4e58aab9a.zip
drm/i915/psr: Disable Panel Replay as well if VRR is enabled
Having Panel Replay enabled together with VRR is causing following errors: xe 0000:00:02.0: [drm] *ERROR* Timed out waiting PSR idle state xe 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00000080 xe 0000:00:02.0: [drm] *ERROR* CPU pipe A FIFO underrun xe 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00040080 xe 0000:00:02.0: [drm] *ERROR* Fault errors on pipe A: 0x00040080 Let's disable Panel Replay as well if VRR is enabled. Signed-off-by: Jouni Högander <jouni.hogander@intel.com> Reviewed-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20241031081025.3215966-1-jouni.hogander@intel.com
-rw-r--r--drivers/gpu/drm/i915/display/intel_psr.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index a784c0b81556..ed5b4d110fba 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1564,13 +1564,6 @@ static bool _psr_compute_config(struct intel_dp *intel_dp,
const struct drm_display_mode *adjusted_mode = &crtc_state->hw.adjusted_mode;
int entry_setup_frames;
- /*
- * Current PSR panels don't work reliably with VRR enabled
- * So if VRR is enabled, do not enable PSR.
- */
- if (crtc_state->vrr.enable)
- return false;
-
if (!CAN_PSR(intel_dp))
return false;
@@ -1679,6 +1672,12 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
return;
}
+ /*
+ * Currently PSR/PR doesn't work reliably with VRR enabled.
+ */
+ if (crtc_state->vrr.enable)
+ return;
+
crtc_state->has_panel_replay = _panel_replay_compute_config(intel_dp,
crtc_state,
conn_state);