drm/bridge: anx7625: Switch to devm MIPI-DSI helpers
authorMaxime Ripard <maxime@cerno.tech>
Mon, 25 Oct 2021 15:15:18 +0000 (17:15 +0200)
committerMaxime Ripard <maxime@cerno.tech>
Wed, 27 Oct 2021 20:07:56 +0000 (22:07 +0200)
Let's switch to the new devm MIPI-DSI function to register and attach
our secondary device.

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

index 1a871f6..4adeb2b 100644 (file)
@@ -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,