Skip to contentSkip to conversation

FAILED: patch "[PATCH] drm/i915/dsc: force full modeset whenever DSC is enabled at" failed to apply to 5.5-stable tree

PATCH [email protected] 1 participant 1 message Feb 27, 2020

Subsystems (4)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.5-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 2e0a576511f656933adfe56ef03b9cf3e64b21b7 Mon Sep 17 00:00:00 2001
From: Jani Nikula <[email protected]>
Date: Thu, 13 Feb 2020 16:04:11 +0200
Subject: [PATCH] drm/i915/dsc: force full modeset whenever DSC is enabled at
probe

We lack full state readout of DSC config, which may lead to DSC enable using a config that's all zeros, failing spectacularly. Force full modeset and thus compute config at probe to get a sane state, until we implement DSC state readout. Any fastset that did appear to work with DSC at probe, worked by coincidence. [1] is an example of a change that triggered the issue on TGL DSI DSC.

[1] http://patchwork.freedesktop.org/patch/msgid/[email protected]

Cc Manasi Navare <[email protected]>
Cc Vandita Kulkarni <[email protected]>
Cc Ville Syrjala <[email protected]>
Fixes fbacb15ea814 ("drm/i915/dsc: add basic hardware state readout support")
(cherry picked from commit a4277aa398d76db109d6b8420934f68daf69a6c3)
drivers/gpu/drm/i915/display/intel_display.c +18 -0
index 064dd99bbc49..e68ec25fc97c 100644
@@ -17433,6 +17433,24 @@ static int intel_initial_commit(struct drm_device *dev)
 			 * have readout for pipe gamma enable.
 			 */
 			crtc_state->uapi.color_mgmt_changed = true;
+
+			/*
+			 * FIXME hack to force full modeset when DSC is being
+			 * used.
+			 *
+			 * As long as we do not have full state readout and
+			 * config comparison of crtc_state->dsc, we have no way
+			 * to ensure reliable fastset. Remove once we have
+			 * readout for DSC.
+			 */
+			if (crtc_state->dsc.compression_enable) {
+				ret = drm_atomic_add_affected_connectors(state,
+									 &crtc->base);
+				if (ret)
+					goto out;
+				crtc_state->uapi.mode_changed = true;
+				drm_dbg_kms(dev, "Force full modeset for DSC\n");
+			}
 		}
 	}