Re: [3.9-rc1] irq 16: nobody cared (was [3.9-rc1] very poor interruptresponses)

From: Jiri Kosina
Date: Fri Mar 15 2013 - 11:14:31 EST


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@xxxxxxxx>
> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/