summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2010-05-25 22:33:09 +0200
committerDave Airlie <airlied@redhat.com>2010-05-26 02:29:58 +0200
commit4a638b4e38234233f5c7e6705662fbc0b58d80c2 (patch)
treee4671b361ec2a57cc0ce86aa457939ea6c664efe /drivers
parentdrm/radeon/kms: suppress a build warning (unused variable) (diff)
downloadlinux-4a638b4e38234233f5c7e6705662fbc0b58d80c2.tar.xz
linux-4a638b4e38234233f5c7e6705662fbc0b58d80c2.zip
drm/edid: Allow non-fatal checksum errors in CEA blocks
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>
Diffstat (limited to 'drivers')
-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 f569ae88ab38..c1981861bbbd 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -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 */