Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0d26fb89 authored by Ander Conselvan de Oliveira's avatar Ander Conselvan de Oliveira Committed by Jani Nikula
Browse files

drm/i915: Don't update staged config during force restore modesets

The force restore path relies on the staged config to preserve the
configuration used before a suspend/resume cycle. The update done to it
in intel_modeset_fixup_state() would cause that information to be lost
after the first modeset, making it impossible to restore the modes for
pipes B and C.

References: https://bugs.freedesktop.org/show_bug.cgi?id=90468


Signed-off-by: default avatarAnder Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
parent e62d8dc0
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -11386,10 +11386,6 @@ static void intel_modeset_fixup_state(struct drm_atomic_state *state)
		crtc->base.enabled = crtc->base.state->enable;
		crtc->config = to_intel_crtc_state(crtc->base.state);
	}

	/* Copy the new configuration to the staged state, to keep the few
	 * pieces of code that haven't been converted yet happy */
	intel_modeset_update_staged_output_state(state->dev);
}

static void
@@ -12654,8 +12650,10 @@ static int intel_set_mode_with_config(struct drm_crtc *crtc,

	ret = __intel_set_mode(crtc, pipe_config);

	if (ret == 0 && force_restore)
	if (ret == 0 && force_restore) {
		intel_modeset_update_staged_output_state(crtc->dev);
		intel_modeset_check_state(crtc->dev);
	}

	return ret;
}