[PATCH v4 06/23] drm/connector: hdmi: Use YUV420 output format as an RGB fallback

Maxime Ripard mripard at kernel.org
Tue May 13 13:35:35 UTC 2025


Hi,

On Fri, Apr 25, 2025 at 01:26:57PM +0300, Cristian Ciocaltea wrote:
> Try to make use of YUV420 when computing the best output format and
> RGB cannot be supported for any of the available color depths.
> 
> Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea at collabora.com>
> ---
>  drivers/gpu/drm/display/drm_hdmi_state_helper.c | 22 +++++++++++++++++-----
>  1 file changed, 17 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/display/drm_hdmi_state_helper.c b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
> index 9e0a468073acbb2477eff1abef1c09d63620afaa..1fba10b92a6baa49150b6ff1e96bf2c2739bf269 100644
> --- a/drivers/gpu/drm/display/drm_hdmi_state_helper.c
> +++ b/drivers/gpu/drm/display/drm_hdmi_state_helper.c
> @@ -648,14 +648,26 @@ hdmi_compute_config(const struct drm_connector *connector,
>  				       8, connector->max_bpc);
>  	int ret;
>  
> -	/*
> -	 * TODO: Add support for YCbCr420 output for HDMI 2.0 capable
> -	 * devices, for modes that only support YCbCr420.
> -	 */
>  	ret = hdmi_compute_format_bpc(connector, conn_state, mode, max_bpc,
>  				      HDMI_COLORSPACE_RGB);
> +	if (!ret)
> +		return 0;

Sorry, I missed it on the previous iteration, but this condition
inversion compared to the rest of the function is throwing me off :)

I believe something like

If (ret) {
   if (connector->ycbcr_420_allowed) {
      hdmi_compute_format_bpc(..., HDMI_COLORSPACE_YUV420)
   } else {
     drm_dbg_kms("Can't use YUV420")
   }
}

Would be more natural

Maxime
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 273 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20250513/09279821/attachment.sig>


More information about the dri-devel mailing list