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

Commit c3b32658 authored by Maarten Lankhorst's avatar Maarten Lankhorst
Browse files

drm/i915: Update atomic modeset state synchronously, v2.



All of this state should be updated as soon as possible. It shouldn't be
done later because then future updates may not depend on it.

Changes since v1:
- Move the modeset update to before drm_atomic_state_get. (Ville)

Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1478609742-13603-10-git-send-email-maarten.lankhorst@linux.intel.com


Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
parent 1f4faefe
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -14369,14 +14369,8 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)

	drm_atomic_helper_wait_for_dependencies(state);

	if (intel_state->modeset) {
		memcpy(dev_priv->min_pixclk, intel_state->min_pixclk,
		       sizeof(intel_state->min_pixclk));
		dev_priv->active_crtcs = intel_state->active_crtcs;
		dev_priv->atomic_cdclk_freq = intel_state->cdclk;

	if (intel_state->modeset)
		intel_display_power_get(dev_priv, POWER_DOMAIN_MODESET);
	}

	for_each_crtc_in_state(state, crtc, old_crtc_state, i) {
		struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -14609,6 +14603,13 @@ static int intel_atomic_commit(struct drm_device *dev,
	intel_shared_dpll_commit(state);
	intel_atomic_track_fbs(state);

	if (intel_state->modeset) {
		memcpy(dev_priv->min_pixclk, intel_state->min_pixclk,
		       sizeof(intel_state->min_pixclk));
		dev_priv->active_crtcs = intel_state->active_crtcs;
		dev_priv->atomic_cdclk_freq = intel_state->cdclk;
	}

	drm_atomic_state_get(state);
	INIT_WORK(&state->commit_work,
		  nonblock ? intel_atomic_commit_work : NULL);