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
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.