};
 
 #define for_each_pipe(__dev_priv, __p) \
-       for ((__p) = 0; (__p) < INTEL_NUM_PIPES(__dev_priv); (__p)++)
+       for ((__p) = 0; (__p) < I915_MAX_PIPES; (__p)++) \
+               for_each_if(INTEL_INFO(__dev_priv)->pipe_mask & BIT(__p))
 
 #define for_each_pipe_masked(__dev_priv, __p, __mask) \
-       for ((__p) = 0; (__p) < INTEL_NUM_PIPES(__dev_priv); (__p)++) \
+       for_each_pipe(__dev_priv, __p) \
                for_each_if((__mask) & BIT(__p))
 
 #define for_each_cpu_transcoder_masked(__dev_priv, __t, __mask) \
 
        if (pch_iir & SDE_POISON)
                drm_err(&dev_priv->drm, "PCH poison interrupt\n");
 
-       if (pch_iir & SDE_FDI_MASK)
+       if (pch_iir & SDE_FDI_MASK) {
                for_each_pipe(dev_priv, pipe)
                        drm_dbg(&dev_priv->drm, "  pipe %c FDI IIR: 0x%08x\n",
                                pipe_name(pipe),
                                I915_READ(FDI_RX_IIR(pipe)));
+       }
 
        if (pch_iir & (SDE_TRANSB_CRC_DONE | SDE_TRANSA_CRC_DONE))
                drm_dbg(&dev_priv->drm, "PCH transcoder CRC done interrupt\n");
        if (pch_iir & SDE_AUDIO_CP_CHG_CPT)
                drm_dbg(&dev_priv->drm, "Audio CP change interrupt\n");
 
-       if (pch_iir & SDE_FDI_MASK_CPT)
+       if (pch_iir & SDE_FDI_MASK_CPT) {
                for_each_pipe(dev_priv, pipe)
                        drm_dbg(&dev_priv->drm, "  pipe %c FDI IIR: 0x%08x\n",
                                pipe_name(pipe),
                                I915_READ(FDI_RX_IIR(pipe)));
+       }
 
        if (pch_iir & SDE_ERROR_CPT)
                cpt_serr_int_handler(dev_priv);