drm: Re-add DMT modes for monitors
authorLiviu Dudau <Liviu.Dudau@arm.com>
Wed, 30 Jul 2014 14:45:53 +0000 (15:45 +0100)
committerLiviu Dudau <Liviu.Dudau@arm.com>
Thu, 7 Aug 2014 15:44:25 +0000 (16:44 +0100)
Commit 196e077dc165a307efbd9e7569f81bbdbcf18f65
"drm: don't add inferred modes for monitors that don't support them"

It remove the call add_inferred_modes when DRM_EDID_FEATURE_DEFAULT_GTF
in feature support field is zero, this remove all inferred modes
come from GTF or CVT range information, and also remove DMT modes,
this make me lost some avaiable modes for my TV.

Signed-off-by: Wang YanQing <udknight@gmail.com>
Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
drivers/gpu/drm/drm_edid.c

index a9e3ad6..5031003 100644 (file)
@@ -2056,7 +2056,8 @@ do_inferred_modes(struct detailed_timing *timing, void *c)
                                                  closure->edid,
                                                  timing);
        
-       if (!version_greater(closure->edid, 1, 1))
+       if (!version_greater(closure->edid, 1, 1) ||
+               !(closure->edid->features & DRM_EDID_FEATURE_DEFAULT_GTF))
                return; /* GTF not defined yet */
 
        switch (range->flags) {
@@ -3503,8 +3504,7 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
        num_modes += add_cvt_modes(connector, edid);
        num_modes += add_standard_modes(connector, edid);
        num_modes += add_established_modes(connector, edid);
-       if (edid->features & DRM_EDID_FEATURE_DEFAULT_GTF)
-               num_modes += add_inferred_modes(connector, edid);
+       num_modes += add_inferred_modes(connector, edid);
        num_modes += add_cea_modes(connector, edid);
        num_modes += add_alternate_cea_modes(connector, edid);