[PATCH 08/38] bread

Chris Wilson chris at chris-wilson.co.uk
Wed Aug 5 20:48:55 UTC 2020


---
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
index 8802b47fbd8f..68602e8e3626 100644
--- a/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
+++ b/drivers/gpu/drm/i915/gt/intel_breadcrumbs.c
@@ -290,12 +290,13 @@ static void signal_irq_work(struct irq_work *work)
 
 	if (!READ_ONCE(b->irq_armed) && !list_empty(&b->signalers)) {
 		spin_lock(&b->irq_lock);
-		if (!b->irq_armed)
+		if (!b->irq_armed &&
+		    intel_engine_pm_get_if_awake(b->irq_engine)) {
 			__intel_breadcrumbs_arm_irq(b);
+			intel_engine_pm_put_async(b->irq_engine);
+		}
 		spin_unlock(&b->irq_lock);
 	}
-	if (READ_ONCE(b->irq_armed) && intel_engine_is_parking(b->irq_engine))
-		irq_work_queue(&b->irq_work); /* flush the signalers */
 }
 
 struct intel_breadcrumbs *
-- 
2.20.1



More information about the Intel-gfx-trybot mailing list