浏览代码

drm/i915: Clear engine irq posted following a reset

When the GPU is reset, we want to discard all pending notifications as
either we have manually completed them, or they are no longer
applicable. Make sure we do reset the engine->irq_posted prior to
re-enabling the engine (e.g. the interrupt tasklets) in
i915_gem_reset_finish_engine().

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Michel Thierry <michel.thierry@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20170721123238.16428-11-chris@chris-wilson.co.uk
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Chris Wilson 8 年之前
父节点
当前提交
ed454f2cd6
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      drivers/gpu/drm/i915/i915_gem.c

+ 2 - 0
drivers/gpu/drm/i915/i915_gem.c

@@ -2964,6 +2964,8 @@ static bool i915_gem_reset_request(struct drm_i915_gem_request *request)
 void i915_gem_reset_engine(struct intel_engine_cs *engine,
 void i915_gem_reset_engine(struct intel_engine_cs *engine,
 			   struct drm_i915_gem_request *request)
 			   struct drm_i915_gem_request *request)
 {
 {
+	engine->irq_posted = 0;
+
 	if (request && i915_gem_reset_request(request)) {
 	if (request && i915_gem_reset_request(request)) {
 		DRM_DEBUG_DRIVER("resetting %s to restart from tail of request 0x%x\n",
 		DRM_DEBUG_DRIVER("resetting %s to restart from tail of request 0x%x\n",
 				 engine->name, request->global_seqno);
 				 engine->name, request->global_seqno);