Merge tag 'drm-for-v4.11-less-shouty' of git://people.freedesktop.org/~airlied/linux
[sfrench/cifs-2.6.git] / drivers / gpu / drm / i915 / i915_irq.c
index 7dba148ca792a7f802411f59608fe071a72468ad..e6ffef2f707a01934a3a6f777b1dc7548ef370c8 100644 (file)
@@ -1926,6 +1926,10 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
                 * signalled in iir */
                valleyview_pipestat_irq_ack(dev_priv, iir, pipe_stats);
 
+               if (iir & (I915_LPE_PIPE_A_INTERRUPT |
+                          I915_LPE_PIPE_B_INTERRUPT))
+                       intel_lpe_audio_irq_handler(dev_priv);
+
                /*
                 * VLV_IIR is single buffered, and reflects the level
                 * from PIPESTAT/PORT_HOTPLUG_STAT, hence clear it last.
@@ -2006,6 +2010,11 @@ static irqreturn_t cherryview_irq_handler(int irq, void *arg)
                 * signalled in iir */
                valleyview_pipestat_irq_ack(dev_priv, iir, pipe_stats);
 
+               if (iir & (I915_LPE_PIPE_A_INTERRUPT |
+                          I915_LPE_PIPE_B_INTERRUPT |
+                          I915_LPE_PIPE_C_INTERRUPT))
+                       intel_lpe_audio_irq_handler(dev_priv);
+
                /*
                 * VLV_IIR is single buffered, and reflects the level
                 * from PIPESTAT/PORT_HOTPLUG_STAT, hence clear it last.
@@ -2948,6 +2957,7 @@ static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv)
        u32 pipestat_mask;
        u32 enable_mask;
        enum pipe pipe;
+       u32 val;
 
        pipestat_mask = PLANE_FLIP_DONE_INT_STATUS_VLV |
                        PIPE_CRC_DONE_INTERRUPT_STATUS;
@@ -2964,6 +2974,12 @@ static void vlv_display_irq_postinstall(struct drm_i915_private *dev_priv)
 
        WARN_ON(dev_priv->irq_mask != ~0);
 
+       val = (I915_LPE_PIPE_A_INTERRUPT |
+               I915_LPE_PIPE_B_INTERRUPT |
+               I915_LPE_PIPE_C_INTERRUPT);
+
+       enable_mask |= val;
+
        dev_priv->irq_mask = ~enable_mask;
 
        GEN5_IRQ_INIT(VLV_, dev_priv->irq_mask, enable_mask);