summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2022-03-31 21:45:06 +0300
committerJani Nikula <jani.nikula@intel.com>2022-04-01 17:44:46 +0300
commit23e38d7b48fda3730fe0a7ebc9293dd2810b49d7 (patch)
treec1082570c4a7b84434264a4b88ddaa1a11dc49ed /drivers
parent18d83450468ca57b66c754ec1ec455d5cc853ab4 (diff)
downloadlinux-23e38d7b48fda3730fe0a7ebc9293dd2810b49d7.tar.bz2
drm/edid: simplify block check when filtering invalid blocks
There's no need to handle complicated scenarios or debug log when filtering blocks that have already been identified as invalid. Simplify by adding an edid_block_valid() helper that operates on const data and prints nothing. (Finally, here's the justification for the previously added separate edid_block_status_valid() function!) Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/aa25131c3454c7dbc1e8fdb46549f3787bdf6354.1648752228.git.jani.nikula@intel.com
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/drm_edid.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 21ffcbc01e02..e63a93f138dd 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -1714,6 +1714,12 @@ static bool edid_block_status_valid(enum edid_block_status status, int tag)
(status == EDID_BLOCK_CHECKSUM && tag == CEA_EXT);
}
+static bool edid_block_valid(const void *block, bool base)
+{
+ return edid_block_status_valid(edid_block_check(block, base),
+ edid_block_tag(block));
+}
+
/**
* drm_edid_block_valid - Sanity check the EDID block (base or extension)
* @raw_edid: pointer to raw EDID block
@@ -2080,7 +2086,7 @@ struct edid *drm_do_get_edid(struct drm_connector *connector,
for (i = 0; i <= edid->extensions; i++) {
void *block = edid + i;
- if (!drm_edid_block_valid(block, i, false, NULL))
+ if (!edid_block_valid(block, i == 0))
continue;
memcpy(dest_block, block, EDID_LENGTH);