]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/edid: Make sure the CEA mode arrays have the correct amount of modes
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 13 Dec 2019 17:43:48 +0000 (19:43 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 16 Dec 2019 15:20:41 +0000 (17:20 +0200)
We depend on a specific relationship between the VIC number and the
index in the CEA mode arrays. Assert that the arrays have the expected
size to make sure we've not accidentally left holes in them.

v2: Pimp the BUILD_BUG_ON()s
v3: Fix typos (Manasi)

Cc: Hans Verkuil <hansverk@cisco.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
Reviewed-by: Thomas Anderson <thomasanderson@google.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191213174348.27261-5-ville.syrjala@linux.intel.com
drivers/gpu/drm/drm_edid.c

index 8bc69da53c2ee9b9139bf66a8c02046cdcd40be2..ec5b881204288ca2f57d1c10e53c41f5bd6ff365 100644 (file)
@@ -3213,6 +3213,9 @@ static u8 *drm_find_cea_extension(const struct edid *edid)
 
 static const struct drm_display_mode *cea_mode_for_vic(u8 vic)
 {
+       BUILD_BUG_ON(1 + ARRAY_SIZE(edid_cea_modes_1) - 1 != 127);
+       BUILD_BUG_ON(193 + ARRAY_SIZE(edid_cea_modes_193) - 1 != 219);
+
        if (vic >= 1 && vic < 1 + ARRAY_SIZE(edid_cea_modes_1))
                return &edid_cea_modes_1[vic - 1];
        if (vic >= 193 && vic < 193 + ARRAY_SIZE(edid_cea_modes_193))