diff options
Diffstat (limited to 'sound/soc/ep93xx/ep93xx-pcm.c')
-rw-r--r-- | sound/soc/ep93xx/ep93xx-pcm.c | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/sound/soc/ep93xx/ep93xx-pcm.c b/sound/soc/ep93xx/ep93xx-pcm.c index 4ba938400791..2f121ddbe4bb 100644 --- a/sound/soc/ep93xx/ep93xx-pcm.c +++ b/sound/soc/ep93xx/ep93xx-pcm.c | |||
@@ -95,7 +95,7 @@ static void ep93xx_pcm_buffer_finished(void *cookie, | |||
95 | static int ep93xx_pcm_open(struct snd_pcm_substream *substream) | 95 | static int ep93xx_pcm_open(struct snd_pcm_substream *substream) |
96 | { | 96 | { |
97 | struct snd_soc_pcm_runtime *soc_rtd = substream->private_data; | 97 | struct snd_soc_pcm_runtime *soc_rtd = substream->private_data; |
98 | struct snd_soc_dai *cpu_dai = soc_rtd->dai->cpu_dai; | 98 | struct snd_soc_dai *cpu_dai = soc_rtd->cpu_dai; |
99 | struct ep93xx_pcm_dma_params *dma_params; | 99 | struct ep93xx_pcm_dma_params *dma_params; |
100 | struct ep93xx_runtime_data *rtd; | 100 | struct ep93xx_runtime_data *rtd; |
101 | int ret; | 101 | int ret; |
@@ -276,14 +276,14 @@ static int ep93xx_pcm_new(struct snd_card *card, struct snd_soc_dai *dai, | |||
276 | if (!card->dev->coherent_dma_mask) | 276 | if (!card->dev->coherent_dma_mask) |
277 | card->dev->coherent_dma_mask = 0xffffffff; | 277 | card->dev->coherent_dma_mask = 0xffffffff; |
278 | 278 | ||
279 | if (dai->playback.channels_min) { | 279 | if (dai->driver->playback.channels_min) { |
280 | ret = ep93xx_pcm_preallocate_dma_buffer(pcm, | 280 | ret = ep93xx_pcm_preallocate_dma_buffer(pcm, |
281 | SNDRV_PCM_STREAM_PLAYBACK); | 281 | SNDRV_PCM_STREAM_PLAYBACK); |
282 | if (ret) | 282 | if (ret) |
283 | return ret; | 283 | return ret; |
284 | } | 284 | } |
285 | 285 | ||
286 | if (dai->capture.channels_min) { | 286 | if (dai->driver->capture.channels_min) { |
287 | ret = ep93xx_pcm_preallocate_dma_buffer(pcm, | 287 | ret = ep93xx_pcm_preallocate_dma_buffer(pcm, |
288 | SNDRV_PCM_STREAM_CAPTURE); | 288 | SNDRV_PCM_STREAM_CAPTURE); |
289 | if (ret) | 289 | if (ret) |
@@ -293,22 +293,41 @@ static int ep93xx_pcm_new(struct snd_card *card, struct snd_soc_dai *dai, | |||
293 | return 0; | 293 | return 0; |
294 | } | 294 | } |
295 | 295 | ||
296 | struct snd_soc_platform ep93xx_soc_platform = { | 296 | static struct snd_soc_platform_driver ep93xx_soc_platform = { |
297 | .name = "ep93xx-audio", | 297 | .ops = &ep93xx_pcm_ops, |
298 | .pcm_ops = &ep93xx_pcm_ops, | ||
299 | .pcm_new = &ep93xx_pcm_new, | 298 | .pcm_new = &ep93xx_pcm_new, |
300 | .pcm_free = &ep93xx_pcm_free_dma_buffers, | 299 | .pcm_free = &ep93xx_pcm_free_dma_buffers, |
301 | }; | 300 | }; |
302 | EXPORT_SYMBOL_GPL(ep93xx_soc_platform); | 301 | |
302 | static int __devinit ep93xx_soc_platform_probe(struct platform_device *pdev) | ||
303 | { | ||
304 | return snd_soc_register_platform(&pdev->dev, &ep93xx_soc_platform); | ||
305 | } | ||
306 | |||
307 | static int __devexit ep93xx_soc_platform_remove(struct platform_device *pdev) | ||
308 | { | ||
309 | snd_soc_unregister_platform(&pdev->dev); | ||
310 | return 0; | ||
311 | } | ||
312 | |||
313 | static struct platform_driver ep93xx_pcm_driver = { | ||
314 | .driver = { | ||
315 | .name = "ep93xx-pcm-audio", | ||
316 | .owner = THIS_MODULE, | ||
317 | }, | ||
318 | |||
319 | .probe = ep93xx_soc_platform_probe, | ||
320 | .remove = __devexit_p(ep93xx_soc_platform_remove), | ||
321 | }; | ||
303 | 322 | ||
304 | static int __init ep93xx_soc_platform_init(void) | 323 | static int __init ep93xx_soc_platform_init(void) |
305 | { | 324 | { |
306 | return snd_soc_register_platform(&ep93xx_soc_platform); | 325 | return platform_driver_register(&ep93xx_pcm_driver); |
307 | } | 326 | } |
308 | 327 | ||
309 | static void __exit ep93xx_soc_platform_exit(void) | 328 | static void __exit ep93xx_soc_platform_exit(void) |
310 | { | 329 | { |
311 | snd_soc_unregister_platform(&ep93xx_soc_platform); | 330 | platform_driver_unregister(&ep93xx_pcm_driver); |
312 | } | 331 | } |
313 | 332 | ||
314 | module_init(ep93xx_soc_platform_init); | 333 | module_init(ep93xx_soc_platform_init); |