public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: intel-gfx@lists.freedesktop.org
Subject: [PATCH v2 1/5] drm/i915/ptl/dp_mst: Fix slave transcoder enabling wrt. DDI function
Date: Wed, 30 Oct 2024 21:23:09 +0200	[thread overview]
Message-ID: <20241030192313.4030617-2-imre.deak@intel.com> (raw)
In-Reply-To: <20241030192313.4030617-1-imre.deak@intel.com>

On PTL during modeset enabling configure the DDI function without
enabling it for MST slave transcoders before programming the data and
link M/N values. The DDI function gets enabled separately later in the
transcoder enabling sequence.

This fixes a slave transcoder getting stuck during enabling, leading
to page flip timeout errors on the corresponding pipe.

The spec requires the same programming step for ADLP+ platforms, that
will be addressed separately (on those platforms the above transcoder
getting stuck issue was not observed).

Bspec: 68849
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 drivers/gpu/drm/i915/display/intel_ddi.c    | 2 +-
 drivers/gpu/drm/i915/display/intel_ddi.h    | 2 ++
 drivers/gpu/drm/i915/display/intel_dp_mst.c | 3 +++
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 2bd14e2134be9..069cca4b38b2e 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -619,7 +619,7 @@ void intel_ddi_enable_transcoder_func(struct intel_encoder *encoder,
  * Same as intel_ddi_enable_transcoder_func(), but it does not set the enable
  * bit.
  */
-static void
+void
 intel_ddi_config_transcoder_func(struct intel_encoder *encoder,
 				 const struct intel_crtc_state *crtc_state)
 {
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.h b/drivers/gpu/drm/i915/display/intel_ddi.h
index 6d85422bdefef..1aa2e3a190aee 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.h
+++ b/drivers/gpu/drm/i915/display/intel_ddi.h
@@ -57,6 +57,8 @@ void intel_wait_ddi_buf_idle(struct drm_i915_private *dev_priv,
 void intel_ddi_init(struct intel_display *display,
 		    const struct intel_bios_encoder_data *devdata);
 bool intel_ddi_get_hw_state(struct intel_encoder *encoder, enum pipe *pipe);
+void intel_ddi_config_transcoder_func(struct intel_encoder *encoder,
+				      const struct intel_crtc_state *crtc_state);
 void intel_ddi_enable_transcoder_func(struct intel_encoder *encoder,
 				      const struct intel_crtc_state *crtc_state);
 void intel_ddi_disable_transcoder_func(const struct intel_crtc_state *crtc_state);
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
index 1a2ff3e1cb68f..7c16406883594 100644
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@ -1224,6 +1224,9 @@ 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)
+		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


  reply	other threads:[~2024-10-30 19:23 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-30 19:23 [PATCH v2 0/5] drm/dp_mst: Fix DDI function/DP2 config programming Imre Deak
2024-10-30 19:23 ` Imre Deak [this message]
2024-10-31 10:44   ` [PATCH v2 1/5] drm/i915/ptl/dp_mst: Fix slave transcoder enabling wrt. DDI function Luca Coelho
2024-10-31 10:57     ` Imre Deak
2024-10-31 10:59       ` Luca Coelho
2024-10-30 19:23 ` [PATCH v2 2/5] drm/i915/adlp+/dp_mst: Align slave transcoder enabling with spec " Imre Deak
2024-10-31 10:49   ` Luca Coelho
2024-10-31 11:40     ` Imre Deak
2024-11-06 12:38       ` Luca Coelho
2024-10-30 19:23 ` [PATCH v2 3/5] drm/i915/dp_mst: Add a way to disable the DP2 config Imre Deak
2024-10-31 10:52   ` Luca Coelho
2024-10-31 12:36   ` Jani Nikula
2024-10-31 12:42     ` Imre Deak
2024-10-30 19:23 ` [PATCH v2 4/5] drm/i915/adlp+/dp_mst: Align slave transcoder sequences with spec wrt. " Imre Deak
2024-10-31 10:54   ` Luca Coelho
2024-10-30 19:23 ` [PATCH v2 5/5] drm/i915/adlp+/dp_mst: Align master transcoder disabling " Imre Deak
2024-10-31 10:56   ` Luca Coelho
2024-10-31 11:03     ` Imre Deak
2024-10-30 19:50 ` ✗ Fi.CI.SPARSE: warning for drm/dp_mst: Fix DDI function/DP2 config programming Patchwork
2024-10-30 21:24 ` ✗ Fi.CI.BAT: failure " Patchwork
2024-10-30 21:47   ` Imre Deak
2024-11-04 10:50     ` Illipilli, TejasreeX
2024-11-04 10:41 ` ✓ Fi.CI.BAT: success " Patchwork
2024-11-04 16:24 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-11-06 16:29   ` Imre Deak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241030192313.4030617-2-imre.deak@intel.com \
    --to=imre.deak@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox