Let's switch to the new devm MIPI-DSI function to register and attach
our secondary device.

Signed-off-by: Maxime Ripard <max...@cerno.tech>
---
 drivers/gpu/drm/bridge/analogix/anx7625.c | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c 
b/drivers/gpu/drm/bridge/analogix/anx7625.c
index 1a871f6b6822..4adeb2bad03a 100644
--- a/drivers/gpu/drm/bridge/analogix/anx7625.c
+++ b/drivers/gpu/drm/bridge/analogix/anx7625.c
@@ -1316,6 +1316,7 @@ static int anx7625_attach_dsi(struct anx7625_data *ctx)
                .channel = 0,
                .node = NULL,
        };
+       int ret;
 
        DRM_DEV_DEBUG_DRIVER(dev, "attach dsi\n");
 
@@ -1325,7 +1326,7 @@ static int anx7625_attach_dsi(struct anx7625_data *ctx)
                return -EINVAL;
        }
 
-       dsi = mipi_dsi_device_register_full(host, &info);
+       dsi = devm_mipi_dsi_device_register_full(dev, host, &info);
        if (IS_ERR(dsi)) {
                DRM_DEV_ERROR(dev, "fail to create dsi device.\n");
                return -EINVAL;
@@ -1337,10 +1338,10 @@ static int anx7625_attach_dsi(struct anx7625_data *ctx)
                MIPI_DSI_MODE_VIDEO_SYNC_PULSE  |
                MIPI_DSI_MODE_VIDEO_HSE;
 
-       if (mipi_dsi_attach(dsi) < 0) {
+       ret = devm_mipi_dsi_attach(dev, dsi);
+       if (ret) {
                DRM_DEV_ERROR(dev, "fail to attach dsi to host.\n");
-               mipi_dsi_device_unregister(dsi);
-               return -EINVAL;
+               return ret;
        }
 
        ctx->dsi = dsi;
@@ -1350,16 +1351,6 @@ static int anx7625_attach_dsi(struct anx7625_data *ctx)
        return 0;
 }
 
-static void anx7625_bridge_detach(struct drm_bridge *bridge)
-{
-       struct anx7625_data *ctx = bridge_to_anx7625(bridge);
-
-       if (ctx->dsi) {
-               mipi_dsi_detach(ctx->dsi);
-               mipi_dsi_device_unregister(ctx->dsi);
-       }
-}
-
 static int anx7625_bridge_attach(struct drm_bridge *bridge,
                                 enum drm_bridge_attach_flags flags)
 {
@@ -1624,7 +1615,6 @@ static struct edid *anx7625_bridge_get_edid(struct 
drm_bridge *bridge,
 
 static const struct drm_bridge_funcs anx7625_bridge_funcs = {
        .attach = anx7625_bridge_attach,
-       .detach = anx7625_bridge_detach,
        .disable = anx7625_bridge_disable,
        .mode_valid = anx7625_bridge_mode_valid,
        .mode_set = anx7625_bridge_mode_set,
-- 
2.31.1

Reply via email to