ASoC: generic-dmaengine-pcm: Set BATCH flag when residue reporting is not supported
authorLars-Peter Clausen <lars@metafoo.de>
Sat, 30 Nov 2013 17:00:45 +0000 (18:00 +0100)
committerMark Brown <broonie@linaro.org>
Mon, 2 Dec 2013 11:24:31 +0000 (11:24 +0000)
For dmaengine drivers which do not support transfer residue reporting we update
the PCM pointer with period granularity. Set the SNDRV_PCM_INFO_BATCH flag in
this case to let userspace know about this.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/soc-generic-dmaengine-pcm.c

index cbc9c96ce1f412123a1704b171220a2990ad503d..87e86357124eb0001666343d6c8ef3ff03d72ee7 100644 (file)
@@ -137,6 +137,9 @@ static int dmaengine_pcm_set_runtime_hwparams(struct snd_pcm_substream *substrea
        hw.buffer_bytes_max = SIZE_MAX;
        hw.fifo_size = dma_data->fifo_size;
 
+       if (pcm->flags & SND_DMAENGINE_PCM_FLAG_NO_RESIDUE)
+               hw.info |= SNDRV_PCM_INFO_BATCH;
+
        ret = dma_get_slave_caps(chan, &dma_caps);
        if (ret == 0) {
                if (dma_caps.cmd_pause)