Commit 9c9acc91 authored by Sachin Kamat's avatar Sachin Kamat Committed by Mark Brown
Browse files

ASoC: smdk_wm8994: Convert to use snd_soc_register_card()



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: default avatarSachin Kamat <sachin.kamat@linaro.org>
Acked-by: default avatarSangbeom Kim <sbkim73@samsung.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 8a720718
Loading
Loading
Loading
Loading
+23 −13
Original line number Diff line number Diff line
@@ -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");