pcm: Allow to wait if capture is not running

This allows starting capture from another thread.

See the commit 932a81519572 ("ALSA: pcm: Comment why read
blocks when PCM is not running") in Linux kernel.

Signed-off-by: Ricardo Biehl Pasquali <pasqualirb@gmail.com>
diff --git a/src/pcm.c b/src/pcm.c
index 4710862..a32871e 100644
--- a/src/pcm.c
+++ b/src/pcm.c
@@ -1282,17 +1282,16 @@
         return -1;
     state = pcm->mmap_status->state;
 
-    /* start capture if frames >= threshold */
-    if (!is_playback && state == PCM_STATE_PREPARED) {
-        if (frames >= pcm->config.start_threshold) {
-            err = ioctl(pcm->fd, SNDRV_PCM_IOCTL_START);
-            if (err == -1)
-                return -1;
-            /* state = PCM_STATE_RUNNING */
-        } else {
-            /* nothing to do */
-            return 0;
-        }
+    /*
+     * If frames < start_threshold, wait indefinitely.
+     * Another thread may start capture
+     */
+    if (!is_playback && state == PCM_STATE_PREPARED &&
+        frames >= pcm->config.start_threshold) {
+        err = ioctl(pcm->fd, SNDRV_PCM_IOCTL_START);
+        if (err == -1)
+            return -1;
+        /* state = PCM_STATE_RUNNING */
     }
 
     avail = pcm_mmap_avail(pcm);