96c7d478ef
snd-pcsp driver takes chip->substream_lock together with PCM substream lock. These are even mixed up with hrtimer's lock, resulting in messy lock depencies. Right now, snd-pcsp driver resolves the deadlock by using HRTIMER_CB_SOFTIRQ. However, this isn't nice for a really fast path like bit-flipping. This patch introduces a tasklet for PCM period handling so that the hrtimer callback can be handled fast. This also reduce the use of chip->substream_lock to avoid deadlocks. It's still used in pointer callback, but even this could be removed with a proper barrier. Another good solution is to introduce async trigger callback. But, this will involve with a major rewrite of the PCM core code, so I take first this easy fix. Signed-off-by: Takashi Iwai <tiwai@suse.de> |
||
---|---|---|
.. | ||
mpu401 | ||
opl3 | ||
opl4 | ||
pcsp | ||
vx | ||
dummy.c | ||
Kconfig | ||
Makefile | ||
ml403-ac97cr.c | ||
mtpav.c | ||
mts64.c | ||
pcm-indirect2.c | ||
pcm-indirect2.h | ||
portman2x4.c | ||
serial-u16550.c | ||
virmidi.c |