Many PCI and other drivers performs snd_pcm_period_elapsed() simply in its interrupt handler, so the sync_stop operation is just to call synchronize_irq(). Instead of putting this call multiple times, introduce the common card->sync_irq field. When this field is set, PCM core performs synchronize_irq() for sync-stop operation. Each driver just needs to copy its local IRQ number to card->sync_irq, and that's all we need. Link: https://lore.kernel.org/r/20191117085308.23915-8-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de> |
||
|---|---|---|
| .. | ||
| oss | ||
| seq | ||
| Kconfig | ||
| Makefile | ||
| compress_offload.c | ||
| control.c | ||
| control_compat.c | ||
| ctljack.c | ||
| device.c | ||
| hrtimer.c | ||
| hwdep.c | ||
| hwdep_compat.c | ||
| info.c | ||
| info_oss.c | ||
| init.c | ||
| isadma.c | ||
| jack.c | ||
| memalloc.c | ||
| memory.c | ||
| misc.c | ||
| pcm.c | ||
| pcm_compat.c | ||
| pcm_dmaengine.c | ||
| pcm_drm_eld.c | ||
| pcm_iec958.c | ||
| pcm_lib.c | ||
| pcm_local.h | ||
| pcm_memory.c | ||
| pcm_misc.c | ||
| pcm_native.c | ||
| pcm_param_trace.h | ||
| pcm_timer.c | ||
| pcm_trace.h | ||
| rawmidi.c | ||
| rawmidi_compat.c | ||
| seq_device.c | ||
| sgbuf.c | ||
| sound.c | ||
| sound_oss.c | ||
| timer.c | ||
| timer_compat.c | ||
| vmaster.c | ||