Commit 4f6993b3 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-intel-fixes-2025-02-06' of...

Merge tag 'drm-intel-fixes-2025-02-06' of https://gitlab.freedesktop.org/drm/i915/kernel

 into drm-fixes

- Fix the build error with clamp after WARN_ON on gcc 13.x+ (Guenter)
- HDCP related fixes (Suraj)
- PMU fix zero delta busyness issue (Umesh)
- Fix page cleanup on DMA remap failure (Brian)
- Drop 64bpp YUV formats from ICL+ SDR planes (Ville)
- GuC log related fix (Daniele)
- DisplayPort related fixes (Ankit, Jani)

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/Z6TDHpgI6dnOc0KI@intel.com
parents 7fa68b9f 069504f1
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -41,8 +41,9 @@ static u32 scale(u32 source_val,
{
	u64 target_val;

	WARN_ON(source_min > source_max);
	WARN_ON(target_min > target_max);
	if (WARN_ON(source_min >= source_max) ||
	    WARN_ON(target_min > target_max))
		return target_min;

	/* defensive */
	source_val = clamp(source_val, source_min, source_max);
+5 −7
Original line number Diff line number Diff line
@@ -1791,7 +1791,7 @@ int intel_dp_dsc_max_src_input_bpc(struct intel_display *display)
	if (DISPLAY_VER(display) == 11)
		return 10;

	return 0;
	return intel_dp_dsc_min_src_input_bpc();
}

int intel_dp_dsc_compute_max_bpp(const struct intel_connector *connector,
@@ -2072,11 +2072,10 @@ icl_dsc_compute_link_config(struct intel_dp *intel_dp,
	/* Compressed BPP should be less than the Input DSC bpp */
	dsc_max_bpp = min(dsc_max_bpp, pipe_bpp - 1);

	for (i = 0; i < ARRAY_SIZE(valid_dsc_bpp); i++) {
		if (valid_dsc_bpp[i] < dsc_min_bpp)
	for (i = ARRAY_SIZE(valid_dsc_bpp) - 1; i >= 0; i--) {
		if (valid_dsc_bpp[i] < dsc_min_bpp ||
		    valid_dsc_bpp[i] > dsc_max_bpp)
			continue;
		if (valid_dsc_bpp[i] > dsc_max_bpp)
			break;

		ret = dsc_compute_link_config(intel_dp,
					      pipe_config,
@@ -2829,7 +2828,6 @@ static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,

	crtc_state->infoframes.enable |= intel_hdmi_infoframe_enable(DP_SDP_ADAPTIVE_SYNC);

	/* Currently only DP_AS_SDP_AVT_FIXED_VTOTAL mode supported */
	as_sdp->sdp_type = DP_SDP_ADAPTIVE_SYNC;
	as_sdp->length = 0x9;
	as_sdp->duration_incr_ms = 0;
@@ -2840,7 +2838,7 @@ static void intel_dp_compute_as_sdp(struct intel_dp *intel_dp,
		as_sdp->target_rr = drm_mode_vrefresh(adjusted_mode);
		as_sdp->target_rr_divider = true;
	} else {
		as_sdp->mode = DP_AS_SDP_AVT_FIXED_VTOTAL;
		as_sdp->mode = DP_AS_SDP_AVT_DYNAMIC_VTOTAL;
		as_sdp->vtotal = adjusted_mode->vtotal;
		as_sdp->target_rr = 0;
	}
+4 −0
Original line number Diff line number Diff line
@@ -341,6 +341,10 @@ int intel_dp_mtp_tu_compute_config(struct intel_dp *intel_dp,

			break;
		}

		/* Allow using zero step to indicate one try */
		if (!step)
			break;
	}

	if (slots < 0) {
+14 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ intel_hdcp_adjust_hdcp_line_rekeying(struct intel_encoder *encoder,
	u32 rekey_bit = 0;

	/* Here we assume HDMI is in TMDS mode of operation */
	if (encoder->type != INTEL_OUTPUT_HDMI)
	if (!intel_encoder_is_hdmi(encoder))
		return;

	if (DISPLAY_VER(display) >= 30) {
@@ -2188,6 +2188,19 @@ static int intel_hdcp2_check_link(struct intel_connector *connector)

		drm_dbg_kms(display->drm,
			    "HDCP2.2 Downstream topology change\n");

		ret = hdcp2_authenticate_repeater_topology(connector);
		if (!ret) {
			intel_hdcp_update_value(connector,
						DRM_MODE_CONTENT_PROTECTION_ENABLED,
						true);
			goto out;
		}

		drm_dbg_kms(display->drm,
			    "[CONNECTOR:%d:%s] Repeater topology auth failed.(%d)\n",
			    connector->base.base.id, connector->base.name,
			    ret);
	} else {
		drm_dbg_kms(display->drm,
			    "[CONNECTOR:%d:%s] HDCP2.2 link failed, retrying auth\n",
+0 −4
Original line number Diff line number Diff line
@@ -106,8 +106,6 @@ static const u32 icl_sdr_y_plane_formats[] = {
	DRM_FORMAT_Y216,
	DRM_FORMAT_XYUV8888,
	DRM_FORMAT_XVYU2101010,
	DRM_FORMAT_XVYU12_16161616,
	DRM_FORMAT_XVYU16161616,
};

static const u32 icl_sdr_uv_plane_formats[] = {
@@ -134,8 +132,6 @@ static const u32 icl_sdr_uv_plane_formats[] = {
	DRM_FORMAT_Y216,
	DRM_FORMAT_XYUV8888,
	DRM_FORMAT_XVYU2101010,
	DRM_FORMAT_XVYU12_16161616,
	DRM_FORMAT_XVYU16161616,
};

static const u32 icl_hdr_plane_formats[] = {
Loading