drm/i915/hdmi: Read the HPD status before trying to read the EDID
authorDamien Lespiau <damien.lespiau@intel.com>
Thu, 13 Dec 2012 16:09:00 +0000 (16:09 +0000)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 14 Dec 2012 10:12:58 +0000 (11:12 +0100)
commitb0ea7d37a8f63eeec5ae80b4a6403cfba01da02f
treed54a30f90184ab61225ff1f79ddf2eb8debc12c1
parentb696519e51910943f084ea0fc8bdceceae8383ef
drm/i915/hdmi: Read the HPD status before trying to read the EDID

If you unplug the hdmi connector slowly enough, the hotplug interrupt
fires but then the kernel code tries to read the EDID and succeeds
(because the connector is still half connected, the HPD pin is shorter
than the others, and DDC works). Since EDID succeeds it thinks the
monitor is still connected.

To prevent that, read the live HPD status in the hotplug handler before
trying to read the EDID.

v2: Rename the function to ibx_ (Chris Wilson)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55372
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_hdmi.c