Only count interrupts we find came from the GPU. Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org> --- drivers/gpu/drm/i915/i915_irq.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 453ea7c..36732f7 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -515,8 +515,6 @@ static irqreturn_t valleyview_irq_handler(DRM_IRQ_ARGS) u32 pipe_stats[I915_MAX_PIPES]; bool blc_event; - atomic_inc(&dev_priv->irq_received); - while (true) { iir = I915_READ(VLV_IIR); gt_iir = I915_READ(GTIIR); @@ -525,6 +523,8 @@ static irqreturn_t valleyview_irq_handler(DRM_IRQ_ARGS) if (gt_iir == 0 && pm_iir == 0 && iir == 0) goto out; + atomic_inc(&dev_priv->irq_received); + ret = IRQ_HANDLED; snb_gt_irq_handler(dev, dev_priv, gt_iir); -- 1.7.9.5