101
101
struct snd_soc_pcm_runtime *rtd = substream->private_data;
102
102
struct omap_runtime_data *prtd = runtime->private_data;
103
103
struct omap_pcm_dma_data *dma_data;
106
dma_data = snd_soc_dai_get_dma_data(rtd->dai->cpu_dai, substream);
107
dma_data = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
108
109
/* return if this is a bufferless transfer e.g.
109
110
* codec <--> BT codec or GSM modem -- lg FIXME */
374
375
if (!card->dev->coherent_dma_mask)
375
376
card->dev->coherent_dma_mask = DMA_BIT_MASK(64);
377
if (dai->playback.channels_min) {
378
if (dai->driver->playback.channels_min) {
378
379
ret = omap_pcm_preallocate_dma_buffer(pcm,
379
380
SNDRV_PCM_STREAM_PLAYBACK);
384
if (dai->capture.channels_min) {
385
if (dai->driver->capture.channels_min) {
385
386
ret = omap_pcm_preallocate_dma_buffer(pcm,
386
387
SNDRV_PCM_STREAM_CAPTURE);
395
struct snd_soc_platform omap_soc_platform = {
396
.name = "omap-pcm-audio",
397
.pcm_ops = &omap_pcm_ops,
396
static struct snd_soc_platform_driver omap_soc_platform = {
397
.ops = &omap_pcm_ops,
398
398
.pcm_new = omap_pcm_new,
399
399
.pcm_free = omap_pcm_free_dma_buffers,
401
EXPORT_SYMBOL_GPL(omap_soc_platform);
403
static int __init omap_soc_platform_init(void)
405
return snd_soc_register_platform(&omap_soc_platform);
407
module_init(omap_soc_platform_init);
409
static void __exit omap_soc_platform_exit(void)
411
snd_soc_unregister_platform(&omap_soc_platform);
413
module_exit(omap_soc_platform_exit);
402
static __devinit int omap_pcm_probe(struct platform_device *pdev)
404
return snd_soc_register_platform(&pdev->dev,
408
static int __devexit omap_pcm_remove(struct platform_device *pdev)
410
snd_soc_unregister_platform(&pdev->dev);
414
static struct platform_driver omap_pcm_driver = {
416
.name = "omap-pcm-audio",
417
.owner = THIS_MODULE,
420
.probe = omap_pcm_probe,
421
.remove = __devexit_p(omap_pcm_remove),
424
static int __init snd_omap_pcm_init(void)
426
return platform_driver_register(&omap_pcm_driver);
428
module_init(snd_omap_pcm_init);
430
static void __exit snd_omap_pcm_exit(void)
432
platform_driver_unregister(&omap_pcm_driver);
434
module_exit(snd_omap_pcm_exit);
415
436
MODULE_AUTHOR("Jarkko Nikula <jhnikula@gmail.com>");
416
437
MODULE_DESCRIPTION("OMAP PCM DMA module");