[Intel-gfx] [PATCH] drm/i915/crt: Do not rely upon the HPD presence pin

Dave Airlie airlied at gmail.com
Thu May 31 15:34:17 CEST 2012


On Thu, May 31, 2012 at 1:08 PM, Chris Wilson <chris at chris-wilson.co.uk> wrote:
> Whilst most monitors do wire up the HPD presence pin, it seems quite a
> few KVM do not. Therefore if we simply rely on the HPD pin being
> asserted to indicate a connected monitor we fail miserable, so fall back
> to performing a DCC query for the EDID.

This message is wrong though, the pin is a lie, there is no HPD pin on
the standard
VGA cable.

VGA load detect is done by measuring the resistance across some pins,
a lot of kvms use bad resistor values, should be 50Ohm, someone got some cheap
75Ohm from a TV or something.

Dave.

>
> Reported-and-tested-by: Matthieu LAVIE <boiteamadmax at hotmail.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50501
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
>  drivers/gpu/drm/i915/intel_crt.c |    8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
> index f0223d0..804611e 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -453,13 +453,15 @@ intel_crt_detect(struct drm_connector *connector, bool force)
>        struct intel_load_detect_pipe tmp;
>
>        if (I915_HAS_HOTPLUG(dev)) {
> +               /* We can not rely on the HPD pin always being correctly wired
> +                * up, for example many KVM do not pass it through, and so
> +                * only trust an assertion that the monitor is connected.
> +                */
>                if (intel_crt_detect_hotplug(connector)) {
>                        DRM_DEBUG_KMS("CRT detected via hotplug\n");
>                        return connector_status_connected;
> -               } else {
> +               } else
>                        DRM_DEBUG_KMS("CRT not detected via hotplug\n");
> -                       return connector_status_disconnected;
> -               }
>        }
>
>        if (intel_crt_detect_ddc(connector))
> --
> 1.7.10
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



More information about the Intel-gfx mailing list