]> git.hungrycats.org Git - linux/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:08:19 +0000 (11:08 +0100)
[ Upstream commit d89078c37b10f05fa4f4791b71db2572db361b68 ]

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
Stable-dep-of: 941882a0e96d ("drm/bridge: lt8912b: Fix bridge_detach")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/bridge/lontium-lt8912b.c

index 24ca22b0b9f5670e59899d2876c100fb7cf3e3b8..6ad3b2d1819f1b09f903097398a715036e9540af 100644 (file)
@@ -552,10 +552,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;
@@ -714,8 +710,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: