diff options
Diffstat (limited to 'sound/soc/fsl/imx-pcm.c')
| -rw-r--r-- | sound/soc/fsl/imx-pcm.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/sound/soc/fsl/imx-pcm.c b/sound/soc/fsl/imx-pcm.c index 0c9f188ddc68..0d0625bfcb65 100644 --- a/sound/soc/fsl/imx-pcm.c +++ b/sound/soc/fsl/imx-pcm.c | |||
| @@ -31,6 +31,7 @@ int snd_imx_pcm_mmap(struct snd_pcm_substream *substream, | |||
| 31 | runtime->dma_bytes); | 31 | runtime->dma_bytes); |
| 32 | return ret; | 32 | return ret; |
| 33 | } | 33 | } |
| 34 | EXPORT_SYMBOL_GPL(snd_imx_pcm_mmap); | ||
| 34 | 35 | ||
| 35 | static int imx_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream) | 36 | static int imx_pcm_preallocate_dma_buffer(struct snd_pcm *pcm, int stream) |
| 36 | { | 37 | { |
| @@ -79,6 +80,7 @@ int imx_pcm_new(struct snd_soc_pcm_runtime *rtd) | |||
| 79 | out: | 80 | out: |
| 80 | return ret; | 81 | return ret; |
| 81 | } | 82 | } |
| 83 | EXPORT_SYMBOL_GPL(imx_pcm_new); | ||
| 82 | 84 | ||
| 83 | void imx_pcm_free(struct snd_pcm *pcm) | 85 | void imx_pcm_free(struct snd_pcm *pcm) |
| 84 | { | 86 | { |
| @@ -100,6 +102,39 @@ void imx_pcm_free(struct snd_pcm *pcm) | |||
| 100 | buf->area = NULL; | 102 | buf->area = NULL; |
| 101 | } | 103 | } |
| 102 | } | 104 | } |
| 105 | EXPORT_SYMBOL_GPL(imx_pcm_free); | ||
| 106 | |||
| 107 | static int imx_pcm_probe(struct platform_device *pdev) | ||
| 108 | { | ||
| 109 | if (strcmp(pdev->id_entry->name, "imx-fiq-pcm-audio") == 0) | ||
| 110 | return imx_pcm_fiq_init(pdev); | ||
| 111 | |||
| 112 | return imx_pcm_dma_init(pdev); | ||
| 113 | } | ||
| 114 | |||
| 115 | static int imx_pcm_remove(struct platform_device *pdev) | ||
| 116 | { | ||
| 117 | snd_soc_unregister_platform(&pdev->dev); | ||
| 118 | return 0; | ||
| 119 | } | ||
| 120 | |||
| 121 | static struct platform_device_id imx_pcm_devtype[] = { | ||
| 122 | { .name = "imx-pcm-audio", }, | ||
| 123 | { .name = "imx-fiq-pcm-audio", }, | ||
| 124 | { /* sentinel */ } | ||
| 125 | }; | ||
| 126 | MODULE_DEVICE_TABLE(platform, imx_pcm_devtype); | ||
| 127 | |||
| 128 | static struct platform_driver imx_pcm_driver = { | ||
| 129 | .driver = { | ||
| 130 | .name = "imx-pcm", | ||
| 131 | .owner = THIS_MODULE, | ||
| 132 | }, | ||
| 133 | .id_table = imx_pcm_devtype, | ||
| 134 | .probe = imx_pcm_probe, | ||
| 135 | .remove = imx_pcm_remove, | ||
| 136 | }; | ||
| 137 | module_platform_driver(imx_pcm_driver); | ||
| 103 | 138 | ||
| 104 | MODULE_DESCRIPTION("Freescale i.MX PCM driver"); | 139 | MODULE_DESCRIPTION("Freescale i.MX PCM driver"); |
| 105 | MODULE_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de>"); | 140 | MODULE_AUTHOR("Sascha Hauer <s.hauer@pengutronix.de>"); |
