In a special case, some old samples are left in the capture ring buffer.
Fix it.
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
                          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;
                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