Commit 397b51ef authored by Jouni Högander's avatar Jouni Högander
Browse files

drm/i915/psr: 128b/132b Panel Replay is not supported on eDP



Take into account that 128b/132b Panel Replay is not supported on eDP.

Bspec: 68920

v2:
  - make crtc_state as const
  - add debug message to print out why Panel Replay is not possible

Signed-off-by: default avatarJouni Högander <jouni.hogander@intel.com>
Reviewed-by: default avatarAnimesh Manna <animesh.manna@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240619062131.4021196-6-jouni.hogander@intel.com
parent 5d9993f8
Loading
Loading
Loading
Loading
+19 −2
Original line number Diff line number Diff line
@@ -1517,7 +1517,10 @@ static bool _psr_compute_config(struct intel_dp *intel_dp,
	return true;
}

static bool _panel_replay_compute_config(struct intel_dp *intel_dp)
static bool
_panel_replay_compute_config(struct intel_dp *intel_dp,
			     const struct intel_crtc_state *crtc_state,
			     const struct drm_connector_state *conn_state)
{
	struct drm_i915_private *i915 = dp_to_i915(intel_dp);

@@ -1529,6 +1532,18 @@ static bool _panel_replay_compute_config(struct intel_dp *intel_dp)
		return false;
	}

	if (!intel_dp_is_edp(intel_dp))
		return true;

	/* Remaining checks are for eDP only */

	/* 128b/132b Panel Replay is not supported on eDP */
	if (intel_dp_is_uhbr(crtc_state)) {
		drm_dbg_kms(&i915->drm,
			    "Panel Replay is not supported with 128b/132b\n");
		return false;
	}

	return true;
}

@@ -1567,7 +1582,9 @@ void intel_psr_compute_config(struct intel_dp *intel_dp,
		return;
	}

	crtc_state->has_panel_replay = _panel_replay_compute_config(intel_dp);
	crtc_state->has_panel_replay = _panel_replay_compute_config(intel_dp,
								    crtc_state,
								    conn_state);

	crtc_state->has_psr = crtc_state->has_panel_replay ? true :
		_psr_compute_config(intel_dp, crtc_state);