From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
To: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: ville.syrjala@linux.intel.com, arun.r.murthy@intel.com,
jani.nikula@linux.intel.com, suraj.kandpal@intel.com,
Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Subject: [PATCH v5 06/12] drm/i915/dip: Store and use AS SDP transmission line from crtc state
Date: Tue, 8 Sep 2026 11:52:17 +0530 [thread overview]
Message-ID: <20260908062224.2897987-7-ankit.k.nautiyal@intel.com> (raw)
In-Reply-To: <20260908062224.2897987-1-ankit.k.nautiyal@intel.com>
The driver currently computes the Adaptive Sync SDP transmission line
directly at programming time. Instead, compute and store the
AS SDP transmission line in the crtc state and use it when programming the
EMP_AS_SDP_TL register.
We get the clear picture about the SDPs and guardband only in
intel_dp_sdp_compute_config_late() therefore we must configure the
AS SDP transmission line at this point when AS SDP is enabled in
crtc_state.
This prepares the ground for supporting programmable transmission lines
for additional DP SDPs.
While moving the helper into intel_dip.c, drop the
intel_crtc_has_dp_encoder() check instead of relocating it. It was
needed in the old VRR write path shared by other encoderes as well, but
intel_dip_sdp_tl_compute_config_late() is only reached via DP, so HDMI
never sets crtc_state->dip.emp_as_sdp_tl and it stays 0 by default.
v2:
- Move the helper into intel_dip.c and drop the
intel_crtc_has_dp_encoder() check.
- Drop the redundant checks. (Suraj)
Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
---
drivers/gpu/drm/i915/display/intel_ddi.c | 2 ++
drivers/gpu/drm/i915/display/intel_dip.c | 20 +++++++++++---------
drivers/gpu/drm/i915/display/intel_dip.h | 3 +++
drivers/gpu/drm/i915/display/intel_dp.c | 2 ++
4 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c b/drivers/gpu/drm/i915/display/intel_ddi.c
index 9b3b526e5e55..dacb4b7588a0 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -49,6 +49,7 @@
#include "intel_ddi.h"
#include "intel_ddi_buf_trans.h"
#include "intel_de.h"
+#include "intel_dip.h"
#include "intel_display_power.h"
#include "intel_display_regs.h"
#include "intel_display_types.h"
@@ -4235,6 +4236,7 @@ static void intel_ddi_get_config(struct intel_encoder *encoder,
intel_read_dp_sdp(encoder, pipe_config, HDMI_PACKET_TYPE_GAMUT_METADATA);
intel_read_dp_sdp(encoder, pipe_config, DP_SDP_VSC);
intel_read_dp_sdp(encoder, pipe_config, DP_SDP_ADAPTIVE_SYNC);
+ intel_dip_sdp_transmission_line_get_config(pipe_config);
intel_audio_codec_get_config(encoder, pipe_config);
}
diff --git a/drivers/gpu/drm/i915/display/intel_dip.c b/drivers/gpu/drm/i915/display/intel_dip.c
index 0277b15e1c82..d1acc7eb5a39 100644
--- a/drivers/gpu/drm/i915/display/intel_dip.c
+++ b/drivers/gpu/drm/i915/display/intel_dip.c
@@ -43,19 +43,21 @@ void intel_dip_write_emp_as_sdp_tl(const struct intel_crtc_state *crtc_state)
{
struct intel_display *display = to_intel_display(crtc_state);
enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
- u32 transmission_line = 0;
if (!HAS_EMP_AS_SDP_TL(display))
return;
- /*
- * Since we currently support VRR only for DP/eDP, program the register
- * for Adaptive Sync SDP using vsync start. For non-DP encoders,
- * the register is reset to 0.
- */
- if (intel_crtc_has_dp_encoder(crtc_state))
- transmission_line = intel_dip_get_as_sdp_transmission_line(crtc_state);
intel_de_write(display,
EMP_AS_SDP_TL(display, cpu_transcoder),
- EMP_AS_SDP_DB_TL(transmission_line));
+ EMP_AS_SDP_DB_TL(crtc_state->dip.emp_as_sdp_tl));
+}
+
+void intel_dip_sdp_tl_compute_config_late(struct intel_crtc_state *crtc_state)
+{
+ crtc_state->dip.emp_as_sdp_tl = intel_dip_get_as_sdp_transmission_line(crtc_state);
+}
+
+void intel_dip_sdp_transmission_line_get_config(struct intel_crtc_state *crtc_state)
+{
+ crtc_state->dip.emp_as_sdp_tl = intel_dip_read_emp_as_sdp_tl(crtc_state);
}
diff --git a/drivers/gpu/drm/i915/display/intel_dip.h b/drivers/gpu/drm/i915/display/intel_dip.h
index 37507ac3e645..600dabbf7372 100644
--- a/drivers/gpu/drm/i915/display/intel_dip.h
+++ b/drivers/gpu/drm/i915/display/intel_dip.h
@@ -43,4 +43,7 @@ struct intel_dip {
u16 emp_as_sdp_tl;
};
+void intel_dip_sdp_tl_compute_config_late(struct intel_crtc_state *crtc_state);
+void intel_dip_sdp_transmission_line_get_config(struct intel_crtc_state *crtc_state);
+
#endif /* __INTEL_DIP_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
index 0cd5e6b5034c..eed4fca2b985 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -7324,6 +7324,8 @@ int intel_dp_sdp_compute_config_late(struct intel_crtc_state *crtc_state)
return -EINVAL;
}
+ intel_dip_sdp_tl_compute_config_late(crtc_state);
+
return 0;
}
--
2.50.1
next prev parent reply other threads:[~2026-09-08 6:39 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-08 6:22 [PATCH v5 00/12] Add support for Common SDP Transmission Line Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 01/12] drm/i915/dip: Add new file to handle Data Island Packet hardware Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 02/12] drm/i915/vrr: Use the helper to write EMP_AS_SDP_TL register Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 03/12] drm/i915/intel_dip: Add check for DP encoder Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 04/12] drm/i915/dip: Add helper to get AS SDP Transmission Line Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 05/12] drm/i915/display: Add crtc state for DIP transmission lines Ankit Nautiyal
2026-09-08 6:22 ` Ankit Nautiyal [this message]
2026-09-08 7:09 ` [PATCH v5 06/12] drm/i915/dip: Store and use AS SDP transmission line from crtc state sashiko-bot
2026-09-10 2:47 ` Nautiyal, Ankit K
2026-09-08 6:22 ` [PATCH v5 07/12] drm/i915/dip_regs: Add register definitions for common SDP Transmission Line Ankit Nautiyal
2026-09-08 7:49 ` Kandpal, Suraj
2026-09-08 6:22 ` [PATCH v5 08/12] drm/i915/dip: Add HAS_COMMON_SDP_TL macro Ankit Nautiyal
2026-09-08 6:22 ` [PATCH v5 09/12] drm/i915/dip: Store SDP transmission lines in crtc_state Ankit Nautiyal
2026-09-08 7:50 ` Kandpal, Suraj
2026-09-08 6:22 ` [PATCH v5 10/12] drm/i915/dp: Introduce helpers to enable/disable CMN SDP Transmission line Ankit Nautiyal
2026-09-08 7:12 ` sashiko-bot
2026-09-10 2:48 ` Nautiyal, Ankit K
2026-09-08 6:22 ` [PATCH v5 11/12] drm/i915/dip: Enable Common " Ankit Nautiyal
2026-09-08 7:11 ` sashiko-bot
2026-09-10 4:49 ` Nautiyal, Ankit K
2026-09-08 8:10 ` Kandpal, Suraj
2026-09-10 4:54 ` Nautiyal, Ankit K
2026-09-08 6:22 ` [PATCH v5 12/12] drm/i915/display: Dump DIP Transmission lines Ankit Nautiyal
2026-09-08 8:03 ` Kandpal, Suraj
2026-09-08 9:52 ` ✗ i915.CI.BAT: failure for Add support for Common SDP Transmission Line (rev5) 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=20260908062224.2897987-7-ankit.k.nautiyal@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=jani.nikula@linux.intel.com \
--cc=suraj.kandpal@intel.com \
--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