]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/gpu/drm/i915/i915_irq.c
Merge tag 'v3.7-rc2' into drm-intel-next-queued
[karo-tx-linux.git] / drivers / gpu / drm / i915 / i915_irq.c
index d07c7878e2b00735d6e40e83f9ff2259d8e35f0a..9628508a68a3aa5a5915a742353c2dec72538e3f 100644 (file)
@@ -30,9 +30,8 @@
 
 #include <linux/sysrq.h>
 #include <linux/slab.h>
-#include "drmP.h"
-#include "drm.h"
-#include "i915_drm.h"
+#include <drm/drmP.h>
+#include <drm/i915_drm.h>
 #include "i915_drv.h"
 #include "i915_trace.h"
 #include "intel_drv.h"
@@ -703,12 +702,12 @@ static irqreturn_t ivybridge_irq_handler(int irq, void *arg)
                        intel_opregion_gse_intr(dev);
 
                for (i = 0; i < 3; i++) {
+                       if (de_iir & (DE_PIPEA_VBLANK_IVB << (5 * i)))
+                               drm_handle_vblank(dev, i);
                        if (de_iir & (DE_PLANEA_FLIP_DONE_IVB << (5 * i))) {
                                intel_prepare_page_flip(dev, i);
                                intel_finish_page_flip_plane(dev, i);
                        }
-                       if (de_iir & (DE_PIPEA_VBLANK_IVB << (5 * i)))
-                               drm_handle_vblank(dev, i);
                }
 
                /* check event from PCH */
@@ -782,6 +781,12 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg)
        if (de_iir & DE_GSE)
                intel_opregion_gse_intr(dev);
 
+       if (de_iir & DE_PIPEA_VBLANK)
+               drm_handle_vblank(dev, 0);
+
+       if (de_iir & DE_PIPEB_VBLANK)
+               drm_handle_vblank(dev, 1);
+
        if (de_iir & DE_PLANEA_FLIP_DONE) {
                intel_prepare_page_flip(dev, 0);
                intel_finish_page_flip_plane(dev, 0);
@@ -792,12 +797,6 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg)
                intel_finish_page_flip_plane(dev, 1);
        }
 
-       if (de_iir & DE_PIPEA_VBLANK)
-               drm_handle_vblank(dev, 0);
-
-       if (de_iir & DE_PIPEB_VBLANK)
-               drm_handle_vblank(dev, 1);
-
        /* check event from PCH */
        if (de_iir & DE_PCH_EVENT) {
                if (HAS_PCH_CPT(dev))