[Intel-gfx] [PATCH v2 5/5] drm/edid: Make sure the CEA mode arrays have the correct amount of modes
Ville Syrjälä
ville.syrjala at linux.intel.com
Thu Jul 11 14:42:24 UTC 2019
On Thu, Jul 11, 2019 at 01:32:34PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> We depend on a specific relationship between the VIC number and the
> index in the CEA mode arrays. Assert that the arrays have the excpected
> size to make sure we've not accidentally left holes in them.
>
> Cc: Hans Verkuil <hansverk at cisco.com>
> Cc: Shashank Sharma <shashank.sharma at intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
> ---
> drivers/gpu/drm/drm_edid.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index e6b1e785d158..f0b449225727 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -3209,6 +3209,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(ARRAY_SIZE(edid_cea_modes_1) != 127);
> + BUILD_BUG_ON(ARRAY_SIZE(edid_cea_modes_193) != 27);
Maybe better to write these as something like
BUILD_BUG_ON(1 + ARRAY_SIZE(edid_cea_modes_1) - 1 != 127);
BUILD_BUG_ON(193 + ARRAY_SIZE(edid_cea_modes_193) - 1 != 219);
to make it super trivial to cross check against the VICs of the
first and last entry in the arrays.
> +
> 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))
> --
> 2.21.0
--
Ville Syrjälä
Intel
More information about the Intel-gfx
mailing list