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

drm/i915/psr: Add new function for writing sink panel replay enable bit



According to DP/eDP specification only DP_PANEL_REPLAY_ENABLE has to be set
prior link training. For this purpose add a new function which sets this
bit on sink side if Panel Replay is supported by the sink and the source.

Signed-off-by: default avatarJouni Högander <jouni.hogander@intel.com>
Reviewed-by: default avatarMika Kahola <mika.kahola@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250109103532.2093356-2-jouni.hogander@intel.com
parent 67a98f7e
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -827,6 +827,13 @@ void intel_psr_enable_sink(struct intel_dp *intel_dp,
		drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER, DP_SET_POWER_D0);
}

void intel_psr_panel_replay_enable_sink(struct intel_dp *intel_dp)
{
	if (CAN_PANEL_REPLAY(intel_dp))
		drm_dp_dpcd_writeb(&intel_dp->aux, PANEL_REPLAY_CONFIG,
				   DP_PANEL_REPLAY_ENABLE);
}

static u32 intel_psr1_get_tp_time(struct intel_dp *intel_dp)
{
	struct intel_display *display = to_intel_display(intel_dp);
+1 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ bool intel_psr_needs_aux_io_power(struct intel_encoder *encoder,
void intel_psr_init_dpcd(struct intel_dp *intel_dp);
void intel_psr_enable_sink(struct intel_dp *intel_dp,
			   const struct intel_crtc_state *crtc_state);
void intel_psr_panel_replay_enable_sink(struct intel_dp *intel_dp);
void intel_psr_pre_plane_update(struct intel_atomic_state *state,
				struct intel_crtc *crtc);
void intel_psr_post_plane_update(struct intel_atomic_state *state,