On 7/17/2026 9:58 AM, Samala, Pranay wrote:
Hi Chaitanya,

-----Original Message-----
From: Intel-xe <[email protected]> On Behalf Of
Chaitanya Kumar Borah
Sent: Thursday, July 9, 2026 5:10 PM
To: [email protected]; [email protected]
Cc: Borah, Chaitanya Kumar <[email protected]>
Subject: [PATCH 2/2] drm/i915/dp: set VSC_SDP MSA delegation only for
capable sinks

Per DP 1.4a section 2.2.4.3, the MSA MISC1 VSC_SDP bit signals that the sink
should defer colorimetry to the VSC SDP. It should only be set when the sink
advertises DP_VSC_SDP_EXT_FOR_COLORIMETRY_SUPPORTED and a VSC SDP
with pixel encoding/colorimetry payload will actually be sent.

Fold the colorimetry_support check into intel_dp_needs_vsc_colorimetry()
so both intel_ddi_set_dp_msa() and intel_dp_compute_vsc_sdp() share a
single consistent gate.

Assisted-by: GitHub_Copilot:claude-sonnet-4.6
Signed-off-by: Chaitanya Kumar Borah <[email protected]>

Changes LGTM,
Reviewed-by: Pranay Samala <[email protected]>

pushed to drm-intel-next. Thank you for the review.


---
  drivers/gpu/drm/i915/display/intel_ddi.c |  2 ++
drivers/gpu/drm/i915/display/intel_dp.c  | 14 ++++++++++----
  2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_ddi.c
b/drivers/gpu/drm/i915/display/intel_ddi.c
index c764472bd69a..13010375e21b 100644
--- a/drivers/gpu/drm/i915/display/intel_ddi.c
+++ b/drivers/gpu/drm/i915/display/intel_ddi.c
@@ -469,6 +469,8 @@ void intel_ddi_set_dp_msa(const struct
intel_crtc_state *crtc_state,
         * of Color Encoding Format and Content Color Gamut] while sending
         * YCBCR 420, HDR BT.2020 signals we should program MSA MISC1
fields
         * which indicate VSC SDP for the Pixel Encoding/Colorimetry Format.
+        * Only set the delegation bit when the content needs it and
+        * the sink advertises support.
         */
        if (intel_dp_needs_vsc_colorimetry(crtc_state, conn_state))
                temp |= DP_MSA_MISC_COLOR_VSC_SDP;
diff --git a/drivers/gpu/drm/i915/display/intel_dp.c
b/drivers/gpu/drm/i915/display/intel_dp.c
index 93282694c29b..53688c5bef74 100644
--- a/drivers/gpu/drm/i915/display/intel_dp.c
+++ b/drivers/gpu/drm/i915/display/intel_dp.c
@@ -3163,8 +3163,7 @@ static void intel_dp_compute_vsc_sdp(struct
intel_dp *intel_dp,  {
        struct drm_dp_vsc_sdp *vsc;

-       if ((!intel_dp->colorimetry_support ||
-            !intel_dp_needs_vsc_colorimetry(crtc_state, conn_state)) &&
+       if (!intel_dp_needs_vsc_colorimetry(crtc_state, conn_state) &&
            !crtc_state->has_psr)
                return;

@@ -3173,7 +3172,6 @@ static void intel_dp_compute_vsc_sdp(struct
intel_dp *intel_dp,
        crtc_state->infoframes.enable |=
intel_hdmi_infoframe_enable(DP_SDP_VSC);
        vsc->sdp_type = DP_SDP_VSC;

-       /* Needs colorimetry */
        if (intel_dp_needs_vsc_colorimetry(crtc_state, conn_state)) {
                intel_dp_compute_vsc_colorimetry(crtc_state, conn_state,
                                                 vsc);
@@ -5103,11 +5101,19 @@ bool
  intel_dp_needs_vsc_colorimetry(const struct intel_crtc_state *crtc_state,
                               const struct drm_connector_state *conn_state)  {
+       struct intel_dp *intel_dp =
+               enc_to_intel_dp(to_intel_encoder(conn_state-
best_encoder));
+
        /*
         * As per DP 1.4a spec section 2.2.4.3 [MSA Field for Indication
         * of Color Encoding Format and Content Color Gamut], in order to
-        * sending YCBCR 420 or HDR BT.2020 signals we should use DP VSC
SDP.
+        * send YCBCR 420 or HDR BT.2020 signals we should use DP VSC SDP.
+        * Only signal this when the sink advertises VSC SDP colorimetry
+        * support.
         */
+       if (!intel_dp->colorimetry_support)
+               return false;
+
        if (crtc_state->output_format ==
INTEL_OUTPUT_FORMAT_YCBCR420)
                return true;

--
2.25.1


Reply via email to