ALSA: compress_core: don't return -EBADFD from poll if paused
authorRichard Fitzgerald <rf@opensource.wolfsonmicro.com>
Tue, 22 Oct 2013 10:26:48 +0000 (11:26 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 12 Nov 2013 06:14:32 +0000 (07:14 +0100)
Pausing audio playback is not an illegal state so it doesn't
seem sensible for poll() to return -EBADFD on a paused stream.
There's also no reason to assume that we can't write more data
to the DSP while playback is paused. Remove the -EBADFD so that
a stream in paused state will still report the buffer
availability from poll(). It is up to the user process to
manage its state so that it knows whether it is paused or not.

Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Acked-by VInod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/compress_offload.c

index d9af6387f37c63acc631f670117b274c97e63824..9d518ac73eea064a6b4d918d3dba072cb50102f5 100644 (file)
@@ -384,8 +384,7 @@ static unsigned int snd_compr_poll(struct file *f, poll_table *wait)
                return -EFAULT;
 
        mutex_lock(&stream->device->lock);
-       if (stream->runtime->state == SNDRV_PCM_STATE_PAUSED ||
-                       stream->runtime->state == SNDRV_PCM_STATE_OPEN) {
+       if (stream->runtime->state == SNDRV_PCM_STATE_OPEN) {
                retval = -EBADFD;
                goto out;
        }