瀏覽代碼

drm/i915: Specify which engines to reset following semaphore/event lockups

If the GPU is stuck waiting for an event or for a semaphore, we need to
reset the GPU in order to recover. We have to tell the reset routine
which engines we want reset, but we were still using the old interface
and declaring it as "not-fatal".

Fixes: 14b730fcb8d9 ("drm/i915/tdr: Prepare error handler to accept mask of hung engines")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Cc: Michel Thierry <michel.thierry@intel.com>
Reviewed-by: Michel Thierry <michel.thierry@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180320100449.1360-1-chris@chris-wilson.co.uk
Chris Wilson 7 年之前
父節點
當前提交
ca98317b89
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/gpu/drm/i915/intel_hangcheck.c

+ 2 - 2
drivers/gpu/drm/i915/intel_hangcheck.c

@@ -246,7 +246,7 @@ engine_stuck(struct intel_engine_cs *engine, u64 acthd)
 	 */
 	 */
 	tmp = I915_READ_CTL(engine);
 	tmp = I915_READ_CTL(engine);
 	if (tmp & RING_WAIT) {
 	if (tmp & RING_WAIT) {
-		i915_handle_error(dev_priv, 0,
+		i915_handle_error(dev_priv, BIT(engine->id),
 				  "Kicking stuck wait on %s",
 				  "Kicking stuck wait on %s",
 				  engine->name);
 				  engine->name);
 		I915_WRITE_CTL(engine, tmp);
 		I915_WRITE_CTL(engine, tmp);
@@ -258,7 +258,7 @@ engine_stuck(struct intel_engine_cs *engine, u64 acthd)
 		default:
 		default:
 			return ENGINE_DEAD;
 			return ENGINE_DEAD;
 		case 1:
 		case 1:
-			i915_handle_error(dev_priv, 0,
+			i915_handle_error(dev_priv, ALL_ENGINES,
 					  "Kicking stuck semaphore on %s",
 					  "Kicking stuck semaphore on %s",
 					  engine->name);
 					  engine->name);
 			I915_WRITE_CTL(engine, tmp);
 			I915_WRITE_CTL(engine, tmp);