Bug 80683 - EDID valid check ignores errors in CEA blocks
Summary: EDID valid check ignores errors in CEA blocks
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/other (show other bugs)
Version: DRI git
Hardware: Other All
: medium normal
Assignee: Default DRI bug account
QA Contact:
Depends on:
Reported: 2014-06-29 17:41 UTC by Stefan Brüns
Modified: 2019-10-14 13:20 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Description Stefan Brüns 2014-06-29 17:41:39 UTC
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.
Comment 1 Martin Peres 2019-10-14 13:20:10 UTC

Freedesktop's Bugzilla instance is EOLed and open bugs are about to be migrated to http://gitlab.freedesktop.org.

To avoid migrating out of date bugs, I am now closing all the bugs that did not see any activity in the past year. If the issue is still happening, please create a new bug in the relevant project at https://gitlab.freedesktop.org/drm (use misc by default).

Sorry about the noise!

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.