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

Ville Syrjälä
2019-06-25T14:22:33Z

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@intel.com>

Reviewed-by: Ville Syrjälä <ville.syrjala@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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

--
Ville Syrjälä
Intel