On Sun, Dec 09, 2012 at 08:14:58PM +0100, Daniel Vetter wrote: > For GMCH platforms we set up the hpd irq registers in the irq > postinstall hook. But since we only enable the irq sources we actually > need in PORT_HOTPLUG_EN/STATUS, taking dev_priv->hotplug_supported_mask > into account, no hpd interrupt sources is enabled since > > commit 52d7ecedac3f96fb562cb482c139015372728638 > Author: Daniel Vetter <daniel.vetter at ffwll.ch> > Date: Sat Dec 1 21:03:22 2012 +0100 > > drm/i915: reorder setup sequence to have irqs for output setup > > Wrongly set-up interrupts also lead broken hw-based load-detection on > at least GM45, resulting in ghost VGA/TV-out outputs. > > To fix this, delay the hotplug register setup until after all outputs > are set up, by moving it into a new dev_priv->display.hpd_irq_callback. > We might also move the PCH_SPLIT platforms to such a setup eventually. > > Another funny part is that we need to delay the fbdev initial config > probing until after the hpd regs are setup, for otherwise it'll detect > ghost outputs. But we can only enable the hpd interrupt handling > itself (and the output polling) _after_ that initial scan, due to > massive locking brain-damage in the fbdev setup code. Add a big > comment to explain this cute little dragon lair. > > Reported-by: Chris Wilson <chris at chris-wilson.co.uk> > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54943 -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch