Commit fde53fa1 authored by Jouni Högander's avatar Jouni Högander
Browse files

drm/i915/display: Fix vsc_sdp computation



Currently colorimetry data is not added for psr1 or non-psr case.
Fix this by adding it as needed.

Signed-off-by: default avatarJouni Högander <jouni.hogander@intel.com>
Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
Tested-by: default avatarShawn Lee <shawn.c.lee@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231220103609.1384523-5-jouni.hogander@intel.com
parent 31a5b6ed
Loading
Loading
Loading
Loading
+19 −29
Original line number Diff line number Diff line
@@ -2628,28 +2628,19 @@ 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;

	if (crtc_state->has_psr2) {
		if (intel_dp->colorimetry_support &&
		    intel_dp_needs_vsc_sdp(crtc_state, conn_state)) {
			/* [PSR2, +Colorimetry] */
	/* Needs colorimetry */
	if (intel_dp_needs_vsc_sdp(crtc_state, conn_state)) {
		intel_dp_compute_vsc_colorimetry(crtc_state, conn_state,
						 vsc);
		} else {
	} else if (crtc_state->has_psr2) {
		/*
			 * [PSR2, -Colorimetry]
		 * [PSR2 without colorimetry]
		 * Prepare VSC Header for SU as per eDP 1.4 spec, Table 6-11
		 * 3D stereo + PSR/PSR2 + Y-coordinate.
		 */
		vsc->revision = 0x4;
		vsc->length = 0xe;
		}
	} else if (crtc_state->has_panel_replay) {
		if (intel_dp->colorimetry_support &&
		    intel_dp_needs_vsc_sdp(crtc_state, conn_state)) {
			/* [Panel Replay with colorimetry info] */
			intel_dp_compute_vsc_colorimetry(crtc_state, conn_state,
							 vsc);
		} else {
		/*
		 * [Panel Replay without colorimetry info]
		 * Prepare VSC Header for SU as per DP 2.0 spec, Table 2-223
@@ -2657,7 +2648,6 @@ static void intel_dp_compute_vsc_sdp(struct intel_dp *intel_dp,
		 */
		vsc->revision = 0x6;
		vsc->length = 0x10;
		}
	} else {
		/*
		 * [PSR1]