[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <DG7YBVU2COFT.2JP8PKR4ZAKFT@bootlin.com>
Date: Fri, 06 Feb 2026 15:34:13 +0100
From: "Luca Ceresoli" <luca.ceresoli@...tlin.com>
To: "Marek Vasut" <marek.vasut+renesas@...lbox.org>,
<dri-devel@...ts.freedesktop.org>
Cc: "Andrzej Hajda" <andrzej.hajda@...el.com>, "David Airlie"
<airlied@...il.com>, "Jernej Skrabec" <jernej.skrabec@...il.com>, "Jonas
Karlman" <jonas@...boo.se>, "Laurent Pinchart"
<Laurent.pinchart@...asonboard.com>, "Maarten Lankhorst"
<maarten.lankhorst@...ux.intel.com>, "Maxime Ripard" <mripard@...nel.org>,
"Neil Armstrong" <neil.armstrong@...aro.org>, "Robert Foss"
<rfoss@...nel.org>, "Simona Vetter" <simona@...ll.ch>, "Thomas Zimmermann"
<tzimmermann@...e.de>, <linux-kernel@...r.kernel.org>,
<linux-renesas-soc@...r.kernel.org>
Subject: Re: [PATCH v2] drm/bridge: waveshare-dsi: Register and attach our
DSI device at probe
Hi Marek,
On Fri Feb 6, 2026 at 1:57 PM CET, Marek Vasut wrote:
> In order to avoid any probe ordering issue, the best practice is to move
> the secondary MIPI-DSI device registration and attachment to the
> MIPI-DSI host at probe time.
>
> Besides solving the probe ordering problems, this makes the bridge work
> with R-Car DU. The R-Car DU will attempt to locate the DSI host bridge in
> its own rcar_du_probe()->rcar_du_modeset_init()->rcar_du_encoder_init()
> by calling of_drm_find_bridge() which calls of_drm_find_and_get_bridge()
> and iterates over bridge_list to locate the DSI host bridge.
>
> However, unless the WS driver calls mipi_dsi_attach() in probe(), the
> DSI host bridge .attach callback rcar_mipi_dsi_host_attach() is not
> called and the DSI host bridge is not added into bridge_list. Therefore
> the of_drm_find_and_get_bridge() called from du_probe() will never find
> the DSI host bridge and probe will indefinitelly fail with -EPROBE_DEFER.
>
> The circular dependency here is, that if rcar_du_encoder_init() would
> manage to find the DSI host bridge, it would call the WS driver .attach
> callback ws_bridge_bridge_attach(), but this is too late and can never
> happen. This change avoids the circular dependency.
>
> Reviewed-by: Luca Ceresoli <luca.ceresoli@...tlin.com>
> Signed-off-by: Marek Vasut <marek.vasut+renesas@...lbox.org>
Thanks for the very clear description! R-by confirmed.
Luca
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
Powered by blists - more mailing lists