[Intel-gfx] [PATCH 4/4] drm/i915/icl: Handle GT interrupts after enabling master

Chris Wilson chris at chris-wilson.co.uk
Thu Oct 11 14:56:02 UTC 2018


Quoting Mika Kuoppala (2018-10-11 15:19:24)
> Chris Wilson <chris at chris-wilson.co.uk> writes:
> 
> > Quoting Mika Kuoppala (2018-10-02 15:05:52)
> >> Don't keep master disabled while we handle the current
> >> interrupts. This should help a little on latency of
> >> generating the next interrupt.
> >> 
> >> Suggested-by: Chris Wilson <chris at chris-wilson.co.uk>
> >> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> >> Signed-off-by: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> >> ---
> >>  drivers/gpu/drm/i915/i915_irq.c | 4 +---
> >>  1 file changed, 1 insertion(+), 3 deletions(-)
> >> 
> >> diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
> >> index 5d1f53723388..9d8d5fb68c84 100644
> >> --- a/drivers/gpu/drm/i915/i915_irq.c
> >> +++ b/drivers/gpu/drm/i915/i915_irq.c
> >> @@ -3163,9 +3163,6 @@ static irqreturn_t gen11_irq_handler(int irq, void *arg)
> >>                 return IRQ_NONE;
> >>         }
> >>  
> >> -       /* Find, clear, then process each source of interrupt. */
> >> -       gen11_gt_irq_handler(i915, master_ctl);
> >> -
> >>         /* IRQs are synced during runtime_suspend, we don't require a wakeref */
> >>         if (master_ctl & GEN11_DISPLAY_IRQ) {
> >>                 const u32 disp_ctl = raw_reg_read(regs, GEN11_DISPLAY_INT_CTL);
> >> @@ -3183,6 +3180,7 @@ static irqreturn_t gen11_irq_handler(int irq, void *arg)
> >>  
> >>         gen11_master_intr_enable(regs);
> >>  
> >> +       gen11_gt_irq_handler(i915, master_ctl);
> >
> > Are we not still acking GT_INTR_DW at this point?
> 
> We are.

Then we re-enable MASTER before we ack the in the individual GT_IIR, and
by the logic before, that means MASTER still has the GT bits asserted
(as we said they are not cleared until we ack the individual GT_IIR).
Doesn't that mean that the interrupt will be raised again immediately?
-Chris


More information about the Intel-gfx mailing list