drm: bridge: simple-bridge: use devm_drm_bridge_add in probe
authorMarc Gonzalez <mgonzalez@freebox.fr>
Tue, 18 Jun 2024 16:19:59 +0000 (18:19 +0200)
committerMaxime Ripard <mripard@kernel.org>
Wed, 19 Jun 2024 08:50:30 +0000 (10:50 +0200)
simple_bridge_probe() calls drm_bridge_add()
Thus, drm_bridge_remove() must be called in the remove() callback.

If we call devm_drm_bridge_add() instead, then drm_bridge_remove()
will be called automatically at device release, and the remove()
callback is no longer required.

Signed-off-by: Marc Gonzalez <mgonzalez@freebox.fr>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Maxime Ripard <mripard@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240618-devm-simple-bridge-v1-1-c7ed8a09fcc5@freebox.fr
drivers/gpu/drm/bridge/simple-bridge.c

index 2ca89f313cd1d432568b0993ba971f4a65a67fdc..ab0b0e36e97ac244427ac316acd9230c9490f2ce 100644 (file)
@@ -170,7 +170,6 @@ static int simple_bridge_probe(struct platform_device *pdev)
        sbridge = devm_kzalloc(&pdev->dev, sizeof(*sbridge), GFP_KERNEL);
        if (!sbridge)
                return -ENOMEM;
-       platform_set_drvdata(pdev, sbridge);
 
        sbridge->info = of_device_get_match_data(&pdev->dev);
 
@@ -208,16 +207,7 @@ static int simple_bridge_probe(struct platform_device *pdev)
        sbridge->bridge.of_node = pdev->dev.of_node;
        sbridge->bridge.timings = sbridge->info->timings;
 
-       drm_bridge_add(&sbridge->bridge);
-
-       return 0;
-}
-
-static void simple_bridge_remove(struct platform_device *pdev)
-{
-       struct simple_bridge *sbridge = platform_get_drvdata(pdev);
-
-       drm_bridge_remove(&sbridge->bridge);
+       return devm_drm_bridge_add(&pdev->dev, &sbridge->bridge);
 }
 
 /*
@@ -294,7 +284,6 @@ MODULE_DEVICE_TABLE(of, simple_bridge_match);
 
 static struct platform_driver simple_bridge_driver = {
        .probe  = simple_bridge_probe,
-       .remove_new = simple_bridge_remove,
        .driver         = {
                .name           = "simple-bridge",
                .of_match_table = simple_bridge_match,