[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <fal5jtesucasboygxde2uiamq6fhycwuhor6g4uqi54jx3sis7@gw5im7xxss6n>
Date: Tue, 18 Jun 2024 12:34:33 +0300
From: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
To: Andrzej Hajda <andrzej.hajda@...el.com>,
Neil Armstrong <neil.armstrong@...aro.org>, Robert Foss <rfoss@...nel.org>,
Laurent Pinchart <Laurent.pinchart@...asonboard.com>, Jonas Karlman <jonas@...boo.se>,
Jernej Skrabec <jernej.skrabec@...il.com>, Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie <airlied@...il.com>, Daniel Vetter <daniel@...ll.ch>,
Jaroslav Kysela <perex@...ex.cz>, Takashi Iwai <tiwai@...e.com>,
Liam Girdwood <lgirdwood@...il.com>, Mark Brown <broonie@...nel.org>
Cc: dri-devel@...ts.freedesktop.org, linux-kernel@...r.kernel.org,
linux-sound@...r.kernel.org
Subject: Re: [PATCH RFC 5/5] drm/bridge: lt9611: switch to using the DRM HDMI
codec framework
On Sat, Jun 15, 2024 at 08:53:34PM GMT, Dmitry Baryshkov wrote:
> Make the Lontium LT9611 DSI-to-HDMI bridge driver use the DRM HDMI Codec
> framework. This enables programming of Audio InfoFrames using the HDMI
> Connector interface and also enables support for the missing features,
> including the ELD retrieval and better hotplug support.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
> ---
> drivers/gpu/drm/bridge/lontium-lt9611.c | 207 ++++++++++++++++----------------
> 1 file changed, 104 insertions(+), 103 deletions(-)
>
> diff --git a/drivers/gpu/drm/bridge/lontium-lt9611.c b/drivers/gpu/drm/bridge/lontium-lt9611.c
> index 4fa0dfc5539a..02953468cb76 100644
> --- a/drivers/gpu/drm/bridge/lontium-lt9611.c
> +++ b/drivers/gpu/drm/bridge/lontium-lt9611.c
> @@ -45,7 +45,6 @@ struct lt9611 {
> struct device_node *dsi1_node;
> struct mipi_dsi_device *dsi0;
> struct mipi_dsi_device *dsi1;
> - struct platform_device *audio_pdev;
>
> bool ac_mode;
>
> @@ -688,15 +687,22 @@ lt9611_bridge_atomic_enable(struct drm_bridge *bridge,
>
> /* Enable HDMI output */
> regmap_write(lt9611->regmap, 0x8130, 0xea);
> +
> + drm_connector_hdmi_codec_plugged_notify(connector, true);
> }
>
> static void
> lt9611_bridge_atomic_disable(struct drm_bridge *bridge,
> struct drm_bridge_state *old_bridge_state)
> {
> + struct drm_atomic_state *state = old_bridge_state->base.state;
> + struct drm_connector *connector;
> struct lt9611 *lt9611 = bridge_to_lt9611(bridge);
> int ret;
>
> + connector = drm_atomic_get_new_connector_for_encoder(state, bridge->encoder);
Of course this should have been
drm_atomic_get_old_connector_for_encoder(), otherwise it crashes because
connector is NULL.
> + drm_connector_hdmi_codec_plugged_notify(connector, false);
> +
> /* Disable HDMI output */
> ret = regmap_write(lt9611->regmap, 0x8130, 0x6a);
> if (ret) {
--
With best wishes
Dmitry
Powered by blists - more mailing lists