[1/1] ASoC: Samsung: Convert to use snd_soc_register_card()

Message ID 1341304444-11188-1-git-send-email-sachin.kamat@linaro.org
State Accepted
Headers show

Commit Message

Sachin Kamat July 3, 2012, 8:34 a.m.
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>
---
 sound/soc/samsung/smdk_wm8994.c |   36 +++++++++++++++++++++++-------------
 1 files changed, 23 insertions(+), 13 deletions(-)

Comments

Sangbeom Kim July 3, 2012, 10:35 a.m. | #1
Hi!
On Tuesday, Jul 03, 2012 at 05:34PM, Sachin Kamat wrote:
> 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.

It looks better to include reason of using snd_soc_register_card
instead of creating "soc-audio" or warning message.

Acked-by: Sangbeom Kim <sbkim73@samsung.com>
Mark Brown July 3, 2012, 6:48 p.m. | #2
On Tue, Jul 03, 2012 at 02:04:04PM +0530, Sachin Kamat wrote:
> 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.

Applied, thanks (it's not a generic Samsung patch, it's just for the one
board BTW).
Sangbeom Kim July 12, 2012, 8:35 a.m. | #3
Hi!
On Tuesday, Jul 05, 2012 at 09:01:56, Sachin Kamat wrote:
> After using snd_soc_register_card() in smdk_wm8994.c, the sound
> card is registered as a platform driver and it needs related platform
> device entry in machine file.
>
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> 
Acked-by: Sangbeom Kim <sbkim73@samsung.com>
 
Thanks,
Sangbeom.
Sangbeom Kim July 12, 2012, 8:39 a.m. | #4
Hi!
On Thu, Jul 05, 2012 at 09:01:57, Sachin Kamat wrote:
> After using snd_soc_register_card() in smdk_wm8994.c, the sound
> card is registered as a platform driver and it needs related platform
> device entry in machine file.
>
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>

Thanks,
Sangbeom.
Sangbeom Kim July 12, 2012, 8:40 a.m. | #5
On Thu, Jul 05, 2012 at 09:01:58, Sachin Kamat wrote:
> After using snd_soc_register_card() in smdk_wm8994.c, the sound
> card is registered as a platform driver and it needs related platform
> device entry in machine file.
>
> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Sangbeom Kim <sbkim73@samsung.com>

Thanks,
Sangbeom.

Patch

diff --git a/sound/soc/samsung/smdk_wm8994.c b/sound/soc/samsung/smdk_wm8994.c
index 8eb309f..3ea3098 100644
--- a/sound/soc/samsung/smdk_wm8994.c
+++ b/sound/soc/samsung/smdk_wm8994.c
@@ -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");