Replace manual drm_bridge_remove()/mipi_dsi_detach() in remove with
devm_drm_bridge_add() and devm_mipi_dsi_attach() in probe. Also check
the return value from bridge registration.

Signed-off-by: Osama Abdelkader <[email protected]>
---
 drivers/gpu/drm/bridge/tc358762.c | 19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/bridge/tc358762.c 
b/drivers/gpu/drm/bridge/tc358762.c
index 3d75d9cfa45e..3a021ca895f1 100644
--- a/drivers/gpu/drm/bridge/tc358762.c
+++ b/drivers/gpu/drm/bridge/tc358762.c
@@ -293,25 +293,17 @@ static int tc358762_probe(struct mipi_dsi_device *dsi)
        ctx->bridge.of_node = dev->of_node;
        ctx->bridge.pre_enable_prev_first = true;
 
-       drm_bridge_add(&ctx->bridge);
+       ret = devm_drm_bridge_add(dev, &ctx->bridge);
+       if (ret < 0)
+               return ret;
 
-       ret = mipi_dsi_attach(dsi);
-       if (ret < 0) {
-               drm_bridge_remove(&ctx->bridge);
+       ret = devm_mipi_dsi_attach(dev, dsi);
+       if (ret < 0)
                dev_err(dev, "failed to attach dsi\n");
-       }
 
        return ret;
 }
 
-static void tc358762_remove(struct mipi_dsi_device *dsi)
-{
-       struct tc358762 *ctx = mipi_dsi_get_drvdata(dsi);
-
-       mipi_dsi_detach(dsi);
-       drm_bridge_remove(&ctx->bridge);
-}
-
 static const struct of_device_id tc358762_of_match[] = {
        { .compatible = "toshiba,tc358762" },
        { }
@@ -320,7 +312,6 @@ MODULE_DEVICE_TABLE(of, tc358762_of_match);
 
 static struct mipi_dsi_driver tc358762_driver = {
        .probe = tc358762_probe,
-       .remove = tc358762_remove,
        .driver = {
                .name = "tc358762",
                .of_match_table = tc358762_of_match,
-- 
2.43.0

Reply via email to