Merge branch 'drm-core-next' into drm-linus
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / drm / drm_edid.c
index 30af8f3e6427d9f135e042976f1848c574b7f3b3..c39b26f1abed050aed19d27407d1890035bd17d9 100644 (file)
@@ -673,6 +673,12 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_device *dev,
                return NULL;
        }
 
+       /* Some EDIDs have bogus h/vtotal values */
+       if (mode->hsync_end > mode->htotal)
+               mode->htotal = mode->hsync_end + 1;
+       if (mode->vsync_end > mode->vtotal)
+               mode->vtotal = mode->vsync_end + 1;
+
        drm_mode_set_name(mode);
 
        if (pt->misc & DRM_EDID_PT_INTERLACED)