summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnkit Nautiyal <ankit.k.nautiyal@intel.com>2026-09-15 22:16:50 +0530
committerAnkit Nautiyal <ankit.k.nautiyal@intel.com>2026-09-18 08:19:15 +0530
commit8aeed61a7d64c2e6bf1337848bc4960fadf9dfd1 (patch)
tree72f2fda17a386b3a612163e6304c01039f1c824e
parent45b6a7f1b82261400d53b8d9edba93f59c3a0b7a (diff)
downloadlinux-next-8aeed61a7d64c2e6bf1337848bc4960fadf9dfd1.tar.gz
linux-next-8aeed61a7d64c2e6bf1337848bc4960fadf9dfd1.zip
drm/i915/dip: Store SDP transmission lines in crtc_state
Currently the driver only programs the transmission line for the Adaptive-Sync SDP, while the hardware controls the transmission lines for other SDPs. Starting with Xe3p_lpd, the hardware allows the driver to program transmission lines for additional DP SDPs. Prepare for this by adding fields to struct intel_crtc_state to store SDP transmission lines, and include them in pipe config comparison. The SDP transmission line fields track vrr.vsync_start/vtotal, which are allowed to change during a seamless LRR fastset. Guard their pipe config comparison under !fastset, same as vrr.vsync_start/vsync_end, so a fastset is not unnecessarily turned into a full modeset. Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com> Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com> Link: https://patch.msgid.link/20260915164657.3429075-10-ankit.k.nautiyal@intel.com
-rw-r--r--drivers/gpu/drm/i915/display/intel_display.c5
-rw-r--r--drivers/gpu/drm/i915/display/intel_display_types.h6
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 3a495da360c6..e3e0d2f8faef 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -5602,6 +5602,11 @@ intel_pipe_config_compare(const struct intel_crtc_state *current_config,
PIPE_CONF_CHECK_I(vrr.dc_balance.max_decrease);
PIPE_CONF_CHECK_I(vrr.dc_balance.vblank_target);
PIPE_CONF_CHECK_I(dip.emp_as_sdp_tl);
+ PIPE_CONF_CHECK_I(dip.gmp_sdp_tl);
+ PIPE_CONF_CHECK_I(dip.pps_sdp_tl);
+ PIPE_CONF_CHECK_I(dip.vsc_sdp_tl);
+ PIPE_CONF_CHECK_I(dip.vsc_ext_sdp_tl);
+ PIPE_CONF_CHECK_I(dip.cmn_sdp_tl);
}
if (!fastset || intel_vrr_always_use_vrr_tg(display)) {
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 334179685ea2..79f30660c2b6 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1013,6 +1013,12 @@ struct intel_dip {
* The programmed transmit line is (Vtotal - value)
*/
u16 emp_as_sdp_tl;
+ u16 gmp_sdp_tl;
+ u16 pps_sdp_tl;
+ u16 vsc_sdp_tl;
+ u16 vsc_ext_sdp_tl;
+ /* Common SDP Base transmission line (Xe3p_lpd+) */
+ u16 cmn_sdp_tl;
};
struct intel_crtc_state {