[Intel-gfx] [PATCH] drm/i915: Fixup hpd irq register setup ordering

Daniel Vetter daniel at ffwll.ch
Sun Dec 9 20:17:54 CET 2012


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



More information about the Intel-gfx mailing list