X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=sound%2Fsoc%2Fsamsung%2Fpcm.c;h=56780206c000be484f2f9651e6be53158794cc7d;hb=a14304edcd5e8323205db34b08f709feb5357e64;hp=05a47cf7f06e9345285fe57d7d1688049c7c23ea;hpb=c126dea771be1b3c370c0ffc4a09e6a82d492a49;p=karo-tx-linux.git diff --git a/sound/soc/samsung/pcm.c b/sound/soc/samsung/pcm.c index 05a47cf7f06e..56780206c000 100644 --- a/sound/soc/samsung/pcm.c +++ b/sound/soc/samsung/pcm.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -452,7 +453,7 @@ static int s3c_pcm_set_sysclk(struct snd_soc_dai *cpu_dai, return 0; } -static struct snd_soc_dai_ops s3c_pcm_dai_ops = { +static const struct snd_soc_dai_ops s3c_pcm_dai_ops = { .set_sysclk = s3c_pcm_set_sysclk, .set_clkdiv = s3c_pcm_set_clkdiv, .trigger = s3c_pcm_trigger, @@ -478,7 +479,7 @@ static 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) { @@ -570,12 +570,6 @@ static __devinit int s3c_pcm_dev_probe(struct platform_device *pdev) } clk_enable(pcm->pclk); - ret = snd_soc_register_dai(&pdev->dev, &s3c_pcm_dai[pdev->id]); - if (ret != 0) { - dev_err(&pdev->dev, "failed to get pcm_clock\n"); - goto err5; - } - s3c_pcm_stereo_in[pdev->id].dma_addr = mem_res->start + S3C_PCM_RXFIFO; s3c_pcm_stereo_out[pdev->id].dma_addr = mem_res->start @@ -587,6 +581,14 @@ 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); + goto err5; + } + return 0; err5: @@ -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); @@ -632,17 +636,7 @@ static struct platform_driver s3c_pcm_driver = { }, }; -static int __init s3c_pcm_init(void) -{ - return platform_driver_register(&s3c_pcm_driver); -} -module_init(s3c_pcm_init); - -static void __exit s3c_pcm_exit(void) -{ - platform_driver_unregister(&s3c_pcm_driver); -} -module_exit(s3c_pcm_exit); +module_platform_driver(s3c_pcm_driver); /* Module information */ MODULE_AUTHOR("Jaswinder Singh, ");