diff options
Diffstat (limited to 'sound/core')
-rw-r--r-- | sound/core/pcm_lib.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c index c58ec67d1cb..eeba2f06095 100644 --- a/sound/core/pcm_lib.c +++ b/sound/core/pcm_lib.c @@ -56,9 +56,8 @@ void snd_pcm_playback_silence(struct snd_pcm_substream *substream, snd_pcm_ufram runtime->silence_filled = 0; runtime->silence_start = runtime->control->appl_ptr; } - if (runtime->silence_filled == runtime->buffer_size) + if (runtime->silence_filled >= runtime->buffer_size) return; - snd_assert(runtime->silence_filled <= runtime->buffer_size, return); noise_dist = snd_pcm_playback_hw_avail(runtime) + runtime->silence_filled; if (noise_dist >= (snd_pcm_sframes_t) runtime->silence_threshold) return; @@ -2006,8 +2005,8 @@ void snd_pcm_tick_prepare(struct snd_pcm_substream *substream) runtime->silence_filled < runtime->buffer_size) { snd_pcm_sframes_t noise_dist; noise_dist = snd_pcm_playback_hw_avail(runtime) + runtime->silence_filled; - snd_assert(noise_dist <= (snd_pcm_sframes_t)runtime->silence_threshold, ); - frames = noise_dist - runtime->silence_threshold; + if (noise_dist > (snd_pcm_sframes_t)runtime->silence_threshold) + frames = noise_dist - runtime->silence_threshold; } avail = snd_pcm_playback_avail(runtime); } else { |