Message ID | 20190711103234.6294-6-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/edid: Add new modes from CTA-861-G | expand |
On Thu, Jul 11, 2019 at 01:32:34PM +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@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@cisco.com> > Cc: Shashank Sharma <shashank.sharma@intel.com> > Signed-off-by: Ville Syrjälä <ville.syrjala@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
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); + 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))