The code modifying the EDID block should not need to do tricks to fix
the checksum. We have a function for computing the checksum, use it.

Cc: Ville Syrjälä <ville.syrj...@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nik...@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
---
 drivers/gpu/drm/drm_edid.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 8bf0ae72fd2c..04e818ecd662 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1842,8 +1842,8 @@ static struct edid *edid_filter_invalid_blocks(const 
struct edid *edid,
                        memcpy(dest_block++, block, EDID_LENGTH);
        }
 
-       new->checksum += new->extensions - valid_extensions;
        new->extensions = valid_extensions;
+       new->checksum = edid_block_compute_checksum(new);
 
 out:
        kfree(edid);
-- 
2.30.2

Reply via email to