From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 80683] New: EDID valid check ignores errors in CEA blocks
Date: Sun, 29 Jun 2014 17:41:39 +0000
Message-ID:
Priority
medium
Bug ID
80683
Assignee
dri-devel@lists.freedesktop.org
Summary
EDID valid check ignores errors in CEA blocks
Severity
normal
Classification
Unclassified
OS
All
Reporter
stefan.bruens@rwth-aachen.de
Hardware
Other
Status
NEW
Version
DRI CVS
Component
DRM/other
Product
DRI
in linux/drivers/gpu/drm/drm_edid.c:
bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid)
{
...
if (csum) {
if (print_bad_edid) {
DRM_ERROR("EDID checksum is invalid, remainder is
%d\n", csum);
}
/* allow CEA to slide through, switches mangle this */
if (raw_edid[0] != 0x02)
goto bad;
}
...
return true;
---
i.e. CEA blocks are always reported as valid.
This occurs frequently for me with a Radeon 7750 and a Dell U2713HM connected
via DisplayPort, the I2C-over-AUX seems to be buggy and swallows single bytes.
If I change the "return true;" to "return !csum;" bad transfers are retried.