drm/edid: Allow non-fatal checksum errors in CEA blocks
authorAdam Jackson <ajax@redhat.com>
Tue, 25 May 2010 20:33:09 +0000 (16:33 -0400)
committerDave Airlie <airlied@redhat.com>
Wed, 26 May 2010 00:29:58 +0000 (10:29 +1000)
Switches will try to update the topology address and not correctly fix
up the checksum, so just let it slide.

https://bugs.freedesktop.org/28229

Signed-off-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_edid.c

index f569ae88ab384c60d09929aeebac1983d3fcf100..c1981861bbbdb418ab58f9c9400e6c41a9430216 100644 (file)
@@ -147,7 +147,10 @@ drm_edid_block_valid(u8 *raw_edid)
                csum += raw_edid[i];
        if (csum) {
                DRM_ERROR("EDID checksum is invalid, remainder is %d\n", csum);
-               goto bad;
+
+               /* allow CEA to slide through, switches mangle this */
+               if (raw_edid[0] != 0x02)
+                       goto bad;
        }
 
        /* per-block-type checks */