From 622b1b6bdbb34baca885b65643d4796057574eb7 Mon Sep 17 00:00:00 2001 From: "Alexander E. Patrakov" Date: Tue, 2 Sep 2014 01:29:36 +0600 Subject: [PATCH] pcm: fix return value of snd_pcm_share_slave_avail The return value was wrong for playback if slave->hw_ptr was near the boundary and *pcm->appl.ptr was near zero. The wrong result was greater than the boundary. Signed-off-by: Alexander E. Patrakov Signed-off-by: Takashi Iwai --- src/pcm/pcm_share.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c index 97705447..c301c7af 100644 --- a/src/pcm/pcm_share.c +++ b/src/pcm/pcm_share.c @@ -128,6 +128,8 @@ static snd_pcm_uframes_t snd_pcm_share_slave_avail(snd_pcm_share_slave_t *slave) avail += pcm->buffer_size; if (avail < 0) avail += pcm->boundary; + else if ((snd_pcm_uframes_t) avail >= pcm->boundary) + avail -= pcm->boundary; return avail; } -- 2.47.1