<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [BDW][drm:gen8_irq_handler [i915]] *ERROR* The master control interrupt lied (SDE)!"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=92084#c16">Comment # 16</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [BDW][drm:gen8_irq_handler [i915]] *ERROR* The master control interrupt lied (SDE)!"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=92084">bug 92084</a>
              from <span class="vcard"><a class="email" href="mailto:ville.syrjala@linux.intel.com" title="Ville Syrjala <ville.syrjala@linux.intel.com>"> <span class="fn">Ville Syrjala</span></a>
</span></b>
        <pre>(In reply to Jani Nikula from <a href="show_bug.cgi?id=92084#c15">comment #15</a>)
<span class="quote">> (In reply to Ville Syrjala from <a href="show_bug.cgi?id=92084#c13">comment #13</a>)
> > (In reply to Jani Nikula from <a href="show_bug.cgi?id=92084#c12">comment #12</a>)
> > > However this helps. We're missing something.
> > > 
> > > diff --git a/drivers/gpu/drm/i915/i915_irq.c
> > > b/drivers/gpu/drm/i915/i915_irq.c
> > > index 76bd40e13391..0d524034abd7 100644
> > > --- a/drivers/gpu/drm/i915/i915_irq.c
> > > +++ b/drivers/gpu/drm/i915/i915_irq.c
> > > @@ -1827,6 +1827,9 @@ static void ibx_hpd_irq_handler(struct drm_device
> > > *dev, u32 hotplug_trigger,
> > >         dig_hotplug_reg = I915_READ(PCH_PORT_HOTPLUG);
> > >         I915_WRITE(PCH_PORT_HOTPLUG, dig_hotplug_reg);
> > 
> > Is the read alone enough, or do you need the write too?

> Moving the write below the !hotplug_trigger check brings the problem back,
> i.e. the write is also needed.</span >

Are the status bits actually showing long/short pulses when this happens?

Maybe we can just do something like this:

dig_hotplug_reg = I915_READ(PCH_PORT_HOTPLUG);
if (!hotplug_trigger)
    dig_hotplug_reg &= ~(*_HOTPLUG_STATUS_MASK);
I915_WRITE(PCH_PORT_HOTPLUG, dig_hotplug_reg
if (!hotplug_trigger)
    return;</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are on the CC list for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>