[PATCH v4 06/23] drm/connector: hdmi: Use YUV420 output format as an RGB fallback
Cristian Ciocaltea
cristian.ciocaltea at collabora.com
Thu May 15 12:44:18 UTC 2025
Hi Maxime,
On 5/13/25 4:35 PM, Maxime Ripard wrote:
> 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
Yep, will do.
Please let me know if I can start preparing v5, as I'm not sure if you
managed to also check the test-related patches.
Thanks,
Cristian
More information about the dri-devel
mailing list