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
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]