[Intel-xe] [PATCH v2 3/8] drm/xe/irq: Process Gunit interrupts in relation to the device

Matt Roper matthew.d.roper at intel.com
Wed Apr 12 22:52:43 UTC 2023


The only Gunit interrupts we handle today are GSE ASLE interrupts, which
are an old opregion way of doing display backlight notifications.  These
aren't related to GT at all, and if/when we have a multi-tile platform
with display in the future, we'll expect such ASLE interrupts to always
be delivered on the primary tile, the same as other display interrupts.

dg1_irq_handler() is currently passing whatever GT was processed last as
a parameter to gu_misc_irq_ack(), which isn't what we want.  Switch
gu_misc_irq_ack() to just take a drm_xe_device as a parameter so that
its handling isn't tied to the previous GT processing loop and there's
no ambiguity about what it's doing.

Signed-off-by: Matt Roper <matthew.d.roper at intel.com>
---
 drivers/gpu/drm/xe/xe_irq.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_irq.c b/drivers/gpu/drm/xe/xe_irq.c
index ca86c99f8007..2648fe53887d 100644
--- a/drivers/gpu/drm/xe/xe_irq.c
+++ b/drivers/gpu/drm/xe/xe_irq.c
@@ -92,8 +92,9 @@ static u32 xelp_intr_disable(struct xe_gt *gt)
 }
 
 static u32
-gu_misc_irq_ack(struct xe_gt *gt, const u32 master_ctl)
+gu_misc_irq_ack(struct xe_device *xe, const u32 master_ctl)
 {
+	struct xe_gt *gt = xe_device_get_gt(xe, 0);
 	u32 iir;
 
 	if (!(master_ctl & GU_MISC_IRQ))
@@ -348,7 +349,7 @@ static irqreturn_t xelp_irq_handler(int irq, void *arg)
 
 	xe_display_irq_handler(xe, master_ctl);
 
-	gu_misc_iir = gu_misc_irq_ack(gt, master_ctl);
+	gu_misc_iir = gu_misc_irq_ack(xe, master_ctl);
 
 	xelp_intr_enable(gt, false);
 
@@ -455,7 +456,7 @@ static irqreturn_t dg1_irq_handler(int irq, void *arg)
 	xe_display_irq_handler(xe, tile0_master_ctl);
 
 	/* Gunit GSE interrupts can trigger display backlight operations */
-	gu_misc_iir = gu_misc_irq_ack(gt, tile0_master_ctl);
+	gu_misc_iir = gu_misc_irq_ack(xe, tile0_master_ctl);
 
 	dg1_intr_enable(xe, false);
 
-- 
2.39.2



More information about the Intel-xe mailing list