drm/bridge: anx7625: Return -EPROBE_DEFER if the dsi host was not found

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@gmail.com>
Signed-off-by: Robert Foss <robert.foss@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20220117100949.9542-1-qwt9588@gamil.com
Reviewed-by: Robert Foss <robert.foss@linaro.org>
This commit is contained in:
owen 2022-01-17 18:09:49 +08:00 committed by Robert Foss
parent 032a125904
commit 269332997a
No known key found for this signature in database
GPG Key ID: 3EFD900F76D1D784

View File

@ -1917,7 +1917,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);