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

Neil Armstrong narmstrong at baylibre.com
Wed Mar 2 15:34:16 CET 2022


Hi,

On 02/03/2022 12:15, H. Nikolaus Schaller wrote:
> Hi Neil,
> 
>> Am 02.03.2022 um 11:25 schrieb Neil Armstrong <narmstrong at baylibre.com>:
>>
>>> 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
> 



More information about the Letux-kernel mailing list