[3.9-rc1] irq 16: nobody cared (was [3.9-rc1] very poor interrupt responses)
Jiri Kosina
jkosina at suse.cz
Fri Mar 15 08:14:17 PDT 2013
On Fri, 15 Mar 2013, Jiri Kosina wrote:
> > I have the same problem on my Lenovo T500. I think the graphics card is
> > involved.
> >
> > This laptop has "hybrid graphics" - one Intel GMA 4500MHD and one ATI
> > Mobility Radeon HD 3650. When I boot with the Intel card, I get "irq 16:
> > nobody cared" during boot, not when I boot with the ATI card.
>
> Confirming this. After a lot of hassle, I have bisected this reliably to
>
> commit 28c70f162a315bdcfbe0bf940a740ef8bfb918d6
> Author: Daniel Vetter <daniel.vetter at ffwll.ch>
> Date: Sat Dec 1 13:53:45 2012 +0100
>
> drm/i915: use the gmbus irq for waits
>
> Adding Daniel, Imre and Daniel to CC while I will try to figure out what's
> happening in parallel.
>
> Attaching dmesg.txt from the machine with 28c70f162a as head, with
> drm.debug=0xe.
Just a datapoint -- I have put a trivial debugging patch in place, and it
reveals that "nobody cared" for irq 16 happens long after last
I915_WRITE(GMBUS4 + reg_offset, 0);
has been performed in gmbus_wait_hw_status(). On the other hand, if I
comment out both GMBUS4 register offset writes in gmbus_wait_hw_status(),
then it of course falls back to GPIO bit-banging, but the "nobody cared"
for irq 16 is gone.
So it seems like something gets severely confused by the I915_WRITE to
GMBUS4 + reg_offset. So far this seems to have been reported solely on
Lenovos as far as I can see (although a completely different types), so it
might be some platform-specific quirk?
Honestly, I still don't understand how all the GMBUS stuff relates to IRQ
16 at all.
--
Jiri Kosina
SUSE Labs
More information about the dri-devel
mailing list