[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <598F3A49-9CE2-4C59-95D4-CDA888A3B3BF@goldelico.com>
Date: Wed, 2 Mar 2022 23:24:42 +0100
From: "H. Nikolaus Schaller" <hns@...delico.com>
To: Neil Armstrong <narmstrong@...libre.com>
Cc: Paul Boddie <paul@...die.org.uk>, Jonas Karlman <jonas@...boo.se>,
David Airlie <airlied@...ux.ie>,
Robert Foss <robert.foss@...aro.org>,
linux-mips <linux-mips@...r.kernel.org>,
dri-devel <dri-devel@...ts.freedesktop.org>,
linux-kernel <linux-kernel@...r.kernel.org>,
Paul Cercueil <paul@...pouillou.net>,
Kieran Bingham <kieran.bingham+renesas@...asonboard.com>,
Maxime Ripard <maxime@...no.tech>,
Andrzej Hajda <andrzej.hajda@...el.com>,
Discussions about the Letux Kernel
<letux-kernel@...nphoenux.org>,
Jernej Skrabec <jernej.skrabec@...il.com>,
Laurent Pinchart <Laurent.pinchart@...asonboard.com>
Subject: Re: [PATCH v16 4/4] drm/bridge: dw-hdmi: fix bus formats negotiation
for 8 bit modes
Hi Neil,
> Am 02.03.2022 um 15:34 schrieb Neil Armstrong <narmstrong@...libre.com>:
>
> Hi,
>
>> (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 ?
I have forced hdmi->sink_is_hdmi = false and replaced
/* Default 8bit RGB fallback */
- output_fmts[i++] = MEDIA_BUS_FMT_RGB888_1X24;
+ output_fmts[i++] = MEDIA_BUS_FMT_YUV8_1X24;
And then screen remains black. MEDIA_BUS_FMT_RGB888_1X24 works.
(MEDIA_BUS_FMT_VUY8_1X24 doesn't work either).
So this indicates that YUV conversion is not working properly. Maybe missing some special
setup.
What I have to test if it works on a different monitor. Not that this specific panel
(a 7 inch waveshare touch with HDMIinput) is buggy and reports YUV capabilities
but does not handle them...
On the other hand this panel works on RasPi and OMAP5 (where I admit I do not know in
which mode).
> If your CSC is broken, we'll need to disable it on your platform.
Indeed.
So it seems as if we need a mechanism to overwrite dw_hdmi_bridge_atomic_get_output_bus_fmts()
in our ingenic-dw-hdmi platform specialization [1] to always return MEDIA_BUS_FMT_RGB888_1X24.
Or alternatively set sink_is_hdmi = false there (unfortunately there is no direct access to
struct dw_hdmi in a specialization drivers).
Is this already possible or how can it be done?
BR and thanks,
Nikolaus
[1]: https://lore.kernel.org/all/24a27226a22adf5f5573f013e5d7d89b0ec73664.1645895582.git.hns@goldelico.com/
Powered by blists - more mailing lists