From: Takashi Iwai Date: Thu, 20 Aug 2009 14:40:16 +0000 (+0200) Subject: ALSA: pcm - Fix drain behavior in non-blocking mode X-Git-Tag: v2.6.32-rc1~732^2~6^2~1 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4cdc115fd38b54642e8536a5c2389483bcb9b2e9;p=pandora-kernel.git 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 --- Reading git-diff-tree failed