drm/edid: Skip empty CVT codepoints
authorAdam Jackson <ajax@redhat.com>
Mon, 4 Jan 2010 22:53:06 +0000 (17:53 -0500)
committerDave Airlie <airlied@redhat.com>
Thu, 7 Jan 2010 03:17:48 +0000 (13:17 +1000)
Signed-off-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_edid.c

index 5c9f798..7d6ac22 100644 (file)
@@ -911,11 +911,15 @@ static int drm_cvt_modes(struct drm_connector *connector,
        struct drm_device *dev = connector->dev;
        struct cvt_timing *cvt;
        const int rates[] = { 60, 85, 75, 60, 50 };
+       const u8 empty[3] = { 0, 0, 0 };
 
        for (i = 0; i < 4; i++) {
                int uninitialized_var(width), height;
                cvt = &(timing->data.other_data.data.cvt[i]);
 
+               if (!memcmp(cvt->code, empty, 3))
+                       continue;
+
                height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 8) + 1) * 2;
                switch (cvt->code[1] & 0xc0) {
                case 0x00: