2022-04-06 17:49:05

by H. Nikolaus Schaller

[permalink] [raw]
Subject: [PATCH v17 5/6] drm/bridge: dw-hdmi: add YCBCR formats only if CSC is available

otherwise they will produce a black HDMI screen.

Signed-off-by: H. Nikolaus Schaller <[email protected]>
---
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index b5a665c5e406e..ec40dd8865065 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -2628,10 +2628,12 @@ static u32 *dw_hdmi_bridge_atomic_get_output_bus_fmts(struct drm_bridge *bridge,
output_fmts[i++] = MEDIA_BUS_FMT_RGB101010_1X30;
}

- if (hdmi->sink_is_hdmi && info->color_formats & DRM_COLOR_FORMAT_YCBCR422)
+ if (hdmi->csc_available && hdmi->sink_is_hdmi &&
+ (info->color_formats & DRM_COLOR_FORMAT_YCBCR422))
output_fmts[i++] = MEDIA_BUS_FMT_UYVY8_1X16;

- if (hdmi->sink_is_hdmi && info->color_formats & DRM_COLOR_FORMAT_YCBCR444)
+ if (hdmi->csc_available && hdmi->sink_is_hdmi &&
+ (info->color_formats & DRM_COLOR_FORMAT_YCBCR444))
output_fmts[i++] = MEDIA_BUS_FMT_YUV8_1X24;

/* Default 8bit RGB fallback */
--
2.33.0


2022-04-07 19:48:59

by Neil Armstrong

[permalink] [raw]
Subject: Re: [PATCH v17 5/6] drm/bridge: dw-hdmi: add YCBCR formats only if CSC is available

On 06/04/2022 18:26, H. Nikolaus Schaller wrote:
> otherwise they will produce a black HDMI screen.
>
> Signed-off-by: H. Nikolaus Schaller <[email protected]>
> ---
> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> index b5a665c5e406e..ec40dd8865065 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -2628,10 +2628,12 @@ static u32 *dw_hdmi_bridge_atomic_get_output_bus_fmts(struct drm_bridge *bridge,
> output_fmts[i++] = MEDIA_BUS_FMT_RGB101010_1X30;
> }
>
> - if (hdmi->sink_is_hdmi && info->color_formats & DRM_COLOR_FORMAT_YCBCR422)
> + if (hdmi->csc_available && hdmi->sink_is_hdmi &&
> + (info->color_formats & DRM_COLOR_FORMAT_YCBCR422))
> output_fmts[i++] = MEDIA_BUS_FMT_UYVY8_1X16;
>
> - if (hdmi->sink_is_hdmi && info->color_formats & DRM_COLOR_FORMAT_YCBCR444)
> + if (hdmi->csc_available && hdmi->sink_is_hdmi &&
> + (info->color_formats & DRM_COLOR_FORMAT_YCBCR444))
> output_fmts[i++] = MEDIA_BUS_FMT_YUV8_1X24;
>
> /* Default 8bit RGB fallback */

This patch shouldn't be needed anymore with proper filtering in patch 1.

Neil

2022-04-07 20:06:49

by H. Nikolaus Schaller

[permalink] [raw]
Subject: Re: [PATCH v17 5/6] drm/bridge: dw-hdmi: add YCBCR formats only if CSC is available



> Am 07.04.2022 um 10:29 schrieb Neil Armstrong <[email protected]>:
>
> On 06/04/2022 18:26, H. Nikolaus Schaller wrote:
>> otherwise they will produce a black HDMI screen.
>> Signed-off-by: H. Nikolaus Schaller <[email protected]>
>> ---
>> drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>> index b5a665c5e406e..ec40dd8865065 100644
>> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
>> @@ -2628,10 +2628,12 @@ static u32 *dw_hdmi_bridge_atomic_get_output_bus_fmts(struct drm_bridge *bridge,
>> output_fmts[i++] = MEDIA_BUS_FMT_RGB101010_1X30;
>> }
>> - if (hdmi->sink_is_hdmi && info->color_formats & DRM_COLOR_FORMAT_YCBCR422)
>> + if (hdmi->csc_available && hdmi->sink_is_hdmi &&
>> + (info->color_formats & DRM_COLOR_FORMAT_YCBCR422))
>> output_fmts[i++] = MEDIA_BUS_FMT_UYVY8_1X16;
>> - if (hdmi->sink_is_hdmi && info->color_formats & DRM_COLOR_FORMAT_YCBCR444)
>> + if (hdmi->csc_available && hdmi->sink_is_hdmi &&
>> + (info->color_formats & DRM_COLOR_FORMAT_YCBCR444))
>> output_fmts[i++] = MEDIA_BUS_FMT_YUV8_1X24;
>> /* Default 8bit RGB fallback */
>
> This patch shouldn't be needed anymore with proper filtering in patch 1.

It can indeed be removed as well.

BR and thanks,
Nikolaus