Re: [PATCH v2 6/7] drm/vc4: dsi: stop using deprecated drmm_of_get_bridge()
From: Paul Cercueil
Date: Thu Oct 01 2026 - 05:19:17 EST
Hi Luca,
Le mardi 29 septembre 2026 à 15:39 +0200, Luca Ceresoli a écrit :
> drmm_of_get_bridge() is deprecated, switch to
> of_drm_get_bridge_by_endpoint(). As of_drm_get_bridge_by_endpoint() returns
> a refcounted bridge, ensure it is put by using bridge.next_bridge.
>
> drm_panel.h becomes unused, drop the include.
>
> Signed-off-by: Luca Ceresoli <luca.ceresoli@xxxxxxxxxxx>
> ---
> drivers/gpu/drm/vc4/vc4_dsi.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/vc4/vc4_dsi.c b/drivers/gpu/drm/vc4/vc4_dsi.c
> index 0148f2befed1..30598738cfcf 100644
> --- a/drivers/gpu/drm/vc4/vc4_dsi.c
> +++ b/drivers/gpu/drm/vc4/vc4_dsi.c
> @@ -35,7 +35,6 @@
> #include <drm/drm_edid.h>
> #include <drm/drm_mipi_dsi.h>
> #include <drm/drm_of.h>
> -#include <drm/drm_panel.h>
> #include <drm/drm_print.h>
> #include <drm/drm_probe_helper.h>
> #include <drm/drm_simple_kms_helper.h>
> @@ -555,7 +554,6 @@ struct vc4_dsi {
>
> struct platform_device *pdev;
>
> - struct drm_bridge *out_bridge;
> struct drm_bridge bridge;
>
> void __iomem *regs;
> @@ -1165,7 +1163,7 @@ static int vc4_dsi_bridge_attach(struct drm_bridge
> *bridge,
> struct vc4_dsi *dsi = bridge_to_vc4_dsi(bridge);
>
> /* Attach the panel or bridge to the dsi bridge */
> - return drm_bridge_attach(encoder, dsi->out_bridge,
> + return drm_bridge_attach(encoder, dsi->bridge.next_bridge,
> &dsi->bridge, flags);
> }
>
> @@ -1749,9 +1747,9 @@ static int vc4_dsi_bind(struct device *dev, struct
> device *master, void *data)
> return ret;
> }
>
> - dsi->out_bridge = drmm_of_get_bridge(drm, dev->of_node, 0, 0);
> - if (IS_ERR(dsi->out_bridge))
> - return PTR_ERR(dsi->out_bridge);
> + dsi->bridge.next_bridge = of_drm_get_bridge_by_endpoint(dev->of_node,
> 0, 0);
> + if (IS_ERR(dsi->bridge.next_bridge))
> + return PTR_ERR(dsi->bridge.next_bridge);
I had to double-check that it is fine to leave the .next_bridge field as a
pointer-encoded error. It works because drm_bridge_put() handles this case.
Reviewed-by: Paul Cercueil <paul.cercueil@xxxxxxxxxxx>
Cheers,
-Paul