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. Let's do this.

Signed-off-by: Maxime Ripard <max...@cerno.tech>
---
 drivers/gpu/drm/bridge/lontium-lt8912b.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/bridge/lontium-lt8912b.c 
b/drivers/gpu/drm/bridge/lontium-lt8912b.c
index cc968d65936b..c642d1e02b2f 100644
--- a/drivers/gpu/drm/bridge/lontium-lt8912b.c
+++ b/drivers/gpu/drm/bridge/lontium-lt8912b.c
@@ -544,10 +544,6 @@ static int lt8912_bridge_attach(struct drm_bridge *bridge,
        if (ret)
                goto error;
 
-       ret = lt8912_attach_dsi(lt);
-       if (ret)
-               goto error;
-
        lt->is_attached = true;
 
        return 0;
@@ -706,8 +702,15 @@ static int lt8912_probe(struct i2c_client *client,
 
        drm_bridge_add(&lt->bridge);
 
+       ret = lt8912_attach_dsi(lt);
+       if (ret)
+               goto err_attach;
+
        return 0;
 
+err_attach:
+       drm_bridge_remove(&lt->bridge);
+       lt8912_free_i2c(lt);
 err_i2c:
        lt8912_put_dt(lt);
 err_dt_parse:
-- 
2.31.1

Reply via email to