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

Commit ea0000f0 authored by Daniel Vetter's avatar Daniel Vetter
Browse files

drm/i915: Roll out the helper nonblock tracking

parent 1f7528c4
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -13722,6 +13722,10 @@ static int intel_atomic_commit(struct drm_device *dev,
	unsigned long put_domains[I915_MAX_PIPES] = {};
	unsigned crtc_vblank_mask = 0;

	ret = drm_atomic_helper_setup_commit(state, nonblock);
	if (ret)
		return ret;

	ret = intel_atomic_prepare_commit(dev, state, nonblock);
	if (ret) {
		DRM_DEBUG_ATOMIC("Preparing state failed with %i\n", ret);
@@ -13733,6 +13737,8 @@ static int intel_atomic_commit(struct drm_device *dev,
	dev_priv->wm.skl_results = intel_state->wm_results;
	intel_shared_dpll_commit(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));
@@ -13828,7 +13834,7 @@ static int intel_atomic_commit(struct drm_device *dev,
			crtc_vblank_mask |= 1 << i;
	}

	/* FIXME: add subpixel order */
	drm_atomic_helper_commit_hw_done(state);

	if (!state->legacy_cursor_update)
		intel_atomic_wait_for_vblanks(dev, dev_priv, crtc_vblank_mask);
@@ -13863,6 +13869,8 @@ static int intel_atomic_commit(struct drm_device *dev,
	drm_atomic_helper_cleanup_planes(dev, state);
	mutex_unlock(&dev->struct_mutex);

	drm_atomic_helper_commit_cleanup_done(state);

	drm_atomic_state_free(state);

	/* As one of the primary mmio accessors, KMS has a high likelihood