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 <[email protected]> > Signed-off-by: Marek Vasut <[email protected]>
Thanks for the very clear description! R-by confirmed. Luca -- Luca Ceresoli, Bootlin Embedded Linux and Kernel engineering https://bootlin.com
