drm/i915: Unconditionally clear the pm/guc GT IIR upon acking
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 2 Aug 2018 10:06:29 +0000 (11:06 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 3 Aug 2018 14:46:39 +0000 (15:46 +0100)
Having stored the IIR for action, we should always clear it.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180802100631.31305-2-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/i915_irq.c

index 90628a4..e37e3ec 100644 (file)
@@ -1534,11 +1534,8 @@ static void gen8_gt_irq_ack(struct drm_i915_private *i915,
 
        if (master_ctl & (GEN8_GT_PM_IRQ | GEN8_GT_GUC_IRQ)) {
                gt_iir[2] = raw_reg_read(regs, GEN8_GT_IIR(2));
-               if (likely(gt_iir[2] & (i915->pm_rps_events |
-                                       i915->pm_guc_events)))
-                       raw_reg_write(regs, GEN8_GT_IIR(2),
-                                     gt_iir[2] & (i915->pm_rps_events |
-                                                  i915->pm_guc_events));
+               if (likely(gt_iir[2]))
+                       raw_reg_write(regs, GEN8_GT_IIR(2), gt_iir[2]);
        }
 
        if (master_ctl & GEN8_GT_VECS_IRQ) {