From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Cc: <intel-gfx@lists.freedesktop.org>,
<intel-xe@lists.freedesktop.org>, <arun.r.murthy@intel.com>
Subject: Re: [PATCH 5/5] drm/i915/dp: Enable Common SDP Transmission line
Date: Tue, 10 Mar 2026 10:31:19 +0530 [thread overview]
Message-ID: <b6b5febd-e990-46e6-a355-c04d0c141fbe@intel.com> (raw)
In-Reply-To: <aarA7lXSU00IUgjv@intel.com>
On 3/6/2026 5:26 PM, Ville Syrjälä wrote:
> On Thu, Mar 05, 2026 at 09:31:18AM +0530, Ankit Nautiyal wrote:
>> Enable the Common SDP Transmission line for the SDP packets.
>> We get the clear picture about the SDPs and guardband only in
>> intel_dp_sdp_compute_config_late() therefore we must configure the
>> crtc_state members related to Common SDP Transmission line at this
>> point.
>>
>> Currently, the stagger values are set as per the default policy of the
>> Hardware. This can be optimized later if we come up with a specific
>> driver policy to sequence the SDPs better.
>>
>> Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
>> ---
>> drivers/gpu/drm/i915/display/intel_ddi.c | 3 ++
>> drivers/gpu/drm/i915/display/intel_dp.c | 64 ++++++++++++++++++++++++
>> 2 files changed, 67 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
>> index bdbd89600bee..e1e95f18f0ed 100644
>> --- a/drivers/gpu/drm/i915/display/intel_ddi.c
>> +++ b/drivers/gpu/drm/i915/display/intel_ddi.c
>> @@ -2726,6 +2726,8 @@ static void mtl_ddi_pre_enable_dp(struct intel_atomic_state *state,
>> /* 6.o Configure and enable FEC if needed */
>> intel_ddi_enable_fec(encoder, crtc_state);
>>
>> + intel_dp_cmn_sdp_transmission_line_enable(crtc_state);
>> +
>> /* 7.a 128b/132b SST. */
>> if (!is_mst && intel_dp_is_uhbr(crtc_state)) {
>> /* VCPID 1, start slot 0 for 128b/132b, tu slots */
>> @@ -3113,6 +3115,7 @@ static void intel_ddi_buf_disable(struct intel_encoder *encoder,
>> DP_TP_CTL_ENABLE, 0);
>> }
>>
>> + intel_dp_cmn_sdp_transmission_line_disable(crtc_state);
>> intel_ddi_disable_fec(encoder, crtc_state);
>>
>> if (DISPLAY_VER(display) < 14)
>> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
>> index 59a8fa5e5ba9..87d73d0239bc 100644
>> --- a/drivers/gpu/drm/i915/display/intel_dp.c
>> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
>> @@ -7189,6 +7189,68 @@ void intel_dp_mst_resume(struct intel_display *display)
>> }
>> }
>>
>> +static
>> +void intel_dp_cmn_sdp_tl_compute_config_late(struct intel_crtc_state *crtc_state)
>> +{
>> + struct intel_display *display = to_intel_display(crtc_state);
>> + bool as_sdp, gmp_sdp, pps_sdp, vsc_sdp, vsc_ext_sdp;
>> +
>> + if (!HAS_CMN_SDP_TL(display))
>> + return;
>> +
>> + as_sdp = crtc_state->infoframes.enable &
>> + intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);
>> +
>> + gmp_sdp = crtc_state->infoframes.enable &
>> + intel_hdmi_infoframe_enable(HDMI_PACKET_TYPE_GAMUT_METADATA);
>> +
>> + pps_sdp = crtc_state->infoframes.enable &
>> + intel_hdmi_infoframe_enable(DP_SDP_PPS);
>> +
>> + vsc_sdp = crtc_state->infoframes.enable &
>> + intel_hdmi_infoframe_enable(DP_SDP_VSC);
>> +
>> + vsc_ext_sdp = crtc_state->infoframes.enable &
>> + (intel_hdmi_infoframe_enable(DP_SDP_VSC_EXT_VESA) |
>> + intel_hdmi_infoframe_enable(DP_SDP_VSC_EXT_CEA));
>> +
>> + if (!gmp_sdp && !pps_sdp && !vsc_sdp && !vsc_ext_sdp)
>> + return;
> I don't see why we wouldn't just always program this stuff.
Hmm..Yeah you are right, we can always program this stuff. By not
enabling, the transcoder will simply be ready to use its own logic.
I will drop this check and the variables to track the SDPs. Later at
some point when we want to optimize the staggering, then we might need
something like these.
Regards,
Ankit
>
>> +
>> + crtc_state->cmn_sdp_tl.enable = true;
>> +
>> + /*
>> + * When AS SDP is enabled :
>> + * - The common SDP Transmission Line matches the EMP SDP Transmission Line.
>> + *
>> + * When AS SDP is disabled:
>> + * - Bspec mentions the positions as lines of delayed vblank.
>> + * - Guardband = 1st line of delayed vblank
>> + * - Common SDP Transmission line is set to 2nd line of delayed vblank.
>> + */
>> +
>> + if (as_sdp)
>> + crtc_state->cmn_sdp_tl.transmission_line =
>> + intel_dp_emp_as_sdp_tl(crtc_state);
>> + else
>> + crtc_state->cmn_sdp_tl.transmission_line =
>> + crtc_state->vrr.guardband - 1;
>> +
>> + /*
>> + * Currently we are programming the default stagger values, but these
>> + * can be optimized if required, based on number of SDPs enabled.
>> + *
>> + * Default values of the Transmission lines for SDPs other than AS SDP:
>> + * VSC : CMN SDP Transmission line
>> + * GMP : CMN SDP Transmission line
>> + * PPS : CMN SDP Transmission line + 1
>> + * VSC_EXT: CMN SDP Transmission line + 2
>> + */
>> + crtc_state->cmn_sdp_tl.gmp_stagger = GMP_STAGGER_DEFAULT;
>> + crtc_state->cmn_sdp_tl.pps_stagger = PPS_STAGGER_DEFAULT;
>> + crtc_state->cmn_sdp_tl.vsc_ext_stagger = VSC_EXT_STAGGER_DEFAULT;
>> +}
>> +
>> static
>> int intel_dp_sdp_compute_config_late(struct intel_crtc_state *crtc_state)
>> {
>> @@ -7202,6 +7264,8 @@ int intel_dp_sdp_compute_config_late(struct intel_crtc_state *crtc_state)
>> return -EINVAL;
>> }
>>
>> + intel_dp_cmn_sdp_tl_compute_config_late(crtc_state);
>> +
>> return 0;
>> }
>>
>> --
>> 2.45.2
next prev parent reply other threads:[~2026-03-10 5:01 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-05 4:01 [PATCH 0/5] Add support for Common SDP Transmission Line Ankit Nautiyal
2026-03-05 4:01 ` [PATCH 1/5] drm/i915/nvl: Add register definitions for common " Ankit Nautiyal
2026-03-05 4:01 ` [PATCH 2/5] drm/i915/dp: Add fields to store CMN_SDP_TL register state in crtc_state Ankit Nautiyal
2026-03-06 11:55 ` Ville Syrjälä
2026-03-10 4:54 ` Nautiyal, Ankit K
2026-03-05 4:01 ` [PATCH 3/5] drm/i915/dp: Add helper for AS SDP TL and fix documentation Ankit Nautiyal
2026-03-06 12:02 ` Ville Syrjälä
2026-03-10 4:57 ` Nautiyal, Ankit K
2026-03-10 9:08 ` Ville Syrjälä
2026-03-11 11:54 ` Nautiyal, Ankit K
2026-03-11 12:04 ` Ville Syrjälä
2026-03-11 12:10 ` Nautiyal, Ankit K
2026-03-05 4:01 ` [PATCH 4/5] drm/i915/dp: Introduce helpers to enable/disable CMN SDP Transmission line Ankit Nautiyal
2026-03-05 4:01 ` [PATCH 5/5] drm/i915/dp: Enable Common " Ankit Nautiyal
2026-03-06 11:56 ` Ville Syrjälä
2026-03-10 5:01 ` Nautiyal, Ankit K [this message]
2026-03-06 0:49 ` ✗ CI.checkpatch: warning for Add support for Common SDP Transmission Line Patchwork
2026-03-06 0:50 ` ✓ CI.KUnit: success " Patchwork
2026-03-06 1:42 ` ✓ Xe.CI.BAT: " Patchwork
2026-03-06 21:10 ` ✓ Xe.CI.FULL: " Patchwork
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=b6b5febd-e990-46e6-a355-c04d0c141fbe@intel.com \
--to=ankit.k.nautiyal@intel.com \
--cc=arun.r.murthy@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=ville.syrjala@linux.intel.com \
/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