[PATCH 3/4] drm/i915/ptl/dp_mst: Align slave transcoder sequences with spec wrt. DP2 config

Imre Deak imre.deak at intel.com
Tue Oct 29 19:12:14 UTC 2024


On PTL during modeset enabling and disabling enable and disable the DP2
configuration for MST slave transcoders as required by the specification.

The spec requires the same programming steps on ADLP+ platforms as well,
this will be addressed by the next patch.

Bspec: 68849
Signed-off-by: Imre Deak <imre.deak at intel.com>
---
 drivers/gpu/drm/i915/display/intel_dp_mst.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 7c16406883594..b1eee8500a383 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -1057,6 +1057,9 @@ static void intel_mst_post_disable_dp(struct intel_atomic_state *state,
 
 	intel_ddi_disable_transcoder_func(old_crtc_state);
 
+	if (DISPLAY_VER(dev_priv) >= 30 && !last_mst_stream)
+		intel_ddi_config_transcoder_dp2(encoder, old_crtc_state, false);
+
 	for_each_pipe_crtc_modeset_disable(display, pipe_crtc, old_crtc_state, i) {
 		const struct intel_crtc_state *old_pipe_crtc_state =
 			intel_atomic_get_old_crtc_state(state, pipe_crtc);
@@ -1224,8 +1227,10 @@ static void intel_mst_pre_enable_dp(struct intel_atomic_state *state,
 	if (DISPLAY_VER(dev_priv) < 12 || !first_mst_stream)
 		intel_ddi_enable_transcoder_clock(encoder, pipe_config);
 
-	if (DISPLAY_VER(dev_priv) >= 30 && !first_mst_stream)
+	if (DISPLAY_VER(dev_priv) >= 30 && !first_mst_stream) {
+		intel_ddi_config_transcoder_dp2(encoder, pipe_config, true);
 		intel_ddi_config_transcoder_func(encoder, pipe_config);
+	}
 
 	intel_dsc_dp_pps_write(&dig_port->base, pipe_config);
 	intel_ddi_set_dp_msa(pipe_config, conn_state);
-- 
2.44.2



More information about the Intel-gfx mailing list