aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2010-03-29 17:43:25 -0400
committerDave Airlie <airlied@redhat.com>2010-04-05 20:40:21 -0400
commita327f6b806103ee177aba20bb1e42ba7ec7d0f4b (patch)
treebd0da52175358cd6c5d1ebfec1e0e4c32dcc1a5d
parent59d8aff6e4fc2705053e7ce2948b51f7fe507536 (diff)
drm/edid: Fix preferred mode parse for EDID 1.4
In 1.4, the first detailed mode is always the preferred mode. The bit that used to mean that, now means "this mode is the physical size in pixels". Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--drivers/gpu/drm/drm_edid.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 9aa65b289d01..2e1298cf576f 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1295,7 +1295,10 @@ static int add_detailed_info(struct drm_connector *connector,
1295 1295
1296 for (i = 0; i < EDID_DETAILED_TIMINGS; i++) { 1296 for (i = 0; i < EDID_DETAILED_TIMINGS; i++) {
1297 struct detailed_timing *timing = &edid->detailed_timings[i]; 1297 struct detailed_timing *timing = &edid->detailed_timings[i];
1298 int preferred = (i == 0) && (edid->features & DRM_EDID_FEATURE_PREFERRED_TIMING); 1298 int preferred = (i == 0);
1299
1300 if (preferred && edid->version == 1 && edid->revision < 4)
1301 preferred = (edid->features & DRM_EDID_FEATURE_PREFERRED_TIMING);
1299 1302
1300 /* In 1.0, only timings are allowed */ 1303 /* In 1.0, only timings are allowed */
1301 if (!timing->pixel_clock && edid->version == 1 && 1304 if (!timing->pixel_clock && edid->version == 1 &&