ALSA: pcm: Return 0 when size < start_threshold in capture
PATCH v3 1/1 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 <[email protected]>
---
version 3:
Set 'err' variable inside 'else' block.
sound/core/pcm_lib.c +9 -4
@@ -2173,11 +2173,16 @@ snd_pcm_sframes_t __snd_pcm_lib_xfer(str goto _end_unlock;if (!is_playback && - runtime->status->state ==SNDRV_PCM_STATE_PREPARED && - size >= runtime->start_threshold) { - err =snd_pcm_start (substream); -if (err <0 ) + runtime->status->state ==SNDRV_PCM_STATE_PREPARED ) { +if (size >= runtime->start_threshold) { + err =snd_pcm_start (substream); +if (err <0 ) + goto _end_unlock; + }else { +/* nothing to do */ + err =0 ; goto _end_unlock; + } } runtime->twake = runtime->control->avail_min ? :1 ;
Quoted 10 lines · Ricardo Biehl Pasquali
In
__snd_pcm_lib_xfer(), when capture, if state is PREPARED and size is less thanstart_thresholdnothing can be done. As there is no error, 0 is returned.Signed-off-by Ricardo Biehl Pasquali <[email protected]>---
version 3:
Set 'err' variable inside 'else' block.
OK, re-queued this one in my local branch. Will be published once after 4.19-rc1 is released.
thanks,
Takashi