From: Jaroslav Kysela Date: Wed, 29 Sep 2010 22:16:50 +0000 (+0200) Subject: ALSA: snd-aloop - fix capture buffer silence X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=20d9a26dbbbec32aa7c9da49b979f201bd7104b9;p=linux-beck.git ALSA: snd-aloop - fix capture buffer silence In a special case, some old samples are left in the capture ring buffer. Fix it. Signed-off-by: Jaroslav Kysela --- diff --git a/sound/drivers/aloop.c b/sound/drivers/aloop.c index f2b8f868d97a..2748fee8d405 100644 --- a/sound/drivers/aloop.c +++ b/sound/drivers/aloop.c @@ -347,7 +347,7 @@ static void copy_play_buf(struct loopback_pcm *play, unsigned int bytes) { struct snd_pcm_runtime *runtime = play->substream->runtime; - char *src = play->substream->runtime->dma_area; + char *src = runtime->dma_area; char *dst = capt->substream->runtime->dma_area; unsigned int src_off = play->buf_pos; unsigned int dst_off = capt->buf_pos; @@ -385,8 +385,10 @@ static void copy_play_buf(struct loopback_pcm *play, dst_off = (dst_off + size) % capt->pcm_buffer_size; } - if (clear_bytes > 0) + if (clear_bytes > 0) { clear_capture_buf(capt, clear_bytes); + capt->silent_size = 0; + } } #define BYTEPOS_UPDATE_POSONLY 0