Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
[pandora-kernel.git] / sound / soc / samsung / smdk_spdif.c
similarity index 95%
rename from sound/soc/s3c24xx/smdk_spdif.c
rename to sound/soc/samsung/smdk_spdif.c
index 761e02b..b5c3fad 100644 (file)
@@ -18,7 +18,7 @@
 
 #include <sound/soc.h>
 
-#include "s3c-dma.h"
+#include "dma.h"
 #include "spdif.h"
 
 /* Audio clock settings are belonged to board specific part. Every
@@ -28,7 +28,7 @@
 static int set_audio_clock_heirachy(struct platform_device *pdev)
 {
        struct clk *fout_epll, *mout_epll, *sclk_audio0, *sclk_spdif;
-       int ret;
+       int ret = 0;
 
        fout_epll = clk_get(NULL, "fout_epll");
        if (IS_ERR(fout_epll)) {
@@ -152,12 +152,10 @@ static struct snd_soc_ops smdk_spdif_ops = {
        .hw_params = smdk_hw_params,
 };
 
-static struct snd_soc_card smdk;
-
 static struct snd_soc_dai_link smdk_dai = {
        .name = "S/PDIF",
        .stream_name = "S/PDIF PCM Playback",
-       .platform_name = "s3c24xx-pcm-audio",
+       .platform_name = "samsung-audio",
        .cpu_dai_name = "samsung-spdif",
        .codec_dai_name = "dit-hifi",
        .codec_name = "spdif-dit",
@@ -183,7 +181,7 @@ static int __init smdk_init(void)
 
        ret = platform_device_add(smdk_snd_spdif_dit_device);
        if (ret)
-               goto err2;
+               goto err1;
 
        smdk_snd_spdif_device = platform_device_alloc("soc-audio", -1);
        if (!smdk_snd_spdif_device) {
@@ -195,17 +193,21 @@ static int __init smdk_init(void)
 
        ret = platform_device_add(smdk_snd_spdif_device);
        if (ret)
-               goto err1;
+               goto err3;
 
        /* Set audio clock hierarchy manually */
        ret = set_audio_clock_heirachy(smdk_snd_spdif_device);
        if (ret)
-               goto err1;
+               goto err4;
 
        return 0;
-err1:
+err4:
+       platform_device_del(smdk_snd_spdif_device);
+err3:
        platform_device_put(smdk_snd_spdif_device);
 err2:
+       platform_device_del(smdk_snd_spdif_dit_device);
+err1:
        platform_device_put(smdk_snd_spdif_dit_device);
        return ret;
 }
@@ -213,6 +215,7 @@ err2:
 static void __exit smdk_exit(void)
 {
        platform_device_unregister(smdk_snd_spdif_device);
+       platform_device_unregister(smdk_snd_spdif_dit_device);
 }
 
 module_init(smdk_init);