[igt-dev] [PATCH i-g-t v4 01/10] lib/igt_edid: add edid_get_size

Ville Syrjälä ville.syrjala at linux.intel.com
Tue Jun 25 14:19:30 UTC 2019


On Tue, Jun 25, 2019 at 04:14:22PM +0300, Simon Ser wrote:
> This is a simple helper to get the size in bytes of an arbitrary EDID.
> 
> Signed-off-by: Simon Ser <simon.ser at intel.com>

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

> ---
>  lib/igt_chamelium.c |  6 ++----
>  lib/igt_edid.c      | 10 ++++++++++
>  lib/igt_edid.h      |  1 +
>  3 files changed, 13 insertions(+), 4 deletions(-)
> 
> diff --git a/lib/igt_chamelium.c b/lib/igt_chamelium.c
> index b83ff395d44b..966d78dce146 100644
> --- a/lib/igt_chamelium.c
> +++ b/lib/igt_chamelium.c
> @@ -538,12 +538,10 @@ struct chamelium_edid *chamelium_new_edid(struct chamelium *chamelium,
>  	xmlrpc_value *res;
>  	struct chamelium_edid *chamelium_edid;
>  	int edid_id;
> -	struct edid *edid = (struct edid *) raw_edid;
> -	size_t edid_size = sizeof(struct edid) +
> -			   edid->extensions_len * sizeof(struct edid_ext);
> +	const struct edid *edid = (struct edid *) raw_edid;
>  
>  	res = chamelium_rpc(chamelium, NULL, "CreateEdid", "(6)",
> -			    raw_edid, edid_size);
> +			    raw_edid, edid_get_size(edid));
>  
>  	xmlrpc_read_int(&chamelium->env, res, &edid_id);
>  	xmlrpc_DECREF(res);
> diff --git a/lib/igt_edid.c b/lib/igt_edid.c
> index e71136f48e14..6cc5e7dd42c4 100644
> --- a/lib/igt_edid.c
> +++ b/lib/igt_edid.c
> @@ -274,6 +274,16 @@ void edid_update_checksum(struct edid *edid)
>  					  sizeof(struct edid));
>  }
>  
> +/**
> + * edid_get_size: return the size of the EDID block in bytes including EDID
> + * extensions, if any.
> + */
> +size_t edid_get_size(const struct edid *edid)
> +{
> +	return sizeof(struct edid) +
> +	       edid->extensions_len * sizeof(struct edid_ext);
> +}
> +
>  /**
>   * cea_sad_init_pcm:
>   * @channels: the number of supported channels (max. 8)
> diff --git a/lib/igt_edid.h b/lib/igt_edid.h
> index 00596ef1a46f..8d8e30ec0554 100644
> --- a/lib/igt_edid.h
> +++ b/lib/igt_edid.h
> @@ -297,6 +297,7 @@ struct edid {
>  void edid_init(struct edid *edid);
>  void edid_init_with_mode(struct edid *edid, drmModeModeInfo *mode);
>  void edid_update_checksum(struct edid *edid);
> +size_t edid_get_size(const struct edid *edid);
>  void detailed_timing_set_mode(struct detailed_timing *dt, drmModeModeInfo *mode,
>  			      int width_mm, int height_mm);
>  void detailed_timing_set_monitor_range_mode(struct detailed_timing *dt,
> -- 
> 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