Launchpad has imported 23 comments from the remote bug at https://bugs.freedesktop.org/show_bug.cgi?id=92084.
If you reply to an imported comment from within Launchpad, your comment will be sent to the remote bug automatically. Read more about Launchpad's inter-bugtracker facilities at https://help.launchpad.net/InterBugTracking. ------------------------------------------------------------------------ On 2015-09-23T07:32:07+00:00 Wendy-wang wrote: Test Environment: BDW-U 4.3.0-rc2_drm-intel-nightly_be4c33_20150923+ Reproduce steps: 1.boot up system and grep error message in dmesg 2. Will see below ERROR message. [ 1.260036] [drm:gen8_irq_handler [i915]] *ERROR* The master control interrupt lied (SDE)! Dmesg log attached. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/23 ------------------------------------------------------------------------ On 2015-09-23T08:25:07+00:00 Jani-nikula wrote: (In reply to wendy.wang from comment #0) > Dmesg log attached. There's no attachment. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/24 ------------------------------------------------------------------------ On 2015-09-23T08:28:58+00:00 Yex-tian wrote: Created attachment 118408 dmesg info with drm.debug=0xe Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/25 ------------------------------------------------------------------------ On 2015-09-23T08:42:38+00:00 Yex-tian wrote: This bug also exists on the latest drm-intel-fixes and drm-intel-next- queued branch. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/26 ------------------------------------------------------------------------ On 2015-09-23T13:54:12+00:00 Jani-nikula wrote: Hmm, I'm wondering if we're handling this correctly, and if that could cause the issue: "For each bit, the IIR can store a second pending interrupt if two or more of the same interrupt conditions occur before the first condition is cleared. Upon clearing the interrupt, the IIR bit will momentarily go low, then return high to indicate there is another interrupt pending. Only the rising edge of the PCH Display interrupt will cause the North Display IIR (DEIIR) PCH Display Interrupt event bit to be set, so all PCH Display Interrupts, including back to back interrupts, must be cleared here before a new PCH Display Interrupt can cause the DEIIR to be set." Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/27 ------------------------------------------------------------------------ On 2015-09-24T07:35:04+00:00 Wendy-wang wrote: Good commit: commit b42fa27abff5970649ff07b0ce1691f6464097f3 Author: Daniel Vetter <daniel.vet...@ffwll.ch> Date: Wed Jul 8 21:48:11 2015 +0200 drm-intel-nightly: 2015y-07m-08d-19h-47m-26s UTC integration manifest Bad commit: commit 5b4a647fe39cf42753761b7d4ee20d695eec589c Author: Daniel Vetter <daniel.vet...@ffwll.ch> Date: Thu Jul 9 21:57:35 2015 +0200 drm-intel-nightly: 2015y-07m-09d-19h-56m-44s UTC integration manifest Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/28 ------------------------------------------------------------------------ On 2015-09-25T15:08:53+00:00 Mika-kuoppala wrote: On my bdw after this commit the messages started to appear: commit aaf5ec2e51ab1d9c5e962b4728a1107ed3ff7a3e Author: Sonika Jindal <sonika.jin...@intel.com> Date: Wed Jul 8 17:07:47 2015 +0530 drm/i915: Handle HPD when it has actually occurred But when I just tried with latest nightly, I couldn't reproduce the any dmesg errors. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/29 ------------------------------------------------------------------------ On 2015-09-28T09:34:38+00:00 Niccolò Belli wrote: Created attachment 118478 dmesg (without drm.debug) I was going to report the very same issue for my XPS 13 2015 9343 (Broadwell) when I saw this. I attached dmesg (without drm.debug). Kernel is 4.3.0-rc3-mainline. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/30 ------------------------------------------------------------------------ On 2015-10-01T13:57:28+00:00 Jani-nikula wrote: (In reply to Mika Kuoppala from comment #6) > But when I just tried with latest nightly, I couldn't reproduce the any > dmesg errors. I still see this on BDW. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/33 ------------------------------------------------------------------------ On 2015-10-01T14:13:11+00:00 Jani-nikula wrote: Created attachment 118559 dmesg reproducing the problem on bdw Curiously the errors are next to DP aux traffic. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/34 ------------------------------------------------------------------------ On 2015-10-01T15:38:40+00:00 Ville-syrjala-e wrote: Random idea: --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -2345,6 +2345,7 @@ static irqreturn_t gen8_irq_handler(int irq, void *arg) u32 pch_iir = I915_READ(SDEIIR); if (pch_iir) { I915_WRITE(SDEIIR, pch_iir); + POSTING_READ(SDEIIR); ret = IRQ_HANDLED; Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/35 ------------------------------------------------------------------------ On 2015-10-02T10:17:36+00:00 Jani-nikula wrote: (In reply to Ville Syrjala from comment #10) > + POSTING_READ(SDEIIR); Does not help. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/36 ------------------------------------------------------------------------ On 2015-10-02T11:41:48+00:00 Jani-nikula wrote: 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); + if (!hotplug_trigger) + return; + intel_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger, dig_hotplug_reg, hpd, pch_port_hotplug_long_detect); @@ -1934,8 +1937,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) >> Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/37 ------------------------------------------------------------------------ On 2015-10-02T16:27:43+00:00 Ville-syrjala-e wrote: (In reply to Jani Nikula from comment #12) > 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? > > + if (!hotplug_trigger) > + return; > + > intel_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger, > dig_hotplug_reg, hpd, > pch_port_hotplug_long_detect); > @@ -1934,8 +1937,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) >> Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/38 ------------------------------------------------------------------------ On 2015-10-05T05:33:19+00:00 Sonika-jindal wrote: (In reply to Jani Nikula from comment #12) > 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); > > + if (!hotplug_trigger) > + return; > + Oh, but the whole point of the patch ( drm/i915: Handle HPD when it has actually occurred) was to disallaow writing to PCH_PORT_HOTPLUG register when the HPD did not occur. And this shows stable HPD with SKL for me and was inline with other interrupts handling. Do these "[drm:gen8_irq_handler [i915]] *ERROR* The master control interrupt lied (SDE)!" messages have any effect on HPD? > intel_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger, > dig_hotplug_reg, hpd, > pch_port_hotplug_long_detect); > @@ -1934,8 +1937,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) >> Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/39 ------------------------------------------------------------------------ On 2015-10-05T11:26:42+00:00 Jani-nikula wrote: (In reply to Ville Syrjala from comment #13) > (In reply to Jani Nikula from comment #12) > > 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. > > + if (!hotplug_trigger) > > + return; > > + > > intel_get_hpd_pins(&pin_mask, &long_mask, hotplug_trigger, > > dig_hotplug_reg, hpd, > > pch_port_hotplug_long_detect); > > @@ -1934,8 +1937,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) >> Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/40 ------------------------------------------------------------------------ On 2015-10-05T12:04:57+00:00 Ville-syrjala-e wrote: (In reply to Jani Nikula from comment #15) > (In reply to Ville Syrjala from comment #13) > > (In reply to Jani Nikula from comment #12) > > > 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. 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; Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/41 ------------------------------------------------------------------------ On 2015-10-12T07:02:52+00:00 Jani-nikula wrote: Also http://mid.gmane.org/20151010190843.gb27...@malice.jf.intel.com Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/45 ------------------------------------------------------------------------ On 2015-10-14T07:12:15+00:00 Jani-nikula wrote: *** Bug 92454 has been marked as a duplicate of this bug. *** Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/50 ------------------------------------------------------------------------ On 2015-10-23T13:27:48+00:00 Daniel-ffwll wrote: commit 97e5ed1111dcc5300a0f59a55248cd243937a8ab Author: Daniel Vetter <daniel.vet...@ffwll.ch> Date: Fri Oct 23 10:56:12 2015 +0200 drm/i915: shut up gen8+ SDE irq dmesg noise Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/55 ------------------------------------------------------------------------ On 2015-10-30T14:38:06+00:00 Jani-nikula wrote: 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) >> Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/57 ------------------------------------------------------------------------ On 2015-11-26T14:29:15+00:00 Jani-nikula wrote: commit 6a39d7c986be4fd18eb019e9cdbf774ec36c9f77 Author: Jani Nikula <jani.nik...@intel.com> Date: Wed Nov 25 16:47:22 2015 +0200 drm/i915: fix the SDE irq dmesg warnings properly Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/70 ------------------------------------------------------------------------ On 2015-12-15T15:32:44+00:00 Chris Wilson wrote: Still present as of commit 0035ecf934fae0492c2d90390f88b8c79e806ffa Author: Daniel Vetter <daniel.vet...@ffwll.ch> Date: Mon Dec 14 10:41:10 2015 +0100 drm-intel-nightly: 2015y-12m-14d-09h-40m-37s UTC integration manifest will look into the debug printk next time I have the box connected to a display. Reply at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1488719/comments/77 ** Changed in: linux Status: Unknown => Confirmed ** Changed in: linux Importance: Unknown => Medium -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1488719 Title: dmesg shows "[drm:gen8_irq_handler [i915]] *ERROR* The master control interrupt lied (SDE)!" To manage notifications about this bug go to: https://bugs.launchpad.net/linux/+bug/1488719/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs