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 v6 06/13] drm/i915/dip: Store and use AS SDP transmission line from crtc state
Date: Sun, 13 Sep 2026 20:26:41 +0530 [thread overview]
Message-ID: <20260913145649.3240904-7-ankit.k.nautiyal@intel.com> (raw)
In-Reply-To: <20260913145649.3240904-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 | 3 +++
4 files changed, 19 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 25bae4a04d6b..20f9aeb85c39 100644
--- a/drivers/gpu/drm/i915/display/intel_dip.h
+++ b/drivers/gpu/drm/i915/display/intel_dip.h
@@ -35,4 +35,7 @@ struct intel_crtc_state;
u16 intel_dip_read_emp_as_sdp_tl(const struct intel_crtc_state *crtc_state);
void intel_dip_write_emp_as_sdp_tl(const struct intel_crtc_state *crtc_state);
+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..8c3a324e164e 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -61,6 +61,7 @@
#include "intel_cx0_phy.h"
#include "intel_ddi.h"
#include "intel_de.h"
+#include "intel_dip.h"
#include "intel_display_driver.h"
#include "intel_display_jiffies.h"
#include "intel_display_utils.h"
@@ -7324,6 +7325,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-13 15:13 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-13 14:56 [PATCH v6 00/13] Add support for Common SDP Transmission Line Ankit Nautiyal
2026-09-13 14:56 ` [PATCH v6 01/13] drm/i915/dip: Add new file to handle Data Island Packet hardware Ankit Nautiyal
2026-09-13 14:56 ` [PATCH v6 02/13] drm/i915/vrr: Use the helper to write EMP_AS_SDP_TL register Ankit Nautiyal
2026-09-13 14:56 ` [PATCH v6 03/13] drm/i915/intel_dip: Add check for DP encoder Ankit Nautiyal
2026-09-13 14:56 ` [PATCH v6 04/13] drm/i915/dip: Add helper to get AS SDP Transmission Line Ankit Nautiyal
2026-09-15 3:59 ` Kandpal, Suraj
2026-09-13 14:56 ` [PATCH v6 05/13] drm/i915/display: Add crtc state for DIP transmission lines Ankit Nautiyal
2026-09-15 4:00 ` Kandpal, Suraj
2026-09-13 14:56 ` Ankit Nautiyal [this message]
2026-09-13 15:30 ` [PATCH v6 06/13] drm/i915/dip: Store and use AS SDP transmission line from crtc state sashiko-bot
2026-09-15 9:06 ` Kandpal, Suraj
2026-09-13 14:56 ` [PATCH v6 07/13] drm/i915/dip_regs: Add register definitions for common SDP Transmission Line Ankit Nautiyal
2026-09-13 14:56 ` [PATCH v6 08/13] drm/i915/dip: Add HAS_COMMON_SDP_TL macro Ankit Nautiyal
2026-09-13 14:56 ` [PATCH v6 09/13] drm/i915/dip: Store SDP transmission lines in crtc_state Ankit Nautiyal
2026-09-13 14:56 ` [PATCH v6 10/13] drm/i915/dp: Introduce helpers to enable/disable CMN SDP Transmission line Ankit Nautiyal
2026-09-15 4:03 ` Kandpal, Suraj
2026-09-13 14:56 ` [PATCH v6 11/13] drm/i915/dip: Enable Common " Ankit Nautiyal
2026-09-13 15:33 ` sashiko-bot
2026-09-15 9:15 ` Kandpal, Suraj
2026-09-13 14:56 ` [PATCH v6 12/13] drm/i915/dp: Adjust SDP guardband requirement for CMN_SDP_TL Ankit Nautiyal
2026-09-13 15:25 ` sashiko-bot
2026-09-15 4:06 ` Kandpal, Suraj
2026-09-13 14:56 ` [PATCH v6 13/13] drm/i915/display: Dump DIP Transmission lines Ankit Nautiyal
2026-09-13 15:22 ` ✗ CI.checkpatch: warning for Add support for Common SDP Transmission Line (rev6) Patchwork
2026-09-13 15:25 ` ✓ CI.KUnit: success " Patchwork
2026-09-13 16:02 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-13 16:12 ` ✗ i915.CI.BAT: failure " Patchwork
2026-09-13 17:04 ` ✓ Xe.CI.FULL: success " Patchwork
2026-09-15 6:01 ` ✓ i915.CI.BAT: " Patchwork
2026-09-15 9:52 ` ✗ i915.CI.Full: failure " 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=20260913145649.3240904-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 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.