Re: [PATCH v16 4/4] drm/bridge: dw-hdmi: fix bus formats negotiation for 8 bit modes

From: Neil Armstrong
Date: Wed Mar 02 2022 - 09:34:24 EST


Hi,

On 02/03/2022 12:15, H. Nikolaus Schaller wrote:
Hi Neil,

Am 02.03.2022 um 11:25 schrieb Neil Armstrong <narmstrong@xxxxxxxxxxxx>:

I added a printk for hdmi->sink_is_hdmi. This returns 1. Which IMHO is to be expected
since I am using a HDMI connector and panel... So your patch will still add the UYVY formats.
Either the synposys module inside the jz4780 or the panel does not understand them.

By selecting the UYVY formats, the driver will enable the colorspace converters in the dw-hdmi IP,
I don't see why it doesn't work here...

There is a bit called `Support Color Space Converter` in config0_id:
bit | Name | R/W | Desc
2 | csc | R | Indicates if Color Space Conversion block is present

Could you dump all the config0 bits:

=======================><=============================
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 54d8fdad395f..547731482da8 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -3431,6 +3431,7 @@ struct dw_hdmi *dw_hdmi_probe(struct platform_device *pdev,
pdevinfo.id = PLATFORM_DEVID_AUTO;

config0 = hdmi_readb(hdmi, HDMI_CONFIG0_ID);
+ dev_info(dev, "config0: %x\n", config0);
config3 = hdmi_readb(hdmi, HDMI_CONFIG3_ID);

if (iores && config3 & HDMI_CONFIG3_AHBAUDDMA) {
=======================><=============================

If this bit is missing, this would explain the black screen.

[ 9.291011] dw-hdmi-ingenic 10180000.hdmi: config0: bf

Hm. Or is the color-space conversion of the sw-hdmi module inside the jz4780 broken
or not configured properly?

(cross-checked: RGB mode still works if I force hdmi->sink_is_hdmi = false)

I don't understand what's wrong, can you try to make the logic select MEDIA_BUS_FMT_YUV8_1X24 instead of DRM_COLOR_FORMAT_YCBCR422 ?

If your CSC is broken, we'll need to disable it on your platform.

Thanks,
Neil


BR and thanks,
Nikolaus