Browse Source

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>
Niu,Bing 10 years ago
parent
commit
a647828afc
1 changed files with 8 additions and 0 deletions
  1. 8 0
      drivers/gpu/drm/i915/i915_gem.c

+ 8 - 0
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)
 	for_each_ring(ring, dev_priv, i)
 		dev_priv->gt.cleanup_ring(ring);
 		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
 static void