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.

Signed-off-by: Ankit Nautiyal <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_dip.h     | 6 ++++++
 drivers/gpu/drm/i915/display/intel_display.c | 5 +++++
 2 files changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_dip.h 
b/drivers/gpu/drm/i915/display/intel_dip.h
index e9959356226e..03ef749a79ca 100644
--- a/drivers/gpu/drm/i915/display/intel_dip.h
+++ b/drivers/gpu/drm/i915/display/intel_dip.h
@@ -51,6 +51,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;
 };
 
 void intel_dip_sdp_tl_compute_config_late(struct intel_crtc_state *crtc_state);
diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index c84ee0e865ee..8807897538a4 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -5508,6 +5508,11 @@ intel_pipe_config_compare(const struct intel_crtc_state 
*current_config,
        PIPE_CONF_CHECK_I(set_context_latency);
 
        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);
 
 #undef PIPE_CONF_CHECK_X
 #undef PIPE_CONF_CHECK_I
-- 
2.45.2

Reply via email to