summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorNiu,Bing <bing.niu@intel.com>2015-07-03 19:27:34 +0300
committerDaniel Vetter <daniel.vetter@ffwll.ch>2015-07-06 15:41:25 +0300
commita647828afc7d7d352aeb076dbc03bd952b09b1e3 (patch)
treecf1bce314a88267923d8730a918e413962cd755a /drivers/gpu/drm/i915
parent9e00084750c0f0603ec8a6ff15e0bcf78b8202bd (diff)
downloadlinux-a647828afc7d7d352aeb076dbc03bd952b09b1e3.tar.xz
drm/i915: Also perform gpu reset under execlist mode.
It is found that i915 will not reset gpu under execlist mode when unload module. that will lead to some issues when unload/load module with different submission mode. e.g. from execlist mode to ring buffer mode via loading/unloading i915. Because HW is not in a reset state and registers are not clean under such condition. Signed-off-by: Niu,Bing <bing.niu@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index c8ee13f466c8..672c803a0a27 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -5196,6 +5196,14 @@ i915_gem_cleanup_ringbuffer(struct drm_device *dev)
for_each_ring(ring, dev_priv, i)
dev_priv->gt.cleanup_ring(ring);
+
+ if (i915.enable_execlists)
+ /*
+ * Neither the BIOS, ourselves or any other kernel
+ * expects the system to be in execlists mode on startup,
+ * so we need to reset the GPU back to legacy mode.
+ */
+ intel_gpu_reset(dev);
}
static void