ASoC: blackfin: use samples to set silence
authorScott Jiang <scott.jiang.linux@gmail.com>
Fri, 18 Jul 2014 08:14:57 +0000 (16:14 +0800)
committerMark Brown <broonie@linaro.org>
Thu, 17 Jul 2014 11:27:56 +0000 (12:27 +0100)
The third parameter for snd_pcm_format_set_silence needs the number
of samples instead of sample bytes.

Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
sound/soc/blackfin/bf5xx-i2s-pcm.c

index a3881c4381c9151771ffca5e5133ef01707ba9ea..bcf591373a7a0faf0cc0a9233b561c21a7564153 100644 (file)
@@ -290,19 +290,19 @@ static int bf5xx_pcm_silence(struct snd_pcm_substream *substream,
        unsigned int sample_size = runtime->sample_bits / 8;
        void *buf = runtime->dma_area;
        struct bf5xx_i2s_pcm_data *dma_data;
-       unsigned int offset, size;
+       unsigned int offset, samples;
 
        dma_data = snd_soc_dai_get_dma_data(rtd->cpu_dai, substream);
 
        if (dma_data->tdm_mode) {
                offset = pos * 8 * sample_size;
-               size = count * 8 * sample_size;
+               samples = count * 8;
        } else {
                offset = frames_to_bytes(runtime, pos);
-               size = frames_to_bytes(runtime, count);
+               samples = count * runtime->channels;
        }
 
-       snd_pcm_format_set_silence(runtime->format, buf + offset, size);
+       snd_pcm_format_set_silence(runtime->format, buf + offset, samples);
 
        return 0;
 }