Hi Dario,

On Thu, Oct 29, 2026 at 03:41:28PM +0100, Dario Binacchi wrote:
> of_drm_find_and_get_bridge() returns NULL if the panel has not been
> registered yet. Returning -ENODEV in this case makes the probe fail
> instead of being retried, so the LDB is never bound and the display
> pipeline never comes up:
> 
>   platform 32e90000.display-controller: deferred probe pending: imx-lcdif: 
> Failed to get bridge for endpoint0
> 
> Return -EPROBE_DEFER, so that the probe is retried once the panel is
> available.
> 
> Fixes: 802372cf316a ("drm/bridge: fsl-ldb: don't create a panel_bridge")
> Signed-off-by: Dario Binacchi <[email protected]>
> 
> ---
> 
>  drivers/gpu/drm/bridge/fsl-ldb.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/bridge/fsl-ldb.c 
> b/drivers/gpu/drm/bridge/fsl-ldb.c
> index 7ec84c81cd78..420b3e08130e 100644
> --- a/drivers/gpu/drm/bridge/fsl-ldb.c
> +++ b/drivers/gpu/drm/bridge/fsl-ldb.c
> @@ -342,7 +342,7 @@ static int fsl_ldb_probe(struct platform_device *pdev)
>       fsl_ldb->bridge.next_bridge = of_drm_find_and_get_bridge(panel_node);
>       of_node_put(panel_node);
>       if (!fsl_ldb->bridge.next_bridge)
> -             return -ENODEV;
> +             return -EPROBE_DEFER;

Hmm, I have a patch [1] in the DCIF series that adds support for non-panel
bridges to fsl-ldb.c which, indirectly, should fix this as well. But, since I
don't see that patchset merged anytime soon:

Reviewed-by: Laurentiu Palcu <[email protected]>

[1] 
https://lore.kernel.org/dri-devel/[email protected]/

-- 
Thanks,
Laurentiu

Reply via email to