RE: [PATCH 2/2] drm/i915/dp: set VSC_SDP MSA delegation only for capable sinks

"Samala, Pranay" <[email protected]>
Newsgroups org.freedesktop.lists.intel-gfx,org.freedesktop.lists.intel-xe
Message-ID <PH7PR11MB6053F45F0786D4A5261247C7E7C62@PH7PR11MB6053.namprd11.prod.outlook.com>
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]>

> ---
>  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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.