[PATCH 01/42] drm/i915/guc: Clear preempt status before use

Chris Wilson chris at chris-wilson.co.uk
Thu Sep 20 14:27:23 UTC 2018


---
 drivers/gpu/drm/i915/intel_guc_submission.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
index a81f04d46e87..c713e3704631 100644
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
@@ -584,6 +584,7 @@ static void inject_preempt_context(struct work_struct *work)
 
 		flush_ggtt_writes(ce->ring->vma);
 	}
+	intel_write_status_page(engine, I915_GEM_HWS_PREEMPT_INDEX, 0);
 
 	spin_lock_irq(&client->wq_lock);
 	guc_wq_item_append(client, engine->guc_id, lower_32_bits(ce->lrc_desc),
@@ -661,7 +662,6 @@ static void complete_preempt_context(struct intel_engine_cs *engine)
 	execlists_unwind_incomplete_requests(execlists);
 
 	wait_for_guc_preempt_report(engine);
-	intel_write_status_page(engine, I915_GEM_HWS_PREEMPT_INDEX, 0);
 }
 
 /**
@@ -829,8 +829,7 @@ static void guc_submission_tasklet(unsigned long data)
 	}
 
 	if (execlists_is_active(execlists, EXECLISTS_ACTIVE_PREEMPT) &&
-	    intel_read_status_page(engine, I915_GEM_HWS_PREEMPT_INDEX) ==
-	    GUC_PREEMPT_FINISHED)
+	    intel_read_status_page(engine, I915_GEM_HWS_PREEMPT_INDEX))
 		complete_preempt_context(engine);
 
 	if (!execlists_is_active(execlists, EXECLISTS_ACTIVE_PREEMPT))
-- 
2.19.0



More information about the Intel-gfx-trybot mailing list