[igt-dev] [PATCH i-g-t 4/5] lib/igt_edid: add support for Short Video Descriptors

Ville Syrjälä ville.syrjala at linux.intel.com
Tue Jul 2 15:41:56 UTC 2019


On Tue, Jul 02, 2019 at 03:50:37PM +0300, Simon Ser wrote:
> Short Video Descriptors (SVDs, not to be confused with Vendor-Specific Data
> blocks) describe CEA video formats supported by the monitor.
> 
> Signed-off-by: Simon Ser <simon.ser at intel.com>

Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

> ---
>  lib/igt_edid.c | 8 ++++++++
>  lib/igt_edid.h | 6 ++++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/lib/igt_edid.c b/lib/igt_edid.c
> index 93202c138161..9a365dc40352 100644
> --- a/lib/igt_edid.c
> +++ b/lib/igt_edid.c
> @@ -369,6 +369,14 @@ size_t edid_cea_data_block_set_sad(struct edid_cea_data_block *block,
>  	return sizeof(struct edid_cea_data_block) + sads_size;
>  }
>  
> +size_t edid_cea_data_block_set_svd(struct edid_cea_data_block *block,
> +				   const uint8_t *svds, size_t svds_len)
> +{
> +	edid_cea_data_block_init(block, EDID_CEA_DATA_VIDEO, svds_len);
> +	memcpy(block->data.svds, svds, svds_len);
> +	return sizeof(struct edid_cea_data_block) + svds_len;
> +}
> +
>  size_t edid_cea_data_block_set_vsd(struct edid_cea_data_block *block,
>  				   const struct cea_vsd *vsd, size_t vsd_size)
>  {
> diff --git a/lib/igt_edid.h b/lib/igt_edid.h
> index 702c14c54b5e..55bdf8a1037b 100644
> --- a/lib/igt_edid.h
> +++ b/lib/igt_edid.h
> @@ -191,6 +191,9 @@ struct cea_sad {
>  	uint8_t bitrate;
>  } __attribute__((packed));
>  
> +/* Indicates that a Short Video Descriptor is native */
> +#define CEA_SVD_NATIVE (1 << 7)
> +
>  enum hdmi_vsd_flags1 {
>  	HDMI_VSD_DVI_DUAL = 1 << 0,
>  	HDMI_VSD_DC_Y444 = 1 << 3, /* supports YCbCr 4:4:4 */
> @@ -261,6 +264,7 @@ struct edid_cea_data_block {
>  	uint8_t type_len; /* type is from enum edid_cea_data_type */
>  	union {
>  		struct cea_sad sads[0];
> +		uint8_t svds[0]; /* Short Video Descriptors */
>  		struct cea_vsd vsds[0];
>  		struct cea_speaker_alloc speakers[0];
>  	} data;
> @@ -351,6 +355,8 @@ void edid_ext_update_cea_checksum(struct edid_ext *ext);
>  const struct cea_vsd *cea_vsd_get_hdmi_default(size_t *size);
>  size_t edid_cea_data_block_set_sad(struct edid_cea_data_block *block,
>  				   const struct cea_sad *sads, size_t sads_len);
> +size_t edid_cea_data_block_set_svd(struct edid_cea_data_block *block,
> +				   const uint8_t *svds, size_t svds_len);
>  size_t edid_cea_data_block_set_vsd(struct edid_cea_data_block *block,
>  				   const struct cea_vsd *vsd, size_t vsd_size);
>  size_t edid_cea_data_block_set_hdmi_vsd(struct edid_cea_data_block *block,
> -- 
> 2.22.0
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

-- 
Ville Syrjälä
Intel


More information about the igt-dev mailing list