Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
[cascardo/linux.git] / sound / soc / fsl / imx-pcm.h
1 /*
2  * Copyright 2009 Sascha Hauer <s.hauer@pengutronix.de>
3  *
4  * This code is based on code copyrighted by Freescale,
5  * Liam Girdwood, Javier Martin and probably others.
6  *
7  * This program is free software; you can redistribute  it and/or modify it
8  * under  the terms of  the GNU General  Public License as published by the
9  * Free Software Foundation;  either version 2 of the  License, or (at your
10  * option) any later version.
11  */
12
13 #ifndef _IMX_PCM_H
14 #define _IMX_PCM_H
15
16 /*
17  * Do not change this as the FIQ handler depends on this size
18  */
19 #define IMX_SSI_DMABUF_SIZE     (64 * 1024)
20
21 struct imx_pcm_dma_params {
22         int dma;
23         unsigned long dma_addr;
24         int burstsize;
25         bool shared_peripheral; /* The peripheral is on SPBA bus */
26 };
27
28 int snd_imx_pcm_mmap(struct snd_pcm_substream *substream,
29                      struct vm_area_struct *vma);
30 int imx_pcm_new(struct snd_soc_pcm_runtime *rtd);
31 void imx_pcm_free(struct snd_pcm *pcm);
32
33 #ifdef CONFIG_SND_SOC_IMX_PCM_DMA
34 int imx_pcm_dma_init(struct platform_device *pdev);
35 #else
36 static inline int imx_pcm_dma_init(struct platform_device *pdev)
37 {
38         return -ENODEV;
39 }
40 #endif
41
42 #ifdef CONFIG_SND_SOC_IMX_PCM_FIQ
43 int imx_pcm_fiq_init(struct platform_device *pdev);
44 #else
45 static inline int imx_pcm_fiq_init(struct platform_device *pdev)
46 {
47         return -ENODEV;
48 }
49 #endif
50
51 #endif /* _IMX_PCM_H */