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);
 
        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);
 }
 
 /*
 
 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,