/* Bodge while we unpick instantiation */
        card->dev = &pdev->dev;
 
-       return snd_soc_register_card(card);
-}
-
-/* removes a socdev */
-static int soc_remove(struct platform_device *pdev)
-{
-       struct snd_soc_card *card = platform_get_drvdata(pdev);
-
-       snd_soc_unregister_card(card);
-       return 0;
+       return devm_snd_soc_register_card(&pdev->dev, card);
 }
 
 int snd_soc_poweroff(struct device *dev)
                .pm             = &snd_soc_pm_ops,
        },
        .probe          = soc_probe,
-       .remove         = soc_remove,
 };
 
 /**