OSDN Git Service

drm/bridge: lt8912b: Register and attach our DSI device at probe
authorMaxime Ripard <maxime@cerno.tech>
Mon, 25 Oct 2021 15:15:21 +0000 (17:15 +0200)
committerMaxime Ripard <maxime@cerno.tech>
Wed, 27 Oct 2021 20:07:56 +0000 (22:07 +0200)
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.

Acked-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20211025151536.1048186-7-maxime@cerno.tech
drivers/gpu/drm/bridge/lontium-lt8912b.c

index cc968d6..c642d1e 100644 (file)
@@ -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: