[Bug 92084] [BDW][drm:gen8_irq_handler [i915]] *ERROR* The master control interrupt lied (SDE)!

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Oct 30 07:38:06 PDT 2015


https://bugs.freedesktop.org/show_bug.cgi?id=92084

--- Comment #20 from Jani Nikula <jani.nikula at intel.com> ---
This also gets rid of the messages, and does *not* print the ### debug msg,
i.e. the status bits are clear.


diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 6e0a5683bbdc..7716181473dc 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -1825,7 +1825,21 @@ static void ibx_hpd_irq_handler(struct drm_device *dev,
u32 hotplug_trigger,
     u32 dig_hotplug_reg, pin_mask = 0, long_mask = 0;

     dig_hotplug_reg = I915_READ(PCH_PORT_HOTPLUG);
+    if (!hotplug_trigger) {
+        u32 mask = PORTA_HOTPLUG_STATUS_MASK |
+            PORTD_HOTPLUG_STATUS_MASK |
+            PORTC_HOTPLUG_STATUS_MASK |
+            PORTB_HOTPLUG_STATUS_MASK;
+
+        if (dig_hotplug_reg & mask)
+            DRM_DEBUG_KMS("### %08x\n", dig_hotplug_reg & mask);
+
+        dig_hotplug_reg &= ~mask;
+    }
+    
     I915_WRITE(PCH_PORT_HOTPLUG, dig_hotplug_reg);
+    if (!hotplug_trigger)
+        return;

     intel_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger,
                dig_hotplug_reg, hpd,
@@ -1840,8 +1854,7 @@ static void ibx_irq_handler(struct drm_device *dev, u32
pch_iir)
     int pipe;
     u32 hotplug_trigger = pch_iir & SDE_HOTPLUG_MASK;

-    if (hotplug_trigger)
-        ibx_hpd_irq_handler(dev, hotplug_trigger, hpd_ibx);
+    ibx_hpd_irq_handler(dev, hotplug_trigger, hpd_ibx);

     if (pch_iir & SDE_AUDIO_POWER_MASK) {
         int port = ffs((pch_iir & SDE_AUDIO_POWER_MASK) >>
@@ -1934,8 +1947,7 @@ static void cpt_irq_handler(struct drm_device *dev, u32
pch_iir)
     int pipe;
     u32 hotplug_trigger = pch_iir & SDE_HOTPLUG_MASK_CPT;

-    if (hotplug_trigger)
-        ibx_hpd_irq_handler(dev, hotplug_trigger, hpd_cpt);
+    ibx_hpd_irq_handler(dev, hotplug_trigger, hpd_cpt);

     if (pch_iir & SDE_AUDIO_POWER_MASK_CPT) {
         int port = ffs((pch_iir & SDE_AUDIO_POWER_MASK_CPT) >>

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are on the CC list for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20151030/0b1b19a1/attachment.html>


More information about the intel-gfx-bugs mailing list