diff options
Diffstat (limited to 'sound/soc/davinci/davinci-pcm.c')
-rw-r--r-- | sound/soc/davinci/davinci-pcm.c | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/sound/soc/davinci/davinci-pcm.c b/sound/soc/davinci/davinci-pcm.c index a7124116d2e0..9d35b8c1a624 100644 --- a/sound/soc/davinci/davinci-pcm.c +++ b/sound/soc/davinci/davinci-pcm.c | |||
@@ -653,7 +653,7 @@ static int davinci_pcm_open(struct snd_pcm_substream *substream) | |||
653 | struct davinci_pcm_dma_params *pa; | 653 | struct davinci_pcm_dma_params *pa; |
654 | struct davinci_pcm_dma_params *params; | 654 | struct davinci_pcm_dma_params *params; |
655 | 655 | ||
656 | pa = snd_soc_dai_get_dma_data(rtd->dai->cpu_dai, substream); | 656 | pa = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream); |
657 | if (!pa) | 657 | if (!pa) |
658 | return -ENODEV; | 658 | return -ENODEV; |
659 | params = &pa[substream->stream]; | 659 | params = &pa[substream->stream]; |
@@ -821,7 +821,7 @@ static int davinci_pcm_new(struct snd_card *card, | |||
821 | if (!card->dev->coherent_dma_mask) | 821 | if (!card->dev->coherent_dma_mask) |
822 | card->dev->coherent_dma_mask = 0xffffffff; | 822 | card->dev->coherent_dma_mask = 0xffffffff; |
823 | 823 | ||
824 | if (dai->playback.channels_min) { | 824 | if (dai->driver->playback.channels_min) { |
825 | ret = davinci_pcm_preallocate_dma_buffer(pcm, | 825 | ret = davinci_pcm_preallocate_dma_buffer(pcm, |
826 | SNDRV_PCM_STREAM_PLAYBACK, | 826 | SNDRV_PCM_STREAM_PLAYBACK, |
827 | pcm_hardware_playback.buffer_bytes_max); | 827 | pcm_hardware_playback.buffer_bytes_max); |
@@ -829,7 +829,7 @@ static int davinci_pcm_new(struct snd_card *card, | |||
829 | return ret; | 829 | return ret; |
830 | } | 830 | } |
831 | 831 | ||
832 | if (dai->capture.channels_min) { | 832 | if (dai->driver->capture.channels_min) { |
833 | ret = davinci_pcm_preallocate_dma_buffer(pcm, | 833 | ret = davinci_pcm_preallocate_dma_buffer(pcm, |
834 | SNDRV_PCM_STREAM_CAPTURE, | 834 | SNDRV_PCM_STREAM_CAPTURE, |
835 | pcm_hardware_capture.buffer_bytes_max); | 835 | pcm_hardware_capture.buffer_bytes_max); |
@@ -840,25 +840,44 @@ static int davinci_pcm_new(struct snd_card *card, | |||
840 | return 0; | 840 | return 0; |
841 | } | 841 | } |
842 | 842 | ||
843 | struct snd_soc_platform davinci_soc_platform = { | 843 | static struct snd_soc_platform_driver davinci_soc_platform = { |
844 | .name = "davinci-audio", | 844 | .ops = &davinci_pcm_ops, |
845 | .pcm_ops = &davinci_pcm_ops, | ||
846 | .pcm_new = davinci_pcm_new, | 845 | .pcm_new = davinci_pcm_new, |
847 | .pcm_free = davinci_pcm_free, | 846 | .pcm_free = davinci_pcm_free, |
848 | }; | 847 | }; |
849 | EXPORT_SYMBOL_GPL(davinci_soc_platform); | ||
850 | 848 | ||
851 | static int __init davinci_soc_platform_init(void) | 849 | static int __devinit davinci_soc_platform_probe(struct platform_device *pdev) |
852 | { | 850 | { |
853 | return snd_soc_register_platform(&davinci_soc_platform); | 851 | return snd_soc_register_platform(&pdev->dev, &davinci_soc_platform); |
854 | } | 852 | } |
855 | module_init(davinci_soc_platform_init); | ||
856 | 853 | ||
857 | static void __exit davinci_soc_platform_exit(void) | 854 | static int __devexit davinci_soc_platform_remove(struct platform_device *pdev) |
858 | { | 855 | { |
859 | snd_soc_unregister_platform(&davinci_soc_platform); | 856 | snd_soc_unregister_platform(&pdev->dev); |
857 | return 0; | ||
858 | } | ||
859 | |||
860 | static struct platform_driver davinci_pcm_driver = { | ||
861 | .driver = { | ||
862 | .name = "davinci-pcm-audio", | ||
863 | .owner = THIS_MODULE, | ||
864 | }, | ||
865 | |||
866 | .probe = davinci_soc_platform_probe, | ||
867 | .remove = __devexit_p(davinci_soc_platform_remove), | ||
868 | }; | ||
869 | |||
870 | static int __init snd_davinci_pcm_init(void) | ||
871 | { | ||
872 | return platform_driver_register(&davinci_pcm_driver); | ||
873 | } | ||
874 | module_init(snd_davinci_pcm_init); | ||
875 | |||
876 | static void __exit snd_davinci_pcm_exit(void) | ||
877 | { | ||
878 | platform_driver_unregister(&davinci_pcm_driver); | ||
860 | } | 879 | } |
861 | module_exit(davinci_soc_platform_exit); | 880 | module_exit(snd_davinci_pcm_exit); |
862 | 881 | ||
863 | MODULE_AUTHOR("Vladimir Barinov"); | 882 | MODULE_AUTHOR("Vladimir Barinov"); |
864 | MODULE_DESCRIPTION("TI DAVINCI PCM DMA module"); | 883 | MODULE_DESCRIPTION("TI DAVINCI PCM DMA module"); |