Hi Maxime, On Thu Jan 8, 2026 at 9:14 AM CET, Maxime Ripard wrote: > On Wed, Jan 07, 2026 at 05:22:03PM +0100, Luca Ceresoli wrote: >> of_drm_find_bridge() is deprecated. Move to its replacement >> of_drm_find_and_get_bridge() which gets a bridge reference, and ensure it >> is put when done. >> >> Signed-off-by: Luca Ceresoli <[email protected]> > > Why can't we use next_bridge for this one?
Because this device is not a bridge, so we have no struct drm_bridge. >> --- >> drivers/gpu/drm/exynos/exynos_hdmi.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c >> b/drivers/gpu/drm/exynos/exynos_hdmi.c >> index 01813e11e6c6..bfcf2fa62fe1 100644 >> --- a/drivers/gpu/drm/exynos/exynos_hdmi.c >> +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c >> @@ -1779,7 +1779,7 @@ static int hdmi_bridge_init(struct hdmi_context *hdata) >> return -EINVAL; >> } >> >> - hdata->bridge = of_drm_find_bridge(np); >> + hdata->bridge = of_drm_find_and_get_bridge(np); >> of_node_put(np); >> >> if (!hdata->bridge) >> @@ -2096,6 +2096,8 @@ static void hdmi_remove(struct platform_device *pdev) >> >> put_device(&hdata->ddc_adpt->dev); >> >> + drm_bridge_put(hdata->bridge); >> + >> mutex_destroy(&hdata->mutex); >> } > > Same story than in your part 2 series, it should be dropped in destroy. hdata->bridge is only used for drm_bridge_attach(), it won't be referenced after that. So this is safe, unless I'm missing something. Also as we don't have a struct drm_bridge (as mentioned above) we have no bridge destroy. We have the encoder destroy, but that will never be called on bridge hotplug. Luca -- Luca Ceresoli, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
