Bug 80683 - EDID valid check ignores errors in CEA blocks
Summary: EDID valid check ignores errors in CEA blocks
Status: NEW
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:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-06-29 17:41 UTC by Stefan Brüns
Modified: 2014-06-29 17:41 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.


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.