summaryrefslogtreecommitdiffstats
path: root/include/sound/dmaengine_pcm.h
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2013-10-08 15:07:59 +0200
committerMark Brown <broonie@linaro.org>2013-10-19 21:26:06 +0100
commitc0de42bf595238e9dd593405ebc2992cc8470732 (patch)
tree310c4d89773307ce86f6df8f377c3e56f423bc38 /include/sound/dmaengine_pcm.h
parent61e6cfa80de5760bbe406f4e815b7739205754d2 (diff)
ASoC: dmaengine-pcm: Add support for querying DMA capabilities
Currently each platform making use the the generic dmaengine PCM driver still needs to provide a custom snd_pcm_hardware struct which specifies the capabilities of the DMA controller, e.g. the maximum period size that can be supported. This patch adds code which uses the newly introduced dma_get_slave_caps() API to query this information from the dmaengine driver. The new code path will only be taken if the 'pcm_hardware' field of the snd_dmaengine_pcm_config struct is NULL. The patch also introduces a new 'fifo_size' field to the snd_dmaengine_dai_dma_data struct which is used to initialize the snd_pcm_hardware 'fifo_size' field and needs to be set by the DAI driver. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'include/sound/dmaengine_pcm.h')
-rw-r--r--include/sound/dmaengine_pcm.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/sound/dmaengine_pcm.h b/include/sound/dmaengine_pcm.h
index f11c35cd553..83b2c3e95a1 100644
--- a/include/sound/dmaengine_pcm.h
+++ b/include/sound/dmaengine_pcm.h
@@ -61,6 +61,7 @@ struct dma_chan *snd_dmaengine_pcm_get_chan(struct snd_pcm_substream *substream)
* @slave_id: Slave requester id for the DMA channel.
* @filter_data: Custom DMA channel filter data, this will usually be used when
* requesting the DMA channel.
+ * @fifo_size: FIFO size of the DAI controller in bytes
*/
struct snd_dmaengine_dai_dma_data {
dma_addr_t addr;
@@ -68,6 +69,7 @@ struct snd_dmaengine_dai_dma_data {
u32 maxburst;
unsigned int slave_id;
void *filter_data;
+ unsigned int fifo_size;
};
void snd_dmaengine_pcm_set_config_from_dai_data(