linux/sound/core
Vinod Koul f44f2a5417 ALSA: compress: fix drain calls blocking other compress functions (v6)
The drain and drain_notify callback were blocked by low level driver
until the draining was complete. Due to this being invoked with big
fat mutex held, others ops like reading timestamp, calling pause, drop
were blocked.

So to fix this we add a new snd_compr_drain_notify() API. This would
be required to be invoked by low level driver when drain or partial
drain has been completed by the DSP. Thus we make the drain and
partial_drain callback as non blocking and driver returns immediately
after notifying DSP.  The waiting is done while releasing the lock so
that other ops can go ahead.

[ The commit 917f4b5cba was wrongly applied from the preliminary
  patch.  This commit corrects to the final version.
  Sorry for inconvenience!  -- tiwai ]

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
CC: stable@vger.kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2013-11-07 10:12:27 +01:00
..
oss ALSA: core: fix NULL checking in snd_pcm_plug_slave_size() 2012-11-14 08:03:31 +01:00
seq ALSA: seq-oss: Initialize MIDI clients asynchronously 2013-07-17 09:19:24 +02:00
compress_offload.c ALSA: compress: fix drain calls blocking other compress functions (v6) 2013-11-07 10:12:27 +01:00
control_compat.c ALSA: control: add support for ENUMERATED user space controls 2011-10-09 09:09:11 +02:00
control.c ALSA: add/change some comments describing function return values 2013-03-12 08:32:53 +01:00
ctljack.c ALSA: hda - Add missing inclusion of linux/export.h 2011-11-16 14:28:33 +01:00
device.c ALSA: add/change some comments describing function return values 2013-03-12 08:32:53 +01:00
hrtimer.c ALSA: hrtimer: remove superfluous tasklet invocation 2011-02-10 18:53:32 +01:00
hwdep_compat.c
hwdep.c ALSA: add/change some comments describing function return values 2013-03-12 08:32:53 +01:00
info_oss.c ALSA: remove the main version information 2012-09-04 11:38:32 +02:00
info.c sound updates for v3.10-rc1 2013-05-03 09:10:23 -07:00
init.c ALSA: Limit the fallback card id string size 2013-10-29 15:20:06 +01:00
isadma.c ALSA: add/change some comments describing function return values 2013-03-12 08:32:53 +01:00
jack.c ALSA: add/change some comments describing function return values 2013-03-12 08:32:53 +01:00
Kconfig ALSA: core: allow SND_DMAENGINE_PCM use from modules 2013-08-15 18:28:42 +01:00
Makefile ALSA: move dmaengine implementation from ASoC to ALSA core 2013-08-15 11:18:09 +01:00
memalloc.c ALSA: memalloc: NULL-initialize in snd_malloc_dev_iram() 2013-10-29 11:59:31 +01:00
memory.c ALSA: add/change some comments describing function return values 2013-03-12 08:32:53 +01:00
misc.c sound: use printk_get_level and printk_skip_level 2012-07-30 17:25:14 -07:00
pcm_compat.c ALSA: core: fix 64-bit SNDRV_PCM_IOCTL_STATUS ABI breakage 2012-10-28 09:52:37 +01:00
pcm_dmaengine.c ALSA: pcm_dmaengine: Remove hardcoded PCM formats 2013-10-28 10:18:09 +01:00
pcm_lib.c ALSA: pcm: Use snd_printd_ratelimit() 2013-08-19 15:48:48 +02:00
pcm_memory.c ALSA: add/change some comments describing function return values 2013-03-12 08:32:53 +01:00
pcm_misc.c ALSA: add DSD formats 2013-04-18 10:02:33 +02:00
pcm_native.c ALSA: pcm: Add fallthru comments 2013-10-29 11:37:35 +01:00
pcm_timer.c ALSA: sound/core/pcm_timer.c: use lib/gcd.c 2009-12-22 08:24:35 +01:00
pcm.c ALSA: fix oops in snd_pcm_info() caused by ASoC DPCM 2013-10-31 17:36:47 +01:00
rawmidi_compat.c
rawmidi.c ALSA: add/change some comments describing function return values 2013-03-12 08:32:53 +01:00
rtctimer.c ALSA: rtctimer.c needs module.h 2011-07-30 08:03:35 +02:00
sgbuf.c ALSA: Make snd_sgbuf_get_{ptr|addr}() available for non-SG cases 2012-09-23 11:24:42 +02:00
sound_oss.c ALSA: Fix card refcount unbalance 2012-11-08 14:36:18 +01:00
sound.c ALSA: add/change some comments describing function return values 2013-03-12 08:32:53 +01:00
timer_compat.c ALSA: Kill snd_assert() in sound/core/* 2008-08-13 11:46:35 +02:00
timer.c device.h: cleanup users outside of linux/include (C files) 2012-03-11 14:27:37 -04:00
vmaster.c ALSA: vmaster: Fix the regression of missing vmaster hook call 2013-07-03 14:01:32 +02:00