]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - sound/soc/samsung/pcm.c
Merge tag 'gpio-for-linus' of git://git.secretlab.ca/git/linux-2.6
[karo-tx-linux.git] / sound / soc / samsung / pcm.c
index 3a29c268ea5d2d70dacb5118b9b5df62aeaa433a..56780206c000be484f2f9651e6be53158794cc7d 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/clk.h>
 #include <linux/io.h>
 #include <linux/module.h>
+#include <linux/pm_runtime.h>
 
 #include <sound/soc.h>
 #include <sound/pcm_params.h>
@@ -478,7 +479,7 @@ static const struct snd_soc_dai_ops s3c_pcm_dai_ops = {
                .formats        = SNDRV_PCM_FMTBIT_S16_LE,      \
        }
 
-struct snd_soc_dai_driver s3c_pcm_dai[] = {
+static struct snd_soc_dai_driver s3c_pcm_dai[] = {
        [0] = {
                .name   = "samsung-pcm.0",
                S3C_PCM_DAI_DECLARE,
@@ -488,7 +489,6 @@ struct snd_soc_dai_driver s3c_pcm_dai[] = {
                S3C_PCM_DAI_DECLARE,
        },
 };
-EXPORT_SYMBOL_GPL(s3c_pcm_dai);
 
 static __devinit int s3c_pcm_dev_probe(struct platform_device *pdev)
 {
@@ -581,6 +581,8 @@ static __devinit int s3c_pcm_dev_probe(struct platform_device *pdev)
        pcm->dma_capture = &s3c_pcm_stereo_in[pdev->id];
        pcm->dma_playback = &s3c_pcm_stereo_out[pdev->id];
 
+       pm_runtime_enable(&pdev->dev);
+
        ret = snd_soc_register_dai(&pdev->dev, &s3c_pcm_dai[pdev->id]);
        if (ret != 0) {
                dev_err(&pdev->dev, "failed to get register DAI: %d\n", ret);
@@ -610,6 +612,8 @@ static __devexit int s3c_pcm_dev_remove(struct platform_device *pdev)
 
        snd_soc_unregister_dai(&pdev->dev);
 
+       pm_runtime_disable(&pdev->dev);
+
        iounmap(pcm->regs);
 
        mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);