diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2014-02-13 03:53:16 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2014-02-13 03:53:16 +0000 |
commit | f064eeb2568b9a5d36899271596c4da366f8d2ab (patch) | |
tree | c6b14101ecf68a2c721e5c5cdabfe438f79249b1 /sys/dev | |
parent | d219a021f02063b756f7ccdf10455fc33bc48b40 (diff) |
drm/i915: prefer VBT modes for SVDO-LVDS over EDID
From Daniel Vetter
795de6db7c0397315b083c6dbf57cecd2c6ad098 in ubuntu 3.8
c3456fb3e4712d0448592af3c5d644c9472cd3c1 in mainline linux
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/pci/drm/i915/intel_sdvo.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/dev/pci/drm/i915/intel_sdvo.c b/sys/dev/pci/drm/i915/intel_sdvo.c index e72cef53f92..a4faff94267 100644 --- a/sys/dev/pci/drm/i915/intel_sdvo.c +++ b/sys/dev/pci/drm/i915/intel_sdvo.c @@ -1,4 +1,4 @@ -/* $OpenBSD: intel_sdvo.c,v 1.14 2014/02/13 03:49:00 jsg Exp $ */ +/* $OpenBSD: intel_sdvo.c,v 1.15 2014/02/13 03:53:15 jsg Exp $ */ /* * Copyright 2006 Dave Airlie <airlied@linux.ie> * Copyright © 2006-2007 Intel Corporation @@ -1772,10 +1772,13 @@ static void intel_sdvo_get_lvds_modes(struct drm_connector *connector) * arranged in priority order. */ intel_ddc_get_modes(connector, &intel_sdvo->ddc); - if (list_empty(&connector->probed_modes) == false) - goto end; - /* Fetch modes from VBT */ + /* + * Fetch modes from VBT. For SDVO prefer the VBT mode since some + * SDVO->LVDS transcoders can't cope with the EDID mode. Since + * drm_mode_probed_add adds the mode at the head of the list we add it + * last. + */ if (dev_priv->sdvo_lvds_vbt_mode != NULL) { newmode = drm_mode_duplicate(connector->dev, dev_priv->sdvo_lvds_vbt_mode); @@ -1787,7 +1790,6 @@ static void intel_sdvo_get_lvds_modes(struct drm_connector *connector) } } -end: list_for_each_entry(newmode, &connector->probed_modes, head) { if (newmode->type & DRM_MODE_TYPE_PREFERRED) { intel_sdvo->sdvo_lvds_fixed_mode = |