提交 f98ce92f 编写于 作者: V Ville Syrjälä 提交者: Daniel Vetter

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: NVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
上级 7514747d
...@@ -2803,6 +2803,9 @@ static void intel_update_primary_planes(struct drm_device *dev) ...@@ -2803,6 +2803,9 @@ static void intel_update_primary_planes(struct drm_device *dev)
void intel_prepare_reset(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 */ /* no reset support for gen2 */
if (IS_GEN2(dev)) if (IS_GEN2(dev))
return; return;
...@@ -2812,6 +2815,15 @@ void intel_prepare_reset(struct drm_device *dev) ...@@ -2812,6 +2815,15 @@ void intel_prepare_reset(struct drm_device *dev)
return; return;
drm_modeset_lock_all(dev); 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) void intel_finish_reset(struct drm_device *dev)
......
...@@ -1371,8 +1371,6 @@ static int g4x_reset_complete(struct drm_device *dev) ...@@ -1371,8 +1371,6 @@ static int g4x_reset_complete(struct drm_device *dev)
static int g33_do_reset(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); pci_write_config_byte(dev->pdev, I915_GDRST, GRDOM_RESET_ENABLE);
return wait_for(g4x_reset_complete(dev), 500); return wait_for(g4x_reset_complete(dev), 500);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册