[Intel-gfx] [PATCH] drm/i915: Fixup hpd irq register setup ordering
Chris Wilson
chris at chris-wilson.co.uk
Mon Dec 10 14:40:39 CET 2012
On Sun, 9 Dec 2012 20:42:01 +0100, Daniel Vetter <daniel.vetter at ffwll.ch> 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.
>
> v2: Encapsulate all the fbdev handling by wrapping the move call into
> intel_fbdev_initial_config in intel_fb.c. Requested by Chris Wilson.
>
> Bugzilla: Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54943
> Reported-by: Chris Wilson <chris at chris-wilson.co.uk>
> Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
Works for me, thanks.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list