Easy enough to do. Tag removed and updated patch posted. Thanks Emil!
On 4/10/2015 10:45 AM, Emil Velikov wrote:
Hi Todd
On 10/04/15 16:12, Todd Previte wrote:
Displayport compliance test 4.2.2.6 requires that a source device be capable of
detecting a corrupt EDID. The test specification states that the sink device
sets up the EDID with an invalid checksum. To do this, the sink sets up an
invalid EDID header, expecting the source device to generate the checksum and
compare it to the value stored in the last byte of the block data.
Unfortunately, the DRM EDID reading and parsing functions are actually too good
in this case; the header is fixed before the checksum is computed and thus the
code never sees the invalid checksum. This results in a failure to pass the
compliance test.
To correct this issue, a checksum is generated when the EDID header is detected
as corrupted. If the checksum is invalid, it sets the header_corrupt flag and
logs the errors. In the case of a more seriously damaged header (fixup score
less than the threshold) the code does not generate the checksum but does set
the header_corrupt flag.
V2:
- Removed the static bool global
- Added a bool to the drm_connector struct to reaplce the static one for
holding the status of raw edid header corruption detection
- Modified the function signature of the is_valid function to take an
additional parameter to store the corruption detected value
- Fixed the other callers of the above is_valid function
V3:
- Updated the commit message to be more clear about what and why this
patch does what it does.
- Added comment in code to clarify the operations there
- Removed compliance variable and check_link_status update; those
have been moved to a later patch
- Removed variable assignment from the bottom of the test handler
Signed-off-by: Todd Previte <tprevite@xxxxxxxxx>
Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
---
drivers/gpu/drm/drm_edid.c | 31 ++++++++++++++++++++++++++-----
drivers/gpu/drm/drm_edid_load.c | 7 +++++--
drivers/gpu/drm/i2c/tda998x_drv.c | 4 ++--
include/drm/drm_crtc.h | 8 +++++++-
4 files changed, 40 insertions(+), 10 deletions(-)
Neither this nor patch 09/11 seems to be i915 specific. If you're doing
another revision you might want to use just "drm:".
Cheers,
Emil
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel