[PATCH 06/11] drm/i915: Add supporting structure for Displayport Link CTS test 4.2.2.6
Emil Velikov
emil.l.velikov at gmail.com
Fri Apr 10 10:45:28 PDT 2015
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 at gmail.com>
> Cc: dri-devel at lists.freedesktop.org
> ---
> 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
More information about the dri-devel
mailing list