diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-08-20 16:40:16 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-08-20 16:40:16 +0200 |
commit | 4cdc115fd38b54642e8536a5c2389483bcb9b2e9 (patch) | |
tree | e68cfe5e88d155d1a6820b563517dac27b8e6dd6 /kernel/relay.c | |
parent | 64f1607ffbbc772685733ea63e6f7f4183df1b16 (diff) |
ALSA: pcm - Fix drain behavior in non-blocking mode
The current PCM core has the following problems regarding PCM draining
in non-blocking mode:
- the current f_flags isn't checked in snd_pcm_drain(), thus changing
the mode dynamically via snd_pcm_nonblock() after open doesn't work.
- calling drain in non-blocking mode just return -EAGAIN error, but
doesn't provide any way to sync with draining.
This patch fixes these issues.
- check file->f_flags in snd_pcm_drain() properly
- when O_NONBLOCK is set, PCM core sets the stream(s) to DRAIN state
but quits ioctl immediately without waiting the whole drain; the
caller can sync the drain manually via poll()
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'kernel/relay.c')
0 files changed, 0 insertions, 0 deletions