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@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.