File tree Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -2040,6 +2040,36 @@ bool drm_edid_is_valid(struct edid *edid)
2040
2040
}
2041
2041
EXPORT_SYMBOL (drm_edid_is_valid );
2042
2042
2043
+ /**
2044
+ * drm_edid_valid - sanity check EDID data
2045
+ * @drm_edid: EDID data
2046
+ *
2047
+ * Sanity check an EDID. Cross check block count against allocated size and
2048
+ * checksum the blocks.
2049
+ *
2050
+ * Return: True if the EDID data is valid, false otherwise.
2051
+ */
2052
+ bool drm_edid_valid (const struct drm_edid * drm_edid )
2053
+ {
2054
+ int i ;
2055
+
2056
+ if (!drm_edid )
2057
+ return false;
2058
+
2059
+ if (edid_size_by_blocks (__drm_edid_block_count (drm_edid )) != drm_edid -> size )
2060
+ return false;
2061
+
2062
+ for (i = 0 ; i < drm_edid_block_count (drm_edid ); i ++ ) {
2063
+ const void * block = drm_edid_block_data (drm_edid , i );
2064
+
2065
+ if (!edid_block_valid (block , i == 0 ))
2066
+ return false;
2067
+ }
2068
+
2069
+ return true;
2070
+ }
2071
+ EXPORT_SYMBOL (drm_edid_valid );
2072
+
2043
2073
static struct edid * edid_filter_invalid_blocks (struct edid * edid ,
2044
2074
size_t * alloc_size )
2045
2075
{
Original file line number Diff line number Diff line change @@ -606,6 +606,7 @@ drm_display_mode_from_cea_vic(struct drm_device *dev,
606
606
const struct drm_edid * drm_edid_alloc (const void * edid , size_t size );
607
607
const struct drm_edid * drm_edid_dup (const struct drm_edid * drm_edid );
608
608
void drm_edid_free (const struct drm_edid * drm_edid );
609
+ bool drm_edid_valid (const struct drm_edid * drm_edid );
609
610
const struct edid * drm_edid_raw (const struct drm_edid * drm_edid );
610
611
const struct drm_edid * drm_edid_read (struct drm_connector * connector );
611
612
const struct drm_edid * drm_edid_read_ddc (struct drm_connector * connector ,
You can’t perform that action at this time.
0 commit comments