Handle GEN6_PMIIR before DEIIR. This allows us to further refactor
display irq handling, but separate this change to give us a clean bisect
landing commit for the unlikely case that this makes a difference.

Signed-off-by: Jani Nikula <jani.nik...@intel.com>
---
 drivers/gpu/drm/i915/i915_irq.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 90174ce9195c..312f7e42931a 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -449,6 +449,15 @@ static irqreturn_t ilk_irq_handler(int irq, void *arg)
                ret = IRQ_HANDLED;
        }
 
+       if (GRAPHICS_VER(i915) >= 6) {
+               u32 pm_iir = raw_reg_read(regs, GEN6_PMIIR);
+               if (pm_iir) {
+                       raw_reg_write(regs, GEN6_PMIIR, pm_iir);
+                       gen6_rps_irq_handler(&to_gt(i915)->rps, pm_iir);
+                       ret = IRQ_HANDLED;
+               }
+       }
+
        de_iir = raw_reg_read(regs, DEIIR);
        if (de_iir) {
                raw_reg_write(regs, DEIIR, de_iir);
@@ -459,15 +468,6 @@ static irqreturn_t ilk_irq_handler(int irq, void *arg)
                ret = IRQ_HANDLED;
        }
 
-       if (GRAPHICS_VER(i915) >= 6) {
-               u32 pm_iir = raw_reg_read(regs, GEN6_PMIIR);
-               if (pm_iir) {
-                       raw_reg_write(regs, GEN6_PMIIR, pm_iir);
-                       gen6_rps_irq_handler(&to_gt(i915)->rps, pm_iir);
-                       ret = IRQ_HANDLED;
-               }
-       }
-
        raw_reg_write(regs, DEIER, de_ier);
        if (sde_ier)
                raw_reg_write(regs, SDEIER, sde_ier);
-- 
2.47.3

Reply via email to