From e90687340de35562fb33d204eab7fff0bb99cbaf Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 27 Jun 2011 11:39:31 +0100 Subject: [PATCH] drm/i915: Pass the PCH interrupt identity down to its handler This makes sure that the interrupts processed are the same as those cleared later. And include a debug statement... Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/i915_irq.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 74c0c30..fa3fa95 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -405,14 +405,11 @@ static void gen6_pm_irq_handler(struct drm_device *dev) I915_WRITE(GEN6_PMIIR, pm_iir); } -static void pch_irq_handler(struct drm_device *dev) +static void pch_irq_handler(struct drm_device *dev, u32 pch_iir) { drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; - u32 pch_iir; int pipe; - pch_iir = I915_READ(SDEIIR); - if (pch_iir & SDE_AUDIO_POWER_MASK) DRM_DEBUG_DRIVER("PCH audio power change on port %d\n", (pch_iir & SDE_AUDIO_POWER_MASK) >> @@ -516,9 +513,11 @@ static irqreturn_t ironlake_irq_handler(struct drm_device *dev) /* check event from PCH */ if (de_iir & DE_PCH_EVENT) { + DRM_DEBUG_DRIVER("PCH interrupt: %08x, hotplug mask %08x\n", + pch_iir, hotplug_mask); if (pch_iir & hotplug_mask) queue_work(dev_priv->wq, &dev_priv->hotplug_work); - pch_irq_handler(dev); + pch_irq_handler(dev, pch_iir); } if (de_iir & DE_PCU_EVENT) { -- 1.7.5.4