alistair23-linux/sound/core
Takashi Iwai 4cdc115fd3 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>
2009-08-20 16:40:16 +02:00
..
oss ALSA: Clean up 64bit division functions 2009-06-05 17:45:17 +02:00
seq ALSA: OSS sequencer should be initialized after snd_seq_system_client_init 2009-07-19 19:10:01 +02:00
control.c ALSA: sound/core: use memdup_user() 2009-04-14 12:39:12 +02:00
control_compat.c
device.c
hrtimer.c
hwdep.c ALSA: hwdep - Make open callback optional 2009-02-05 09:10:20 +01:00
hwdep_compat.c
info.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
info_oss.c
init.c ALSA: Core - clean up snd_card_set_id* calls and remove possible id collision 2009-06-04 01:22:07 +02:00
isadma.c
jack.c ALSA: use card device as parent for jack input-devices 2009-06-10 19:50:33 +02:00
Kconfig ALSA: clean up the logic for building sequencer modules 2009-05-29 11:49:42 +02:00
Makefile
memalloc.c
memory.c
misc.c ALSA: Add subdevice_mask field to quirk entries 2009-02-09 17:19:11 +01:00
pcm.c Merge branch 'topic/misc' into for-linus 2009-03-24 00:35:50 +01:00
pcm_compat.c ALSA: sound/core: use memdup_user() 2009-04-14 12:39:12 +02:00
pcm_lib.c ALSA: pcm - Fix drain behavior in non-blocking mode 2009-08-20 16:40:16 +02:00
pcm_memory.c
pcm_misc.c
pcm_native.c ALSA: pcm - Fix drain behavior in non-blocking mode 2009-08-20 16:40:16 +02:00
pcm_timer.c ALSA: Remove unneeded snd_pcm_substream.timer_lock 2009-03-09 14:02:00 +01:00
rawmidi.c ALSA: rawmidi - Refactor rawmidi open/close codes 2009-03-09 15:17:23 +01:00
rawmidi_compat.c
rtctimer.c
sgbuf.c ALSA: Fix vunmap and free order in snd_free_sgbuf_pages() 2009-03-18 08:04:01 +01:00
sound.c Check fops_get() return value 2009-01-06 15:59:11 -08:00
sound_oss.c
timer.c ALSA: sound/core: use memdup_user() 2009-04-14 12:39:12 +02:00
timer_compat.c
vmaster.c ALSA: Add kernel-doc comments to vmaster stuff 2009-03-09 15:10:01 +01:00