Re: [PATCH] drm/omap: dss: fix handling deferrals

From: Tomi Valkeinen

Date: Wed Nov 11 2026 - 10:06:02 EST


Hi,

On 11/11/2026 14:22, Andreas Kemnade wrote:
Forward the error given by of_drm_get_bridge_by_endpoint() if it is
EPROBE_DEFER to ensure output gets initialized later when available.

On GTA04/OMAP3 no display was found, but it appeared after doing
rmmod omapdrm ; modprobe omapdrm

Fixes: b7e9b93fc8ecf ("drm/omap: dss: don't create a panel_bridge")
Signed-off-by: Andreas Kemnade <andreas@xxxxxxxxxxxx>
---
drivers/gpu/drm/omapdrm/dss/output.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/omapdrm/dss/output.c b/drivers/gpu/drm/omapdrm/dss/output.c
index 36d37deac8026..220ed7e003080 100644
--- a/drivers/gpu/drm/omapdrm/dss/output.c
+++ b/drivers/gpu/drm/omapdrm/dss/output.c
@@ -24,6 +24,11 @@ int omapdss_device_init_output(struct omap_dss_device *out,
bridge = of_drm_get_bridge_by_endpoint(out->dev->of_node, out->of_port, 0);
if (IS_ERR(bridge)) {
+ if (PTR_ERR(bridge) == -EPROBE_DEFER) {
+ ret = PTR_ERR(bridge);
+ goto error;
+ }
+
Shouldn't we just return PTR_ERR(bridge) here? The error label will call omapdss_device_cleanup_output(), which cleans up things set up later in this function.

Tomi