From: Ville Syrjälä <[email protected]>

Define GEN11_GT_IRQS (we already have the gen8 counterpart
GEN8_GT_IRQS) and use it to skip the entire gen11_gt_irq_handler()
call if none of the relevant bits are set, as a micro
optimization.

In addition to the redundant function call we also now skip
the redundant gt->irq_lock spinlock which is taken unconditionally
in gen11_gt_irq_handler().

Signed-off-by: Ville Syrjälä <[email protected]>
---
 drivers/gpu/drm/i915/gt/intel_gt_irq.h | 3 +++
 drivers/gpu/drm/i915/i915_irq.c        | 6 ++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gt_irq.h 
b/drivers/gpu/drm/i915/gt/intel_gt_irq.h
index 41cad38668c5..c8cc247778f0 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_irq.h
+++ b/drivers/gpu/drm/i915/gt/intel_gt_irq.h
@@ -12,6 +12,9 @@
 
 struct intel_gt;
 
+#define GEN11_GT_IRQS (GEN11_GT_DW_IRQ(0) | \
+                      GEN11_GT_DW_IRQ(1))
+
 #define GEN8_GT_IRQS (GEN8_GT_RCS_IRQ | \
                      GEN8_GT_BCS_IRQ | \
                      GEN8_GT_VCS0_IRQ | \
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 448c4730d178..b3fc3e31a5d4 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -527,7 +527,8 @@ static irqreturn_t gen11_irq_handler(int irq, void *arg)
        }
 
        /* Find, queue (onto bottom-halves), then clear each source */
-       gen11_gt_irq_handler(gt, master_ctl);
+       if (master_ctl & GEN11_GT_IRQS)
+               gen11_gt_irq_handler(gt, master_ctl);
 
        /* IRQs are synced during runtime_suspend, we don't require a wakeref */
        if (master_ctl & GEN11_DISPLAY_IRQ)
@@ -596,7 +597,8 @@ static irqreturn_t dg1_irq_handler(int irq, void *arg)
                return IRQ_NONE;
        }
 
-       gen11_gt_irq_handler(gt, master_ctl);
+       if (master_ctl & GEN11_GT_IRQS)
+               gen11_gt_irq_handler(gt, master_ctl);
 
        if (master_ctl & GEN11_DISPLAY_IRQ)
                intel_display_irq_handler(display, NULL);
-- 
2.56.0

Reply via email to