]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ASoC: rt5514: reset dma_offset at hw_params
authoroder_chiou@realtek.com <oder_chiou@realtek.com>
Mon, 7 Aug 2017 10:39:32 +0000 (18:39 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 7 Aug 2017 11:32:31 +0000 (12:32 +0100)
dma_offset needs reset every time otherwise for consecutive PCM
open the last dma_offset value will cause incorrect pointer position
be reported to user space.

Signed-off-by: Hsin-Yu Chao <hychao@chromium.org>
Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5514-spi.c

index 6f513cc4c56c043b6d365f534fad861bb3334614..640193d845bee20223e43eda95beabdf3c3721a4 100644 (file)
@@ -151,7 +151,6 @@ static irqreturn_t rt5514_spi_irq(int irq, void *data)
        u8 buf[8];
 
        rt5514_dsp->get_size = 0;
-       rt5514_dsp->dma_offset = 0;
 
        /**
         * The address area x1800XXXX is the register address, and it cannot
@@ -205,6 +204,7 @@ static int rt5514_spi_hw_params(struct snd_pcm_substream *substream,
        ret = snd_pcm_lib_alloc_vmalloc_buffer(substream,
                        params_buffer_bytes(hw_params));
        rt5514_dsp->substream = substream;
+       rt5514_dsp->dma_offset = 0;
        mutex_unlock(&rt5514_dsp->dma_lock);
 
        return ret;