Re: [PATCH] drm: Don't block HDR_OUTPUT_METADATA on unknown EOTF

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 24 May 2022 14:33:20 -0400
Harry Wentland <harry.wentland@xxxxxxx> wrote:

> The supported EOTFs are defined in eotf_supported in drm_edid
> but userspace has no way of knowing what is and isn't supported
> when creating an HDR_OUTPUT_METADATA and will only know
> something is wrong when the atomic commit fails.

Hi Harry,

maybe clarify here the two different sets of "supported": EDID data vs.
kernel code? I think the paragraph uses the same word for both meanings.

> 
> Since it is expected that userspace reads the EDID to understand
> what the display supports it doesn't make sense for DRM to block
> an HDR_OUTPUT_METADATA if it contains an EOTF the kernel doesn't
> understand.
> 
> This comes with the added benefit of future-proofing metadata
> support. If the spec defines a new EOTF there is no need to
> update DRM and an compositor can immediately make use of it.
> 
> Fixes: https://gitlab.freedesktop.org/wayland/weston/-/issues/609
> 
> Signed-off-by: Harry Wentland <harry.wentland@xxxxxxx>
> Cc: ppaalanen@xxxxxxxxx
> Cc: sebastian.wick@xxxxxxxxxx
> Cc: vprosyak@xxxxxxx
> Cc: Uma Shankar <uma.shankar@xxxxxxxxx>

Acked-by: Pekka Paalanen <pekka.paalanen@xxxxxxxxxxxxx>


Thanks,
pq

> ---
>  drivers/gpu/drm/drm_edid.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 12893e7be89b..223f96a72064 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -5691,10 +5691,8 @@ drm_hdmi_infoframe_set_hdr_metadata(struct hdmi_drm_infoframe *frame,
>  
>  	/* Sink EOTF is Bit map while infoframe is absolute values */
>  	if (!is_eotf_supported(hdr_metadata->hdmi_metadata_type1.eotf,
> -	    connector->hdr_sink_metadata.hdmi_type1.eotf)) {
> -		DRM_DEBUG_KMS("EOTF Not Supported\n");
> -		return -EINVAL;
> -	}
> +	    connector->hdr_sink_metadata.hdmi_type1.eotf))
> +		DRM_DEBUG_KMS("Unknown EOTF %d\n", hdr_metadata->hdmi_metadata_type1.eotf);
>  
>  	err = hdmi_drm_infoframe_init(frame);
>  	if (err < 0)

Attachment: pgp791StBq74R.pgp
Description: OpenPGP digital signature


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux