[Intel-gfx] [RESEND-CI v4 03/15] drm/edid: Complete CEA modedb(VIC 1-107)
Ville Syrjälä
ville.syrjala at linux.intel.com
Tue Jun 27 11:32:41 UTC 2017
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 at linux.intel.com>
> Cc: Jose Abreu <Jose.Abreu at synopsys.com>
> Cc: Andrzej Hajda <a.hajda at samsung.com>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: Harry Wentland <harry.wentland at amd.com>
>
> V2: Rebase
> V3: Rebase
> V4: Added native bit handling as per CEA-861-F spec (Ville)
>
> Reviewed-by: Jose Abreu <Jose.Abreu at synopsys.com>
> Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> Acked-by: Harry Wentland <harry.wentland at amd.com>
> Signed-off-by: Shashank Sharma <shashank.sharma at intel.com>
> ---
> 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 at 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 at 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
More information about the Intel-gfx
mailing list