ALSA: pcm: Return 0 when size < start_threshold in capture

In __snd_pcm_lib_xfer(), when capture, if state is PREPARED
and size is less than start_threshold nothing can be done.
As there is no error, 0 is returned.

Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Ricardo Biehl Pasquali 2018-08-25 16:53:23 -03:00 коммит произвёл Takashi Iwai
Родитель 5b394b2ddf
Коммит 62ba568f7a
1 изменённых файлов: 9 добавлений и 4 удалений

Просмотреть файл

@ -2173,11 +2173,16 @@ snd_pcm_sframes_t __snd_pcm_lib_xfer(struct snd_pcm_substream *substream,
goto _end_unlock; goto _end_unlock;
if (!is_playback && if (!is_playback &&
runtime->status->state == SNDRV_PCM_STATE_PREPARED && runtime->status->state == SNDRV_PCM_STATE_PREPARED) {
size >= runtime->start_threshold) { if (size >= runtime->start_threshold) {
err = snd_pcm_start(substream); err = snd_pcm_start(substream);
if (err < 0) if (err < 0)
goto _end_unlock;
} else {
/* nothing to do */
err = 0;
goto _end_unlock; goto _end_unlock;
}
} }
runtime->twake = runtime->control->avail_min ? : 1; runtime->twake = runtime->control->avail_min ? : 1;