drm/edid: Don't include ext block csum in DispID size
The EDID extension block checksum byte is not part of the
actual DispID data, so don't use it in validate_displayid().
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200313162054.16009-8-ville.syrjala@linux.intel.com
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 35d46f5..d86062d 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -3222,7 +3222,8 @@ static u8 *drm_find_displayid_extension(const struct edid *edid,
if (!displayid)
return NULL;
- *length = EDID_LENGTH;
+ /* EDID extensions block checksum isn't for us */
+ *length = EDID_LENGTH - 1;
*idx = 1;
ret = validate_displayid(displayid, *length, *idx);