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@xxxxxxxxxx> > --- > 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