On Wed, Jun 21, 2017 at 04:04:01PM +0530, Shashank Sharma wrote: > CEA-861-F specs defines new video modes to be used with > HDMI 2.0 EDIDs. The VIC range has been extended from 1-64 to > 1-107. > > Our existing CEA modedb contains only 64 modes (VIC=1 to VIC=64). Now > to be able to parse new CEA modes using the existing methods, we have > to complete the modedb (VIC=65 onwards). > > This patch adds: > - Timings for existing CEA video modes (from VIC=65 till VIC=92) > - Newly added 4k modes (from VIC=93 to VIC=107). > > The patch was originaly discussed and reviewed here: > https://patchwork.freedesktop.org/patch/135810/ > > Cc: Ville Syrjala <ville.syrjala@xxxxxxxxxxxxxxx> > Cc: Jose Abreu <Jose.Abreu@xxxxxxxxxxxx> > Cc: Andrzej Hajda <a.hajda@xxxxxxxxxxx> > Cc: Alex Deucher <alexander.deucher@xxxxxxx> > Cc: Harry Wentland <harry.wentland@xxxxxxx> > > V2: Rebase > V3: Rebase > V4: Added native bit handling as per CEA-861-F spec (Ville) > > Reviewed-by: Jose Abreu <Jose.Abreu@xxxxxxxxxxxx> > Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > Acked-by: Harry Wentland <harry.wentland@xxxxxxx> > Signed-off-by: Shashank Sharma <shashank.sharma@xxxxxxxxx> > --- > drivers/gpu/drm/drm_edid.c | 227 ++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 226 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index d312fe1..e2d1b30 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -1006,6 +1006,221 @@ static const struct drm_display_mode edid_cea_modes[] = { > 2492, 2640, 0, 1080, 1084, 1089, 1125, 0, > DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), > .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9, }, ... > + /* 77 - 1920x1080@100Hz */ > + { DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 297000, 1920, 2448, > + 2492, 2640, 0, 1080, 1084, 1094, 1125, 0, > + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), > + .vrefresh = 100, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27, }, ... > + /* 104 - 3840x2160p@25Hz 64:27 */ > + { DRM_MODE("3840x2160", DRM_MODE_TYPE_DRIVER, 297000, 3840, 4016, > + 4104, 4400, 0, 2160, 2168, 2178, 2250, 0, > + DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC), > + .vrefresh = 25, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_64_27}, https://lists.freedesktop.org/archives/dri-devel/2016-November/122669.html > @@ -2902,6 +3117,16 @@ add_alternate_cea_modes(struct drm_connector *connector, struct edid *edid) > return modes; > } > > +static u8 svd_to_vic(u8 svd) > +{ > + > + /* 0-6 bit vic, 7th bit native mode indicator */ > + if (((svd >= 1) && (svd <= 64)) || ((svd >= 129) && (svd <= 192))) Too many parentheses. lgtm otherwise. > + return svd & 127; > + > + return svd; > +} > + > static struct drm_display_mode * > drm_display_mode_from_vic_index(struct drm_connector *connector, > const u8 *video_db, u8 video_len, > @@ -2915,7 +3140,7 @@ drm_display_mode_from_vic_index(struct drm_connector *connector, > return NULL; > > /* CEA modes are numbered 1..127 */ > - vic = (video_db[video_index] & 127); > + vic = svd_to_vic(video_db[video_index]); > if (!drm_valid_cea_vic(vic)) > return NULL; > > -- > 2.7.4 -- Ville Syrjälä Intel OTC _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel