mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression)
@ 2026-09-29 10:36 Luca Ceresoli
  2026-09-29 10:36 ` [PATCH 1/7] drm/imx/lcdc: stop using deprecated devm_drm_of_get_bridge() Luca Ceresoli
                   ` (8 more replies)
  0 siblings, 9 replies; 19+ messages in thread
From: Luca Ceresoli @ 2026-09-29 10:36 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Icenowy Zheng,
	Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Luca Ceresoli

After commit Fixes: aa8a8c7e4641 ("drm/bridge: panel: move all code to
drm_panel.c") some drivers fail building:

  error: implicit declaration of function 'devm_drm_of_get_bridge'

This is because devm_drm_of_get_bridge() (and drmm_of_get_bridge()) have
been moved to drm-panel.h.

The affected drivers are those which:

 * can be built without CONFIG_OF, and
 * don't include drm_panel.h

The affected drivers are 3, fix them (patches 1-3) by replacing the
deprecated *_of_get_bridge() calls with of_drm_get_bridge_by_endpoint().

While there, do the same for all drivers which be built without CONFIG_OF,
even if they don't fail (patches 4-7).

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
Luca Ceresoli (7):
      drm/imx/lcdc: stop using deprecated devm_drm_of_get_bridge()
      drm: verisilicon: stop using deprecated devm_drm_of_get_bridge()
      drm/bridge: dw-mipi-dsi: stop using deprecated devm_drm_of_get_bridge()
      drm/bridge: dw-mipi-dsi2: stop using deprecated devm_drm_of_get_bridge()
      drm/vc4: dpi: stop using deprecated drmm_of_get_bridge()
      drm/vc4: dsi: stop using deprecated drmm_of_get_bridge()
      drm: renesas: shmobile: stop using deprecated devm_drm_of_get_bridge()

 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c     |  9 +++------
 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c    |  9 +++------
 drivers/gpu/drm/imx/lcdc/imx-lcdc.c               |  4 ++--
 drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c |  5 ++---
 drivers/gpu/drm/vc4/vc4_dpi.c                     |  9 ++-------
 drivers/gpu/drm/vc4/vc4_dsi.c                     | 10 ++++------
 drivers/gpu/drm/verisilicon/vs_bridge.c           |  7 +++----
 drivers/gpu/drm/verisilicon/vs_bridge.h           |  1 -
 8 files changed, 19 insertions(+), 35 deletions(-)
---
base-commit: 91ceac83e599c9d48da4c4d2d91410c588a215f7
change-id: 20260929-drm-fix-of_get_bridge-build-regression-98f22f8a1dcc

Best regards,
--  
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 1/7] drm/imx/lcdc: stop using deprecated devm_drm_of_get_bridge()
  2026-09-29 10:36 [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Luca Ceresoli
@ 2026-09-29 10:36 ` Luca Ceresoli
  2026-09-29 12:33   ` Maxime Ripard
  2026-09-29 10:36 ` [PATCH 2/7] drm: verisilicon: " Luca Ceresoli
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 19+ messages in thread
From: Luca Ceresoli @ 2026-09-29 10:36 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Icenowy Zheng,
	Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Luca Ceresoli

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.

Fixes build failure when CONFIG_OF is disabled.

Fixes: aa8a8c7e4641 ("drm/bridge: panel: move all code to drm_panel.c")
Reported-by: Arnd Bergmann <arnd@kernel.org>
Link: https://lore.kernel.org/r/20260928161605.2271412-1-arnd@kernel.org
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
 drivers/gpu/drm/imx/lcdc/imx-lcdc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/imx/lcdc/imx-lcdc.c b/drivers/gpu/drm/imx/lcdc/imx-lcdc.c
index c67fe80b8115..805a659e3f85 100644
--- a/drivers/gpu/drm/imx/lcdc/imx-lcdc.c
+++ b/drivers/gpu/drm/imx/lcdc/imx-lcdc.c
@@ -385,7 +385,6 @@ static int imx_lcdc_probe(struct platform_device *pdev)
 {
 	struct imx_lcdc *lcdc;
 	struct drm_device *drm;
-	struct drm_bridge *bridge;
 	int irq;
 	int ret;
 	struct device *dev = &pdev->dev;
@@ -401,7 +400,8 @@ static int imx_lcdc_probe(struct platform_device *pdev)
 	if (IS_ERR(lcdc->base))
 		return dev_err_probe(dev, PTR_ERR(lcdc->base), "Cannot get IO memory\n");
 
-	bridge = devm_drm_of_get_bridge(dev, dev->of_node, 0, 0);
+	struct drm_bridge *bridge __free(drm_bridge_put) =
+		of_drm_get_bridge_by_endpoint(dev->of_node, 0, 0);
 	if (IS_ERR(bridge))
 		return dev_err_probe(dev, PTR_ERR(bridge), "Failed to find bridge\n");
 

-- 
2.55.0


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 2/7] drm: verisilicon: stop using deprecated devm_drm_of_get_bridge()
  2026-09-29 10:36 [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Luca Ceresoli
  2026-09-29 10:36 ` [PATCH 1/7] drm/imx/lcdc: stop using deprecated devm_drm_of_get_bridge() Luca Ceresoli
@ 2026-09-29 10:36 ` Luca Ceresoli
  2026-09-29 10:47   ` Icenowy Zheng
  2026-09-29 12:33   ` Maxime Ripard
  2026-09-29 10:36 ` [PATCH 3/7] drm/bridge: dw-mipi-dsi: " Luca Ceresoli
                   ` (6 subsequent siblings)
  8 siblings, 2 replies; 19+ messages in thread
From: Luca Ceresoli @ 2026-09-29 10:36 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Icenowy Zheng,
	Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Luca Ceresoli

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.

Fixes build failure when CONFIG_OF is disabled.

Fixes: aa8a8c7e4641 ("drm/bridge: panel: move all code to drm_panel.c")
Reported-by: Arnd Bergmann <arnd@kernel.org>
Link: https://lore.kernel.org/r/20260928161605.2271412-1-arnd@kernel.org
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
 drivers/gpu/drm/verisilicon/vs_bridge.c | 7 +++----
 drivers/gpu/drm/verisilicon/vs_bridge.h | 1 -
 2 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/verisilicon/vs_bridge.c b/drivers/gpu/drm/verisilicon/vs_bridge.c
index dc7c85b07fe3..f1e8112f0ed2 100644
--- a/drivers/gpu/drm/verisilicon/vs_bridge.c
+++ b/drivers/gpu/drm/verisilicon/vs_bridge.c
@@ -29,7 +29,7 @@ static int vs_bridge_attach(struct drm_bridge *bridge,
 {
 	struct vs_bridge *vbridge = drm_bridge_to_vs_bridge(bridge);
 
-	return drm_bridge_attach(encoder, vbridge->next_bridge,
+	return drm_bridge_attach(encoder, vbridge->base.next_bridge,
 				 bridge, flags);
 }
 
@@ -303,8 +303,7 @@ struct vs_bridge *vs_bridge_init(struct drm_device *drm_dev,
 		return NULL;
 	}
 
-	next = devm_drm_of_get_bridge(drm_dev->dev, drm_dev->dev->of_node,
-				      output, intf);
+	next = of_drm_get_bridge_by_endpoint(drm_dev->dev->of_node, output, intf);
 	if (IS_ERR(next)) {
 		ret = PTR_ERR(next);
 		if (ret != -EPROBE_DEFER)
@@ -326,7 +325,7 @@ struct vs_bridge *vs_bridge_init(struct drm_device *drm_dev,
 
 	bridge->crtc = crtc;
 	bridge->intf = intf;
-	bridge->next_bridge = next;
+	bridge->base.next_bridge = next;
 
 	if (intf == VSDC_OUTPUT_INTERFACE_DPI)
 		enctype = DRM_MODE_ENCODER_DPI;
diff --git a/drivers/gpu/drm/verisilicon/vs_bridge.h b/drivers/gpu/drm/verisilicon/vs_bridge.h
index 70fee1749699..2b0ed94e4520 100644
--- a/drivers/gpu/drm/verisilicon/vs_bridge.h
+++ b/drivers/gpu/drm/verisilicon/vs_bridge.h
@@ -25,7 +25,6 @@ struct vs_bridge {
 	struct drm_connector *conn;
 
 	struct vs_crtc *crtc;
-	struct drm_bridge *next_bridge;
 	enum vs_bridge_output_interface intf;
 };
 

-- 
2.55.0


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 3/7] drm/bridge: dw-mipi-dsi: stop using deprecated devm_drm_of_get_bridge()
  2026-09-29 10:36 [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Luca Ceresoli
  2026-09-29 10:36 ` [PATCH 1/7] drm/imx/lcdc: stop using deprecated devm_drm_of_get_bridge() Luca Ceresoli
  2026-09-29 10:36 ` [PATCH 2/7] drm: verisilicon: " Luca Ceresoli
@ 2026-09-29 10:36 ` Luca Ceresoli
  2026-09-29 12:33   ` Maxime Ripard
  2026-09-29 10:36 ` [PATCH 4/7] drm/bridge: dw-mipi-dsi2: " Luca Ceresoli
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 19+ messages in thread
From: Luca Ceresoli @ 2026-09-29 10:36 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Icenowy Zheng,
	Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Luca Ceresoli

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.

Fixes build failure when CONFIG_OF is disabled.

Fixes: aa8a8c7e4641 ("drm/bridge: panel: move all code to drm_panel.c")
Reported-by: Arnd Bergmann <arnd@kernel.org>
Link: https://lore.kernel.org/r/20260928161605.2271412-1-arnd@kernel.org
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
index 5dd475fcaacf..fad6c3f71032 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c
@@ -244,7 +244,6 @@ struct debugfs_entries {
 struct dw_mipi_dsi {
 	struct drm_bridge bridge;
 	struct mipi_dsi_host dsi_host;
-	struct drm_bridge *panel_bridge;
 	struct device *dev;
 	void __iomem *base;
 
@@ -333,12 +332,12 @@ static int dw_mipi_dsi_host_attach(struct mipi_dsi_host *host,
 	dsi->format = device->format;
 	dsi->mode_flags = device->mode_flags;
 
-	bridge = devm_drm_of_get_bridge(dsi->dev, dsi->dev->of_node, 1, 0);
+	bridge = of_drm_get_bridge_by_endpoint(dsi->dev->of_node, 1, 0);
 	if (IS_ERR(bridge))
 		return PTR_ERR(bridge);
 
 	bridge->pre_enable_prev_first = true;
-	dsi->panel_bridge = bridge;
+	dsi->bridge.next_bridge = bridge;
 
 	drm_bridge_add(&dsi->bridge);
 
@@ -368,8 +367,6 @@ static int dw_mipi_dsi_host_detach(struct mipi_dsi_host *host,
 			return ret;
 	}
 
-	drm_of_panel_bridge_remove(host->dev->of_node, 1, 0);
-
 	drm_bridge_remove(&dsi->bridge);
 
 	return 0;
@@ -1086,7 +1083,7 @@ static int dw_mipi_dsi_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, dsi->panel_bridge, bridge,
+	return drm_bridge_attach(encoder, dsi->bridge.next_bridge, bridge,
 				 flags);
 }
 

-- 
2.55.0


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 4/7] drm/bridge: dw-mipi-dsi2: stop using deprecated devm_drm_of_get_bridge()
  2026-09-29 10:36 [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Luca Ceresoli
                   ` (2 preceding siblings ...)
  2026-09-29 10:36 ` [PATCH 3/7] drm/bridge: dw-mipi-dsi: " Luca Ceresoli
@ 2026-09-29 10:36 ` Luca Ceresoli
  2026-09-29 12:34   ` Maxime Ripard
  2026-09-29 10:36 ` [PATCH 5/7] drm/vc4: dpi: stop using deprecated drmm_of_get_bridge() Luca Ceresoli
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 19+ messages in thread
From: Luca Ceresoli @ 2026-09-29 10:36 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Icenowy Zheng,
	Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Luca Ceresoli

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 <luca.ceresoli@bootlin.com>

---

Unlike other commits in this series, this is not a fix: this code can be
built only when CONFIG_OF=y. Do this change to keep dw-mipi-dsi
dw-mipi-dsi2 as similar as they are already.
---
 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c | 9 +++------
 1 file changed, 3 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..a008450d83aa 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);
 
@@ -565,8 +564,6 @@ 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);
-
 	return 0;
 }
 
@@ -884,7 +881,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);
 }
 

-- 
2.55.0


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 5/7] drm/vc4: dpi: stop using deprecated drmm_of_get_bridge()
  2026-09-29 10:36 [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Luca Ceresoli
                   ` (3 preceding siblings ...)
  2026-09-29 10:36 ` [PATCH 4/7] drm/bridge: dw-mipi-dsi2: " Luca Ceresoli
@ 2026-09-29 10:36 ` Luca Ceresoli
  2026-09-29 12:35   ` Maxime Ripard
  2026-09-29 10:36 ` [PATCH 6/7] drm/vc4: dsi: " Luca Ceresoli
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 19+ messages in thread
From: Luca Ceresoli @ 2026-09-29 10:36 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Icenowy Zheng,
	Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Luca Ceresoli

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.

drm_panel.h becomes unused, drop the include.

Also remove a comment that is now obvious: now panels are just bridges.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
 drivers/gpu/drm/vc4/vc4_dpi.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_dpi.c b/drivers/gpu/drm/vc4/vc4_dpi.c
index 53f36626a50d..5060eb463704 100644
--- a/drivers/gpu/drm/vc4/vc4_dpi.c
+++ b/drivers/gpu/drm/vc4/vc4_dpi.c
@@ -16,7 +16,6 @@
 #include <drm/drm_drv.h>
 #include <drm/drm_edid.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>
@@ -279,16 +278,12 @@ static const struct of_device_id vc4_dpi_dt_match[] = {
 	{}
 };
 
-/* Sets up the next link in the display chain, whether it's a panel or
- * a bridge.
- */
 static int vc4_dpi_init_bridge(struct vc4_dpi *dpi)
 {
-	struct drm_device *drm = dpi->encoder.base.dev;
 	struct device *dev = &dpi->pdev->dev;
-	struct drm_bridge *bridge;
 
-	bridge = drmm_of_get_bridge(drm, dev->of_node, 0, 0);
+	struct drm_bridge *bridge __free(drm_bridge_put) =
+		of_drm_get_bridge_by_endpoint(dev->of_node, 0, 0);
 	if (IS_ERR(bridge)) {
 		/* If nothing was connected in the DT, that's not an
 		 * error.

-- 
2.55.0


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 6/7] drm/vc4: dsi: stop using deprecated drmm_of_get_bridge()
  2026-09-29 10:36 [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Luca Ceresoli
                   ` (4 preceding siblings ...)
  2026-09-29 10:36 ` [PATCH 5/7] drm/vc4: dpi: stop using deprecated drmm_of_get_bridge() Luca Ceresoli
@ 2026-09-29 10:36 ` Luca Ceresoli
  2026-09-29 12:36   ` Maxime Ripard
  2026-09-29 10:36 ` [PATCH 7/7] drm: renesas: shmobile: stop using deprecated devm_drm_of_get_bridge() Luca Ceresoli
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 19+ messages in thread
From: Luca Ceresoli @ 2026-09-29 10:36 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Icenowy Zheng,
	Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Luca Ceresoli

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.

drm_panel.h becomes unused, drop the include.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
 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);
 
 	/* The esc clock rate is supposed to always be 100Mhz. */
 	ret = clk_set_rate(dsi->escape_clock, 100 * 1000000);

-- 
2.55.0


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH 7/7] drm: renesas: shmobile: stop using deprecated devm_drm_of_get_bridge()
  2026-09-29 10:36 [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Luca Ceresoli
                   ` (5 preceding siblings ...)
  2026-09-29 10:36 ` [PATCH 6/7] drm/vc4: dsi: " Luca Ceresoli
@ 2026-09-29 10:36 ` Luca Ceresoli
  2026-09-29 12:36   ` Maxime Ripard
  2026-09-29 10:46 ` [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Icenowy Zheng
  2026-09-29 13:18 ` Luca Ceresoli
  8 siblings, 1 reply; 19+ messages in thread
From: Luca Ceresoli @ 2026-09-29 10:36 UTC (permalink / raw)
  To: Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann,
	David Airlie, Simona Vetter, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Icenowy Zheng,
	Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Luca Ceresoli

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.

drm_panel.h becomes unused, drop the include.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
 drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
index 328a36215e39..51bae2008cc6 100644
--- a/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
+++ b/drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c
@@ -28,7 +28,6 @@
 #include <drm/drm_gem_dma_helper.h>
 #include <drm/drm_modeset_helper.h>
 #include <drm/drm_modeset_helper_vtables.h>
-#include <drm/drm_panel.h>
 #include <drm/drm_probe_helper.h>
 #include <drm/drm_vblank.h>
 
@@ -447,7 +446,6 @@ static const struct drm_encoder_funcs shmob_encoder_funcs = {
 int shmob_drm_encoder_create(struct shmob_drm_device *sdev)
 {
 	struct drm_encoder *encoder = &sdev->encoder;
-	struct drm_bridge *bridge;
 	int ret;
 
 	encoder->possible_crtcs = 1;
@@ -463,7 +461,8 @@ int shmob_drm_encoder_create(struct shmob_drm_device *sdev)
 	}
 
 	/* Create a panel bridge */
-	bridge = devm_drm_of_get_bridge(sdev->dev, sdev->dev->of_node, 0, 0);
+	struct drm_bridge *bridge __free(drm_bridge_put) =
+		of_drm_get_bridge_by_endpoint(sdev->dev->of_node, 0, 0);
 	if (IS_ERR(bridge))
 		return PTR_ERR(bridge);
 

-- 
2.55.0


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression)
  2026-09-29 10:36 [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Luca Ceresoli
                   ` (6 preceding siblings ...)
  2026-09-29 10:36 ` [PATCH 7/7] drm: renesas: shmobile: stop using deprecated devm_drm_of_get_bridge() Luca Ceresoli
@ 2026-09-29 10:46 ` Icenowy Zheng
  2026-09-29 13:22   ` Luca Ceresoli
  2026-09-29 13:18 ` Luca Ceresoli
  8 siblings, 1 reply; 19+ messages in thread
From: Icenowy Zheng @ 2026-09-29 10:46 UTC (permalink / raw)
  To: Luca Ceresoli, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc

在 2026-09-29二的 12:36 +0200,Luca Ceresoli写道:
> After commit Fixes: aa8a8c7e4641 ("drm/bridge: panel: move all code
> to
> drm_panel.c") some drivers fail building:
> 
>   error: implicit declaration of function 'devm_drm_of_get_bridge'
> 
> This is because devm_drm_of_get_bridge() (and drmm_of_get_bridge())
> have
> been moved to drm-panel.h.
> 
> The affected drivers are those which:
> 
>  * can be built without CONFIG_OF, and
>  * don't include drm_panel.h
> 
> The affected drivers are 3, fix them (patches 1-3) by replacing the
> deprecated *_of_get_bridge() calls with
> of_drm_get_bridge_by_endpoint().

The comment of drm_of_find_panel_or_bridge() still suggests
devm_of_get_bridge(), and the documentation at the head of drm_bridge.c
also mentions it.

Should this get fixed?

BTW should drm_of_get_bridge_by_endpoint() has some drmm/devm variant?

Thanks,
Icenowy

> 
> While there, do the same for all drivers which be built without
> CONFIG_OF,
> even if they don't fail (patches 4-7).
> 
> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
> ---
> Luca Ceresoli (7):
>       drm/imx/lcdc: stop using deprecated devm_drm_of_get_bridge()
>       drm: verisilicon: stop using deprecated
> devm_drm_of_get_bridge()
>       drm/bridge: dw-mipi-dsi: stop using deprecated
> devm_drm_of_get_bridge()
>       drm/bridge: dw-mipi-dsi2: stop using deprecated
> devm_drm_of_get_bridge()
>       drm/vc4: dpi: stop using deprecated drmm_of_get_bridge()
>       drm/vc4: dsi: stop using deprecated drmm_of_get_bridge()
>       drm: renesas: shmobile: stop using deprecated
> devm_drm_of_get_bridge()
> 
>  drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c     |  9 +++------
>  drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi2.c    |  9 +++------
>  drivers/gpu/drm/imx/lcdc/imx-lcdc.c               |  4 ++--
>  drivers/gpu/drm/renesas/shmobile/shmob_drm_crtc.c |  5 ++---
>  drivers/gpu/drm/vc4/vc4_dpi.c                     |  9 ++-------
>  drivers/gpu/drm/vc4/vc4_dsi.c                     | 10 ++++------
>  drivers/gpu/drm/verisilicon/vs_bridge.c           |  7 +++----
>  drivers/gpu/drm/verisilicon/vs_bridge.h           |  1 -
>  8 files changed, 19 insertions(+), 35 deletions(-)
> ---
> base-commit: 91ceac83e599c9d48da4c4d2d91410c588a215f7
> change-id: 20260929-drm-fix-of_get_bridge-build-regression-
> 98f22f8a1dcc
> 
> Best regards,
> --  
> Luca Ceresoli, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/7] drm: verisilicon: stop using deprecated devm_drm_of_get_bridge()
  2026-09-29 10:36 ` [PATCH 2/7] drm: verisilicon: " Luca Ceresoli
@ 2026-09-29 10:47   ` Icenowy Zheng
  2026-09-29 12:33   ` Maxime Ripard
  1 sibling, 0 replies; 19+ messages in thread
From: Icenowy Zheng @ 2026-09-29 10:47 UTC (permalink / raw)
  To: Luca Ceresoli, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc

在 2026-09-29二的 12:36 +0200,Luca Ceresoli写道:
> 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.
> 
> Fixes build failure when CONFIG_OF is disabled.
> 
> Fixes: aa8a8c7e4641 ("drm/bridge: panel: move all code to
> drm_panel.c")
> Reported-by: Arnd Bergmann <arnd@kernel.org>
> Link:
> https://lore.kernel.org/r/20260928161605.2271412-1-arnd@kernel.org
> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>

Acked-by: Icenowy Zheng <zhengxingda@iscas.ac.cn>

Thanks,
Icenowy

> ---
>  drivers/gpu/drm/verisilicon/vs_bridge.c | 7 +++----
>  drivers/gpu/drm/verisilicon/vs_bridge.h | 1 -
>  2 files changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/verisilicon/vs_bridge.c
> b/drivers/gpu/drm/verisilicon/vs_bridge.c
> index dc7c85b07fe3..f1e8112f0ed2 100644
> --- a/drivers/gpu/drm/verisilicon/vs_bridge.c
> +++ b/drivers/gpu/drm/verisilicon/vs_bridge.c
> @@ -29,7 +29,7 @@ static int vs_bridge_attach(struct drm_bridge
> *bridge,
>  {
>  	struct vs_bridge *vbridge = drm_bridge_to_vs_bridge(bridge);
>  
> -	return drm_bridge_attach(encoder, vbridge->next_bridge,
> +	return drm_bridge_attach(encoder, vbridge->base.next_bridge,
>  				 bridge, flags);
>  }
>  
> @@ -303,8 +303,7 @@ struct vs_bridge *vs_bridge_init(struct
> drm_device *drm_dev,
>  		return NULL;
>  	}
>  
> -	next = devm_drm_of_get_bridge(drm_dev->dev, drm_dev->dev-
> >of_node,
> -				      output, intf);
> +	next = of_drm_get_bridge_by_endpoint(drm_dev->dev->of_node,
> output, intf);
>  	if (IS_ERR(next)) {
>  		ret = PTR_ERR(next);
>  		if (ret != -EPROBE_DEFER)
> @@ -326,7 +325,7 @@ struct vs_bridge *vs_bridge_init(struct
> drm_device *drm_dev,
>  
>  	bridge->crtc = crtc;
>  	bridge->intf = intf;
> -	bridge->next_bridge = next;
> +	bridge->base.next_bridge = next;
>  
>  	if (intf == VSDC_OUTPUT_INTERFACE_DPI)
>  		enctype = DRM_MODE_ENCODER_DPI;
> diff --git a/drivers/gpu/drm/verisilicon/vs_bridge.h
> b/drivers/gpu/drm/verisilicon/vs_bridge.h
> index 70fee1749699..2b0ed94e4520 100644
> --- a/drivers/gpu/drm/verisilicon/vs_bridge.h
> +++ b/drivers/gpu/drm/verisilicon/vs_bridge.h
> @@ -25,7 +25,6 @@ struct vs_bridge {
>  	struct drm_connector *conn;
>  
>  	struct vs_crtc *crtc;
> -	struct drm_bridge *next_bridge;
>  	enum vs_bridge_output_interface intf;
>  };
>  


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 1/7] drm/imx/lcdc: stop using deprecated devm_drm_of_get_bridge()
  2026-09-29 10:36 ` [PATCH 1/7] drm/imx/lcdc: stop using deprecated devm_drm_of_get_bridge() Luca Ceresoli
@ 2026-09-29 12:33   ` Maxime Ripard
  0 siblings, 0 replies; 19+ messages in thread
From: Maxime Ripard @ 2026-09-29 12:33 UTC (permalink / raw)
  To: Luca Ceresoli
  Cc: dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Andrzej Hajda, Arnd Bergmann, Dave Stevenson,
	David Airlie, Doug Anderson, Fabio Estevam, Frank Li,
	Geert Uytterhoeven, Hui Pu, Ian Ray, Icenowy Zheng,
	Jernej Skrabec, Jonas Karlman, Laurent Pinchart,
	Maarten Lankhorst, Maxime Ripard, Maíra Canal,
	Neil Armstrong, Pengutronix Kernel Team,
	Raspberry Pi Kernel Maintenance, Robert Foss, Sascha Hauer,
	Simona Vetter, Thomas Petazzoni, Thomas Zimmermann

On Tue, 29 Sep 2026 12:36:33 +0200, Luca Ceresoli wrote:
> 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.
> 
> Fixes build failure when CONFIG_OF is disabled.
> 
> [ ... ]

Acked-by: Maxime Ripard <mripard@kernel.org>

Thanks!
Maxime

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 2/7] drm: verisilicon: stop using deprecated devm_drm_of_get_bridge()
  2026-09-29 10:36 ` [PATCH 2/7] drm: verisilicon: " Luca Ceresoli
  2026-09-29 10:47   ` Icenowy Zheng
@ 2026-09-29 12:33   ` Maxime Ripard
  1 sibling, 0 replies; 19+ messages in thread
From: Maxime Ripard @ 2026-09-29 12:33 UTC (permalink / raw)
  To: Luca Ceresoli
  Cc: dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Andrzej Hajda, Arnd Bergmann, Dave Stevenson,
	David Airlie, Doug Anderson, Fabio Estevam, Frank Li,
	Geert Uytterhoeven, Hui Pu, Ian Ray, Icenowy Zheng,
	Jernej Skrabec, Jonas Karlman, Laurent Pinchart,
	Maarten Lankhorst, Maxime Ripard, Maíra Canal,
	Neil Armstrong, Pengutronix Kernel Team,
	Raspberry Pi Kernel Maintenance, Robert Foss, Sascha Hauer,
	Simona Vetter, Thomas Petazzoni, Thomas Zimmermann

On Tue, 29 Sep 2026 12:36:34 +0200, Luca Ceresoli wrote:
> 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.
> 
> Fixes build failure when CONFIG_OF is disabled.
> 
> [ ... ]

Acked-by: Maxime Ripard <mripard@kernel.org>

Thanks!
Maxime

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/7] drm/bridge: dw-mipi-dsi: stop using deprecated devm_drm_of_get_bridge()
  2026-09-29 10:36 ` [PATCH 3/7] drm/bridge: dw-mipi-dsi: " Luca Ceresoli
@ 2026-09-29 12:33   ` Maxime Ripard
  0 siblings, 0 replies; 19+ messages in thread
From: Maxime Ripard @ 2026-09-29 12:33 UTC (permalink / raw)
  To: Luca Ceresoli
  Cc: dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Andrzej Hajda, Arnd Bergmann, Dave Stevenson,
	David Airlie, Doug Anderson, Fabio Estevam, Frank Li,
	Geert Uytterhoeven, Hui Pu, Ian Ray, Icenowy Zheng,
	Jernej Skrabec, Jonas Karlman, Laurent Pinchart,
	Maarten Lankhorst, Maxime Ripard, Maíra Canal,
	Neil Armstrong, Pengutronix Kernel Team,
	Raspberry Pi Kernel Maintenance, Robert Foss, Sascha Hauer,
	Simona Vetter, Thomas Petazzoni, Thomas Zimmermann

On Tue, 29 Sep 2026 12:36:35 +0200, Luca Ceresoli wrote:
> 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.
> 
> Fixes build failure when CONFIG_OF is disabled.
> 
> [ ... ]

Acked-by: Maxime Ripard <mripard@kernel.org>

Thanks!
Maxime

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 4/7] drm/bridge: dw-mipi-dsi2: stop using deprecated devm_drm_of_get_bridge()
  2026-09-29 10:36 ` [PATCH 4/7] drm/bridge: dw-mipi-dsi2: " Luca Ceresoli
@ 2026-09-29 12:34   ` Maxime Ripard
  0 siblings, 0 replies; 19+ messages in thread
From: Maxime Ripard @ 2026-09-29 12:34 UTC (permalink / raw)
  To: Luca Ceresoli
  Cc: dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Andrzej Hajda, Arnd Bergmann, Dave Stevenson,
	David Airlie, Doug Anderson, Fabio Estevam, Frank Li,
	Geert Uytterhoeven, Hui Pu, Ian Ray, Icenowy Zheng,
	Jernej Skrabec, Jonas Karlman, Laurent Pinchart,
	Maarten Lankhorst, Maxime Ripard, Maíra Canal,
	Neil Armstrong, Pengutronix Kernel Team,
	Raspberry Pi Kernel Maintenance, Robert Foss, Sascha Hauer,
	Simona Vetter, Thomas Petazzoni, Thomas Zimmermann

On Tue, 29 Sep 2026 12:36:36 +0200, Luca Ceresoli wrote:
> 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 <luca.ceresoli@bootlin.com>
> 
> [ ... ]

Acked-by: Maxime Ripard <mripard@kernel.org>

Thanks!
Maxime

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 5/7] drm/vc4: dpi: stop using deprecated drmm_of_get_bridge()
  2026-09-29 10:36 ` [PATCH 5/7] drm/vc4: dpi: stop using deprecated drmm_of_get_bridge() Luca Ceresoli
@ 2026-09-29 12:35   ` Maxime Ripard
  0 siblings, 0 replies; 19+ messages in thread
From: Maxime Ripard @ 2026-09-29 12:35 UTC (permalink / raw)
  To: Luca Ceresoli
  Cc: Maarten Lankhorst, Thomas Zimmermann, David Airlie,
	Simona Vetter, Frank Li, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, Icenowy Zheng, Andrzej Hajda, Neil Armstrong,
	Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
	Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven,
	Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc

[-- Attachment #1: Type: text/plain, Size: 316 bytes --]

On Tue, Sep 29, 2026 at 12:36:37PM +0200, Luca Ceresoli wrote:
> 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.

You didn't remove devm_drm_of_get_bridge but drmm_drm_of_get_bridge here

Maxime

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 6/7] drm/vc4: dsi: stop using deprecated drmm_of_get_bridge()
  2026-09-29 10:36 ` [PATCH 6/7] drm/vc4: dsi: " Luca Ceresoli
@ 2026-09-29 12:36   ` Maxime Ripard
  0 siblings, 0 replies; 19+ messages in thread
From: Maxime Ripard @ 2026-09-29 12:36 UTC (permalink / raw)
  To: Luca Ceresoli
  Cc: Maarten Lankhorst, Thomas Zimmermann, David Airlie,
	Simona Vetter, Frank Li, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, Icenowy Zheng, Andrzej Hajda, Neil Armstrong,
	Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec,
	Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven,
	Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc

[-- Attachment #1: Type: text/plain, Size: 425 bytes --]

On Tue, Sep 29, 2026 at 12:36:38PM +0200, Luca Ceresoli wrote:
> 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.
> 
> drm_panel.h becomes unused, drop the include.
> 
> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>

Same comment than on patch 5

Maxime

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 273 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 7/7] drm: renesas: shmobile: stop using deprecated devm_drm_of_get_bridge()
  2026-09-29 10:36 ` [PATCH 7/7] drm: renesas: shmobile: stop using deprecated devm_drm_of_get_bridge() Luca Ceresoli
@ 2026-09-29 12:36   ` Maxime Ripard
  0 siblings, 0 replies; 19+ messages in thread
From: Maxime Ripard @ 2026-09-29 12:36 UTC (permalink / raw)
  To: Luca Ceresoli
  Cc: dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc, Andrzej Hajda, Arnd Bergmann, Dave Stevenson,
	David Airlie, Doug Anderson, Fabio Estevam, Frank Li,
	Geert Uytterhoeven, Hui Pu, Ian Ray, Icenowy Zheng,
	Jernej Skrabec, Jonas Karlman, Laurent Pinchart,
	Maarten Lankhorst, Maxime Ripard, Maíra Canal,
	Neil Armstrong, Pengutronix Kernel Team,
	Raspberry Pi Kernel Maintenance, Robert Foss, Sascha Hauer,
	Simona Vetter, Thomas Petazzoni, Thomas Zimmermann

On Tue, 29 Sep 2026 12:36:39 +0200, Luca Ceresoli wrote:
> 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.
> 
> drm_panel.h becomes unused, drop the include.
> 
> [ ... ]

Acked-by: Maxime Ripard <mripard@kernel.org>

Thanks!
Maxime

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression)
  2026-09-29 10:36 [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Luca Ceresoli
                   ` (7 preceding siblings ...)
  2026-09-29 10:46 ` [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Icenowy Zheng
@ 2026-09-29 13:18 ` Luca Ceresoli
  8 siblings, 0 replies; 19+ messages in thread
From: Luca Ceresoli @ 2026-09-29 13:18 UTC (permalink / raw)
  To: Luca Ceresoli, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Icenowy Zheng, Andrzej Hajda, Neil Armstrong, Robert Foss,
	Laurent Pinchart, Jonas Karlman, Jernej Skrabec, Dave Stevenson,
	Maíra Canal, Raspberry Pi Kernel Maintenance,
	Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc

Hello,

On Tue Sep 29, 2026 at 12:36 PM CEST, Luca Ceresoli wrote:
> After commit Fixes: aa8a8c7e4641 ("drm/bridge: panel: move all code to
> drm_panel.c") some drivers fail building:
>
>   error: implicit declaration of function 'devm_drm_of_get_bridge'
>
> This is because devm_drm_of_get_bridge() (and drmm_of_get_bridge()) have
> been moved to drm-panel.h.
>
> The affected drivers are those which:
>
>  * can be built without CONFIG_OF, and
>  * don't include drm_panel.h
>
> The affected drivers are 3, fix them (patches 1-3) by replacing the
> deprecated *_of_get_bridge() calls with of_drm_get_bridge_by_endpoint().
>
> While there, do the same for all drivers which be built without CONFIG_OF,
> even if they don't fail (patches 4-7).
>
> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>

In the rush for sending fixes I introduced some bugs caught by sashiko,
mostly of the kind "bridge ref will leak if this function fails later". I'm
sending a v2 in a moment.

Sorry I guess I have to remove the review tags received. :-/

Luca

--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression)
  2026-09-29 10:46 ` [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Icenowy Zheng
@ 2026-09-29 13:22   ` Luca Ceresoli
  0 siblings, 0 replies; 19+ messages in thread
From: Luca Ceresoli @ 2026-09-29 13:22 UTC (permalink / raw)
  To: Icenowy Zheng, Luca Ceresoli, Maarten Lankhorst, Maxime Ripard,
	Thomas Zimmermann, David Airlie, Simona Vetter, Frank Li,
	Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
	Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart,
	Jonas Karlman, Jernej Skrabec, Dave Stevenson, Maíra Canal,
	Raspberry Pi Kernel Maintenance, Geert Uytterhoeven
  Cc: Arnd Bergmann, Doug Anderson, Hui Pu, Ian Ray, Thomas Petazzoni,
	dri-devel, imx, linux-arm-kernel, linux-kernel,
	linux-renesas-soc

Hello Icenowy,

On Tue Sep 29, 2026 at 12:46 PM CEST, Icenowy Zheng wrote:
> 在 2026-09-29二的 12:36 +0200,Luca Ceresoli写道:
>> After commit Fixes: aa8a8c7e4641 ("drm/bridge: panel: move all code
>> to
>> drm_panel.c") some drivers fail building:
>>
>>   error: implicit declaration of function 'devm_drm_of_get_bridge'
>>
>> This is because devm_drm_of_get_bridge() (and drmm_of_get_bridge())
>> have
>> been moved to drm-panel.h.
>>
>> The affected drivers are those which:
>>
>>  * can be built without CONFIG_OF, and
>>  * don't include drm_panel.h
>>
>> The affected drivers are 3, fix them (patches 1-3) by replacing the
>> deprecated *_of_get_bridge() calls with
>> of_drm_get_bridge_by_endpoint().
>
> The comment of drm_of_find_panel_or_bridge() still suggests
> devm_of_get_bridge(), and the documentation at the head of drm_bridge.c
> also mentions it.

Ah, thanks for noticing. I'm taking a note to fix this later.

> BTW should drm_of_get_bridge_by_endpoint() has some drmm/devm variant?

Maybe, but not sure, as we introduce hotplug devm/drmm becomes pretty
useless and even annoying. However I haven't checked all the cases, so we
might reconsider this idea as we start converting more drivers though.

Luca

--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2026-09-29 13:22 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-29 10:36 [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Luca Ceresoli
2026-09-29 10:36 ` [PATCH 1/7] drm/imx/lcdc: stop using deprecated devm_drm_of_get_bridge() Luca Ceresoli
2026-09-29 12:33   ` Maxime Ripard
2026-09-29 10:36 ` [PATCH 2/7] drm: verisilicon: " Luca Ceresoli
2026-09-29 10:47   ` Icenowy Zheng
2026-09-29 12:33   ` Maxime Ripard
2026-09-29 10:36 ` [PATCH 3/7] drm/bridge: dw-mipi-dsi: " Luca Ceresoli
2026-09-29 12:33   ` Maxime Ripard
2026-09-29 10:36 ` [PATCH 4/7] drm/bridge: dw-mipi-dsi2: " Luca Ceresoli
2026-09-29 12:34   ` Maxime Ripard
2026-09-29 10:36 ` [PATCH 5/7] drm/vc4: dpi: stop using deprecated drmm_of_get_bridge() Luca Ceresoli
2026-09-29 12:35   ` Maxime Ripard
2026-09-29 10:36 ` [PATCH 6/7] drm/vc4: dsi: " Luca Ceresoli
2026-09-29 12:36   ` Maxime Ripard
2026-09-29 10:36 ` [PATCH 7/7] drm: renesas: shmobile: stop using deprecated devm_drm_of_get_bridge() Luca Ceresoli
2026-09-29 12:36   ` Maxime Ripard
2026-09-29 10:46 ` [PATCH 0/7] drm: remove deprecated *_of_get_bridge() from non-OF drivers (fixes build regression) Icenowy Zheng
2026-09-29 13:22   ` Luca Ceresoli
2026-09-29 13:18 ` Luca Ceresoli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®