]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/imx/dw-hdmi: convert to of_drm_find_and_get_bridge()
authorLuca Ceresoli <luca.ceresoli@bootlin.com>
Fri, 9 Jan 2026 10:02:52 +0000 (11:02 +0100)
committerLuca Ceresoli <luca.ceresoli@bootlin.com>
Wed, 21 Jan 2026 12:59:56 +0000 (13:59 +0100)
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.

Acked-by: Maxime Ripard <mripard@kernel.org>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Link: https://patch.msgid.link/20260109-drm-bridge-alloc-getput-drm_of_find_bridge-3-v2-3-8d7a3dbacdf4@bootlin.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
drivers/gpu/drm/imx/ipuv3/dw_hdmi-imx.c

index 07e5f96202d4c0b8ffddd40358291103e29ea352..398f3cce553228c1a0bfc99d6e47f3ff950f91c6 100644 (file)
@@ -241,7 +241,7 @@ static int dw_hdmi_imx_probe(struct platform_device *pdev)
        if (IS_ERR(hdmi->hdmi))
                return PTR_ERR(hdmi->hdmi);
 
-       hdmi->bridge = of_drm_find_bridge(np);
+       hdmi->bridge = of_drm_find_and_get_bridge(np);
        if (!hdmi->bridge) {
                dev_err(hdmi->dev, "Unable to find bridge\n");
                dw_hdmi_remove(hdmi->hdmi);
@@ -249,8 +249,10 @@ static int dw_hdmi_imx_probe(struct platform_device *pdev)
        }
 
        ret = component_add(&pdev->dev, &dw_hdmi_imx_ops);
-       if (ret)
+       if (ret) {
+               drm_bridge_put(hdmi->bridge);
                dw_hdmi_remove(hdmi->hdmi);
+       }
 
        return ret;
 }
@@ -260,6 +262,7 @@ static void dw_hdmi_imx_remove(struct platform_device *pdev)
        struct imx_hdmi *hdmi = platform_get_drvdata(pdev);
 
        component_del(&pdev->dev, &dw_hdmi_imx_ops);
+       drm_bridge_put(hdmi->bridge);
        dw_hdmi_remove(hdmi->hdmi);
 }