summaryrefslogtreecommitdiffstats
path: root/sound/soc/fsl/imx-pcm.h
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/fsl/imx-pcm.h')
-rw-r--r--sound/soc/fsl/imx-pcm.h17
1 files changed, 15 insertions, 2 deletions
diff --git a/sound/soc/fsl/imx-pcm.h b/sound/soc/fsl/imx-pcm.h
index 5ae13a13a35..16eaf5a09f5 100644
--- a/sound/soc/fsl/imx-pcm.h
+++ b/sound/soc/fsl/imx-pcm.h
@@ -13,18 +13,31 @@
#ifndef _IMX_PCM_H
#define _IMX_PCM_H
+#include <linux/platform_data/dma-imx.h>
+
/*
* Do not change this as the FIQ handler depends on this size
*/
#define IMX_SSI_DMABUF_SIZE (64 * 1024)
struct imx_pcm_dma_params {
- int dma;
unsigned long dma_addr;
int burstsize;
- bool shared_peripheral; /* The peripheral is on SPBA bus */
+ struct imx_dma_data dma_data;
};
+static inline void
+imx_pcm_dma_params_init_data(struct imx_pcm_dma_params *params,
+ int dma, bool shared)
+{
+ params->dma_data.dma_request = dma;
+ params->dma_data.priority = DMA_PRIO_HIGH;
+ if (shared)
+ params->dma_data.peripheral_type = IMX_DMATYPE_SSI_SP;
+ else
+ params->dma_data.peripheral_type = IMX_DMATYPE_SSI;
+}
+
int snd_imx_pcm_mmap(struct snd_pcm_substream *substream,
struct vm_area_struct *vma);
int imx_pcm_new(struct snd_soc_pcm_runtime *rtd);