[PATCH v5] drm/bridge: anx7625: Return -EPROBE_DEFER if the dsi host was not found

Robert Foss robert.foss at linaro.org
Mon Jan 17 15:42:28 UTC 2022


Hi Owen

On Mon, 17 Jan 2022 at 11:10, owen <qwt9588 at gmail.com> wrote:
>
> From: owen <qwt9588 at gmail.com>
>
> It will connect to the mipi dsi host and find the corresponding
> mipi dsi host node, but the node registered by the mipi dsi host
> has not been loaded yet. of_find_mipi_dsi_host_by_node() returns -EINVAL
> which causes the calling driver to fail.
>
> If the anx7625 driver is loaded afterwards the driver requesting
> the mipi dsi host will not notice this.
>
> Better approach is to return -EPROBE_DEFER in such case.
> Then when the anx7625 driver appears the driver requesting
> the mipi dsi host will be probed again.
>
> Signed-off-by: owen <qwt9588 at gmail.com>
> ---
>  drivers/gpu/drm/bridge/analogix/anx7625.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c
> index 2346dbcc505f..297bbeb5aae0 100644
> --- a/drivers/gpu/drm/bridge/analogix/anx7625.c
> +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
> @@ -1660,7 +1660,7 @@ static int anx7625_attach_dsi(struct anx7625_data *ctx)
>         host = of_find_mipi_dsi_host_by_node(ctx->pdata.mipi_host_node);
>         if (!host) {
>                 DRM_DEV_ERROR(dev, "fail to find dsi host.\n");
> -               return -EINVAL;
> +               return -EPROBE_DEFER;
>         }
>
>         dsi = devm_mipi_dsi_device_register_full(dev, host, &info);
> --
> 2.31.0
>

Reviewed-by: Robert Foss <robert.foss at linaro.org>

Applied to drm-misc-next.


More information about the dri-devel mailing list