--- /dev/null
+From 95654a3ae9b08840d57ecf79901fe88111567b62 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Wed, 22 Jun 2016 15:23:03 -0700
+Subject: Revert "drm/i915: Exit cherryview_irq_handler() after one pass"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+This reverts commit 9dbaab56ac09f07a73fe83bf69bec3e31060080a.
+
+Turns out it was a bad idea and was fixed up "properly" in 4.7 but those
+patches are too big to put into 4.6, so let's just revert it for now.
+
+Reported-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+Cc: Daniel Vetter <daniel@ffwll.ch>
+Cc: Peter Frühberger <peter.fruehberger@gmail.com>
+Cc: Chris Wilson <chris@chris-wilson.co.uk>
+Cc: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org
+---
+ drivers/gpu/drm/i915/i915_irq.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/i915/i915_irq.c
++++ b/drivers/gpu/drm/i915/i915_irq.c
+@@ -1829,7 +1829,7 @@ static irqreturn_t cherryview_irq_handle
+ /* IRQs are synced during runtime_suspend, we don't require a wakeref */
+ disable_rpm_wakeref_asserts(dev_priv);
+
+- do {
++ for (;;) {
+ master_ctl = I915_READ(GEN8_MASTER_IRQ) & ~GEN8_MASTER_IRQ_CONTROL;
+ iir = I915_READ(VLV_IIR);
+
+@@ -1857,7 +1857,7 @@ static irqreturn_t cherryview_irq_handle
+
+ I915_WRITE(GEN8_MASTER_IRQ, DE_MASTER_IRQ_CONTROL);
+ POSTING_READ(GEN8_MASTER_IRQ);
+- } while (0);
++ }
+
+ enable_rpm_wakeref_asserts(dev_priv);
+