summaryrefslogtreecommitdiff
path: root/sound/soc/tegra/tegra_pcm.h
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/tegra/tegra_pcm.h')
-rw-r--r--sound/soc/tegra/tegra_pcm.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/sound/soc/tegra/tegra_pcm.h b/sound/soc/tegra/tegra_pcm.h
index dbb90339fe0d..7fe22788004b 100644
--- a/sound/soc/tegra/tegra_pcm.h
+++ b/sound/soc/tegra/tegra_pcm.h
@@ -33,6 +33,8 @@
#include <mach/dma.h>
+#define MAX_DMA_REQ_COUNT 2
+
struct tegra_pcm_dma_params {
unsigned long addr;
unsigned long wrap;
@@ -48,8 +50,24 @@ struct tegra_runtime_data {
int dma_pos_end;
int period_index;
int dma_req_idx;
- struct tegra_dma_req dma_req[2];
+ struct tegra_dma_req dma_req[MAX_DMA_REQ_COUNT];
struct tegra_dma_channel *dma_chan;
+ int dma_req_count;
};
+int tegra_pcm_trigger(struct snd_pcm_substream *substream, int cmd);
+int tegra_pcm_allocate(struct snd_pcm_substream *substream,
+ int dma_mode,
+ const struct snd_pcm_hardware *pcm_hardware);
+int tegra_pcm_close(struct snd_pcm_substream *substream);
+int tegra_pcm_hw_params(struct snd_pcm_substream *substream,
+ struct snd_pcm_hw_params *params);
+int tegra_pcm_trigger(struct snd_pcm_substream *substream, int cmd);
+int tegra_pcm_mmap(struct snd_pcm_substream *substream,
+ struct vm_area_struct *vma);
+int tegra_pcm_dma_allocate(struct snd_soc_pcm_runtime *rtd, size_t size);
+void tegra_pcm_free(struct snd_pcm *pcm);
+snd_pcm_uframes_t tegra_pcm_pointer(struct snd_pcm_substream *substream);
+int tegra_pcm_hw_free(struct snd_pcm_substream *substream);
+
#endif