ASoC: smdk_wm8994: Convert to use snd_soc_register_card()
authorSachin Kamat <sachin.kamat@linaro.org>
Tue, 3 Jul 2012 08:34:04 +0000 (14:04 +0530)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 3 Jul 2012 18:48:29 +0000 (19:48 +0100)
Current method for machine driver to register with the ASoC core is to use
snd_soc_register_card() instead of creating a "soc-audio" platform device.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/samsung/smdk_wm8994.c

index 8eb309f23d18247983df33970601a8993747c721..48dd4dd9ee08dc7f51c6e523e633f52e922307fb 100644 (file)
@@ -149,31 +149,41 @@ static struct snd_soc_card smdk = {
        .num_links = ARRAY_SIZE(smdk_dai),
 };
 
-static struct platform_device *smdk_snd_device;
 
-static int __init smdk_audio_init(void)
+static int __devinit smdk_audio_probe(struct platform_device *pdev)
 {
        int ret;
+       struct snd_soc_card *card = &smdk;
 
-       smdk_snd_device = platform_device_alloc("soc-audio", -1);
-       if (!smdk_snd_device)
-               return -ENOMEM;
+       card->dev = &pdev->dev;
+       ret = snd_soc_register_card(card);
 
-       platform_set_drvdata(smdk_snd_device, &smdk);
-
-       ret = platform_device_add(smdk_snd_device);
        if (ret)
-               platform_device_put(smdk_snd_device);
+               dev_err(&pdev->dev, "snd_soc_register_card() failed:%d\n", ret);
 
        return ret;
 }
-module_init(smdk_audio_init);
 
-static void __exit smdk_audio_exit(void)
+static int __devexit smdk_audio_remove(struct platform_device *pdev)
 {
-       platform_device_unregister(smdk_snd_device);
+       struct snd_soc_card *card = platform_get_drvdata(pdev);
+
+       snd_soc_unregister_card(card);
+
+       return 0;
 }
-module_exit(smdk_audio_exit);
+
+static struct platform_driver smdk_audio_driver = {
+       .driver         = {
+               .name   = "smdk-audio",
+               .owner  = THIS_MODULE,
+       },
+       .probe          = smdk_audio_probe,
+       .remove         = __devexit_p(smdk_audio_remove),
+};
+
+module_platform_driver(smdk_audio_driver);
 
 MODULE_DESCRIPTION("ALSA SoC SMDK WM8994");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:smdk-audio");