2022-01-18 02:35:54

by Robert Foss

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

Hi Owen

On Mon, 17 Jan 2022 at 11:10, owen <[email protected]> wrote:
>
> From: owen <[email protected]>
>
> 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 <[email protected]>
> ---
> 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 <[email protected]>

Applied to drm-misc-next.