@@ -80,6 +80,15 @@ int intel_atomic_check(struct drm_device *dev,
state->allow_modeset = false;
for (i = 0; i < ncrtcs; i++) {
struct intel_crtc *crtc = to_intel_crtc(state->crtcs[i]);
+
+ /*
+ * If we're only updating CRTC properties, we may not have
+ * established a 'nuclear pipe' yet. In that case, the first
+ * CRTC we encounter here should be taken as the 'nuclear
+ * pipe.'
+ */
+ if (nuclear_pipe == INVALID_PIPE && crtc)
+ nuclear_pipe = crtc->pipe;
if (crtc)
memset(&crtc->atomic, 0, sizeof(crtc->atomic));
if (crtc && crtc->pipe != nuclear_pipe)