~ctf/alsa-driver/tiwai-trunk2.bazooka_dock

« back to all changes in this revision

Viewing changes to soc/mxs/mxs-pcm.c

  • Committer: Canonistack server
  • Date: 2015-01-22 13:04:34 UTC
  • Revision ID: david.henningsson@canonical.com-20150122130434-q48cfdp8ovzgqhe7
Test run of 623 machines: 3 failing with 3 errors and 0 warnings.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
 
3
 *
 
4
 * Based on sound/soc/imx/imx-pcm-dma-mx2.c
 
5
 *
 
6
 * This program is free software; you can redistribute it and/or modify
 
7
 * it under the terms of the GNU General Public License as published by
 
8
 * the Free Software Foundation; either version 2 of the License, or
 
9
 * (at your option) any later version.
 
10
 *
 
11
 * This program is distributed in the hope that it will be useful,
 
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
 * GNU General Public License for more details.
 
15
 *
 
16
 * You should have received a copy of the GNU General Public License along
 
17
 * with this program; if not, write to the Free Software Foundation, Inc.,
 
18
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
19
 */
 
20
 
 
21
#include <linux/device.h>
 
22
#include <linux/init.h>
 
23
#include <linux/module.h>
 
24
 
 
25
#include <sound/core.h>
 
26
#include <sound/pcm.h>
 
27
#include <sound/soc.h>
 
28
#include <sound/dmaengine_pcm.h>
 
29
 
 
30
#include "mxs-pcm.h"
 
31
 
 
32
static const struct snd_pcm_hardware snd_mxs_hardware = {
 
33
        .info                   = SNDRV_PCM_INFO_MMAP |
 
34
                                  SNDRV_PCM_INFO_MMAP_VALID |
 
35
                                  SNDRV_PCM_INFO_PAUSE |
 
36
                                  SNDRV_PCM_INFO_RESUME |
 
37
                                  SNDRV_PCM_INFO_INTERLEAVED |
 
38
                                  SNDRV_PCM_INFO_HALF_DUPLEX,
 
39
        .period_bytes_min       = 32,
 
40
        .period_bytes_max       = 8192,
 
41
        .periods_min            = 1,
 
42
        .periods_max            = 52,
 
43
        .buffer_bytes_max       = 64 * 1024,
 
44
        .fifo_size              = 32,
 
45
};
 
46
 
 
47
static const struct snd_dmaengine_pcm_config mxs_dmaengine_pcm_config = {
 
48
        .pcm_hardware = &snd_mxs_hardware,
 
49
        .prealloc_buffer_size = 64 * 1024,
 
50
};
 
51
 
 
52
int mxs_pcm_platform_register(struct device *dev)
 
53
{
 
54
        return devm_snd_dmaengine_pcm_register(dev, &mxs_dmaengine_pcm_config,
 
55
                SND_DMAENGINE_PCM_FLAG_HALF_DUPLEX);
 
56
}
 
57
EXPORT_SYMBOL_GPL(mxs_pcm_platform_register);
 
58
 
 
59
MODULE_LICENSE("GPL");