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

Commit f98ce92f authored by Ville Syrjälä's avatar Ville Syrjälä Committed by Daniel Vetter
Browse files

drm/i915: Disable crtcs gracefully before GPU reset on gen3/4



The GPU reset also resets the display on gen3/4. The g33 docs say we
should disable all planes before flipping the reset switch. Just
disable all the crtcs instead. That seems a nicer thing to do anyway.

Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
parent 7514747d
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -2803,6 +2803,9 @@ static void intel_update_primary_planes(struct drm_device *dev)

void intel_prepare_reset(struct drm_device *dev)
{
	struct drm_i915_private *dev_priv = to_i915(dev);
	struct intel_crtc *crtc;

	/* no reset support for gen2 */
	if (IS_GEN2(dev))
		return;
@@ -2812,6 +2815,15 @@ void intel_prepare_reset(struct drm_device *dev)
		return;

	drm_modeset_lock_all(dev);

	/*
	 * Disabling the crtcs gracefully seems nicer. Also the
	 * g33 docs say we should at least disable all the planes.
	 */
	for_each_intel_crtc(dev, crtc) {
		if (crtc->active)
			dev_priv->display.crtc_disable(&crtc->base);
	}
}

void intel_finish_reset(struct drm_device *dev)
+0 −2
Original line number Diff line number Diff line
@@ -1371,8 +1371,6 @@ static int g4x_reset_complete(struct drm_device *dev)

static int g33_do_reset(struct drm_device *dev)
{
	/* FIXME spec says to turn off all planes and wait 1 usec before reset */

	pci_write_config_byte(dev->pdev, I915_GDRST, GRDOM_RESET_ENABLE);
	return wait_for(g4x_reset_complete(dev), 500);
}