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

From: H. Nikolaus Schaller
Date: Wed Mar 02 2022 - 06:18:38 EST


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)

BR and thanks,
Nikolaus