Hi Luca (and not Lucas, sorry), Le mardi 29 septembre 2026 à 15:39 +0200, Luca Ceresoli a écrit : > devm_drm_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. > > Signed-off-by: Luca Ceresoli <[email protected]>
Reviewed-by: Paul Cercueil <[email protected]> With one nitpick below. > > --- > > Changes in v2: > - fix bridge reference leak on attach error and detach paths > --- > drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c | 11 +++++------ > 1 file changed, 5 insertions(+), 6 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c > b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c > index 7fd2f1e60654..eb7d5713bd28 100644 > --- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c > +++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c > @@ -192,7 +192,6 @@ struct cmd_header { > struct dw_mipi_dsi2 { > struct drm_bridge bridge; > struct mipi_dsi_host dsi_host; > - struct drm_bridge *panel_bridge; > struct device *dev; > struct regmap *regmap; > struct clk *pclk; > @@ -528,12 +527,12 @@ static int dw_mipi_dsi2_host_attach(struct mipi_dsi_host > *host, > dsi2->format = device->format; > dsi2->mode_flags = device->mode_flags; > > - bridge = devm_drm_of_get_bridge(dsi2->dev, dsi2->dev->of_node, 1, 0); > + bridge = of_drm_get_bridge_by_endpoint(dsi2->dev->of_node, 1, 0); > if (IS_ERR(bridge)) > return PTR_ERR(bridge); > > bridge->pre_enable_prev_first = true; > - dsi2->panel_bridge = bridge; > + dsi2->bridge.next_bridge = bridge; > > drm_bridge_add(&dsi2->bridge); > > @@ -547,6 +546,7 @@ static int dw_mipi_dsi2_host_attach(struct mipi_dsi_host > *host, > > err_remove_bridge: > drm_bridge_remove(&dsi2->bridge); > + drm_bridge_clear_and_put(&dsi2->bridge.next_bridge); > return ret; > } > > @@ -564,8 +564,7 @@ static int dw_mipi_dsi2_host_detach(struct mipi_dsi_host > *host, > } > > drm_bridge_remove(&dsi2->bridge); > - > - drm_of_panel_bridge_remove(host->dev->of_node, 1, 0); > + drm_bridge_clear_and_put(&dsi2->bridge.next_bridge); > > return 0; > } > @@ -884,7 +883,7 @@ static int dw_mipi_dsi2_bridge_attach(struct drm_bridge > *bridge, > encoder->encoder_type = DRM_MODE_ENCODER_DSI; > > /* Attach the panel-bridge to the dsi bridge */ > - return drm_bridge_attach(encoder, dsi2->panel_bridge, bridge, > + return drm_bridge_attach(encoder, dsi2->bridge.next_bridge, bridge, > flags); Same remark as for the patch 3/7, it would look a bit better to have the 'bridge' moved to the second line. Cheers, -Paul
