~ubuntu-branches/ubuntu/precise/alsa-driver/precise

« back to all changes in this revision

Viewing changes to alsa-kernel/soc/omap/omap-pcm.c

  • Committer: Bazaar Package Importer
  • Author(s): Luke Yelavich
  • Date: 2011-02-21 18:06:40 UTC
  • mfrom: (1.1.15 upstream)
  • Revision ID: james.westby@ubuntu.com-20110221180640-a8p2yxtvgf7xbxub
Tags: 1.0.24+dfsg-0ubuntu1
* New upstream release
* Refreshed patches:
  - distinguish_kernel_makefile_and_source_dirs.patch
  - debian_dfsg_configure.patch
* debian/control: Update Vcs-bzr field to point to new branch location

Show diffs side-by-side

added added

removed removed

Lines of Context:
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;
 
104
 
104
105
        int err = 0;
105
106
 
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);
107
108
 
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);
376
377
 
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);
380
381
                if (ret)
381
382
                        goto out;
382
383
        }
383
384
 
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);
387
388
                if (ret)
392
393
        return ret;
393
394
}
394
395
 
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,
400
400
};
401
 
EXPORT_SYMBOL_GPL(omap_soc_platform);
402
 
 
403
 
static int __init omap_soc_platform_init(void)
404
 
{
405
 
        return snd_soc_register_platform(&omap_soc_platform);
406
 
}
407
 
module_init(omap_soc_platform_init);
408
 
 
409
 
static void __exit omap_soc_platform_exit(void)
410
 
{
411
 
        snd_soc_unregister_platform(&omap_soc_platform);
412
 
}
413
 
module_exit(omap_soc_platform_exit);
 
401
 
 
402
static __devinit int omap_pcm_probe(struct platform_device *pdev)
 
403
{
 
404
        return snd_soc_register_platform(&pdev->dev,
 
405
                        &omap_soc_platform);
 
406
}
 
407
 
 
408
static int __devexit omap_pcm_remove(struct platform_device *pdev)
 
409
{
 
410
        snd_soc_unregister_platform(&pdev->dev);
 
411
        return 0;
 
412
}
 
413
 
 
414
static struct platform_driver omap_pcm_driver = {
 
415
        .driver = {
 
416
                        .name = "omap-pcm-audio",
 
417
                        .owner = THIS_MODULE,
 
418
        },
 
419
 
 
420
        .probe = omap_pcm_probe,
 
421
        .remove = __devexit_p(omap_pcm_remove),
 
422
};
 
423
 
 
424
static int __init snd_omap_pcm_init(void)
 
425
{
 
426
        return platform_driver_register(&omap_pcm_driver);
 
427
}
 
428
module_init(snd_omap_pcm_init);
 
429
 
 
430
static void __exit snd_omap_pcm_exit(void)
 
431
{
 
432
        platform_driver_unregister(&omap_pcm_driver);
 
433
}
 
434
module_exit(snd_omap_pcm_exit);
414
435
 
415
436
MODULE_AUTHOR("Jarkko Nikula <jhnikula@gmail.com>");
416
437
MODULE_DESCRIPTION("OMAP PCM DMA module");