ALSA: pcm: Comment why read blocks when PCM is not running
authorRicardo Biehl Pasquali <pasqualirb@gmail.com>
Wed, 13 Feb 2019 02:57:51 +0000 (00:57 -0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 13 Feb 2019 07:01:05 +0000 (08:01 +0100)
This avoids bringing back the problem introduced by
62ba568f7aef ("ALSA: pcm: Return 0 when size <
start_threshold in capture") and fixed in 00a399cad1a0
("ALSA: pcm: Revert capture stream behavior change in
blocking mode"), which prevented the user from starting
capture from another thread.

Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/pcm_lib.c

index bcb06bd..345ab1a 100644 (file)
@@ -2176,6 +2176,10 @@ snd_pcm_sframes_t __snd_pcm_lib_xfer(struct snd_pcm_substream *substream,
        if (runtime->status->state == SNDRV_PCM_STATE_RUNNING)
                snd_pcm_update_hw_ptr(substream);
 
+       /*
+        * If size < start_threshold, wait indefinitely. Another
+        * thread may start capture
+        */
        if (!is_playback &&
            runtime->status->state == SNDRV_PCM_STATE_PREPARED &&
            size >= runtime->start_threshold) {