Re: [PATCH] drm: fix HDR static metadata type field numbering

From: Ville Syrjälä
Date: Wed Nov 27 2019 - 10:17:10 EST


On Wed, Nov 27, 2019 at 02:42:35PM +0000, Laurentiu Palcu wrote:
> According to CTA-861 specification, HDR static metadata data block allows a
> sink to indicate which HDR metadata types it supports by setting the SM_0 to
> SM_7 bits. Currently, only Static Metadata Type 1 is supported and this is
> indicated by setting the SM_0 bit to 1.
>
> However, the connector->hdr_sink_metadata.hdmi_type1.metadata_type is always
> 0, because hdr_metadata_type() in drm_edid.c checks the wrong bit.
>
> This patch corrects the HDMI_STATIC_METADATA_TYPE1 bit position.

Was confused for a while why this has even been workning, but I guess
that's due to userspace populating the metadata infoframe blob correctly
even if we misreported the metadata types in the parsed EDID metadata
blob.

Hmm. Actually on further inspection this all seems to be dead code. The
only thing we seem to use from the parsed EDID metadata stuff is
eotf bitmask. We check that in drm_hdmi_infoframe_set_hdr_metadata()
but we don't check the metadata type.

Maybe we should just nuke this EDID parsing stuff entirely? Seems
pretty much pointless.

>
> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@xxxxxxx>
> ---
> include/linux/hdmi.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/hdmi.h b/include/linux/hdmi.h
> index 9918a6c..216e25e 100644
> --- a/include/linux/hdmi.h
> +++ b/include/linux/hdmi.h
> @@ -155,7 +155,7 @@ enum hdmi_content_type {
> };
>
> enum hdmi_metadata_type {
> - HDMI_STATIC_METADATA_TYPE1 = 1,
> + HDMI_STATIC_METADATA_TYPE1 = 0,
> };
>
> enum hdmi_eotf {
> --
> 2.7.4

--
Ville Syrjälä
Intel