]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/mediatek: mtk_hdmi*: convert to of_drm_find_and_get_bridge()
authorLuca Ceresoli <luca.ceresoli@bootlin.com>
Fri, 9 Jan 2026 10:02:53 +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 by using the drm_bridge::next_bridge pointer.

Acked-by: Maxime Ripard <mripard@kernel.org>
Link: https://patch.msgid.link/20260109-drm-bridge-alloc-getput-drm_of_find_bridge-3-v2-4-8d7a3dbacdf4@bootlin.com
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
drivers/gpu/drm/mediatek/mtk_hdmi.c
drivers/gpu/drm/mediatek/mtk_hdmi_common.c
drivers/gpu/drm/mediatek/mtk_hdmi_common.h
drivers/gpu/drm/mediatek/mtk_hdmi_v2.c

index 0face4dcaa368f3845895a50f5efafc0775780ed..1ea2598547800025e2fa8b7876e7f91e1a3085ce 100644 (file)
@@ -986,8 +986,8 @@ static int mtk_hdmi_bridge_attach(struct drm_bridge *bridge,
                return -EINVAL;
        }
 
-       if (hdmi->next_bridge) {
-               ret = drm_bridge_attach(encoder, hdmi->next_bridge,
+       if (hdmi->bridge.next_bridge) {
+               ret = drm_bridge_attach(encoder, hdmi->bridge.next_bridge,
                                        bridge, flags);
                if (ret)
                        return ret;
index c599ba767093979d355151748cc6a1398442a841..f32862bbe220119a9cfea76ba992112deb6ceb6c 100644 (file)
@@ -315,8 +315,8 @@ static int mtk_hdmi_dt_parse_pdata(struct mtk_hdmi *hdmi, struct platform_device
                return -EINVAL;
 
        if (!of_device_is_compatible(remote, "hdmi-connector")) {
-               hdmi->next_bridge = of_drm_find_bridge(remote);
-               if (!hdmi->next_bridge) {
+               hdmi->bridge.next_bridge = of_drm_find_and_get_bridge(remote);
+               if (!hdmi->bridge.next_bridge) {
                        dev_err(dev, "Waiting for external bridge\n");
                        of_node_put(remote);
                        return -EPROBE_DEFER;
index de5e064585f85d9eb2e447f2d18432513d60d2d8..cace3c5dc0675a527608daa4e75617d975a6599c 100644 (file)
@@ -150,7 +150,6 @@ struct mtk_hdmi_conf {
 
 struct mtk_hdmi {
        struct drm_bridge bridge;
-       struct drm_bridge *next_bridge;
        struct drm_connector *curr_conn;/* current connector (only valid when 'enabled') */
        struct device *dev;
        const struct mtk_hdmi_conf *conf;
index d0e4440b74911de18ef984721e036620ea5ead31..5143d8a3b4f2bb2cf447548623aa22911678e92c 100644 (file)
@@ -960,8 +960,8 @@ static int mtk_hdmi_v2_bridge_attach(struct drm_bridge *bridge,
                DRM_ERROR("The flag DRM_BRIDGE_ATTACH_NO_CONNECTOR must be supplied\n");
                return -EINVAL;
        }
-       if (hdmi->next_bridge) {
-               ret = drm_bridge_attach(encoder, hdmi->next_bridge, bridge, flags);
+       if (hdmi->bridge.next_bridge) {
+               ret = drm_bridge_attach(encoder, hdmi->bridge.next_bridge, bridge, flags);
                if (ret)
                        return ret;
        }