OSDN Git Service

ALSA: emu10k1: add synchronized start of multi-channel playback
authorOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Tue, 23 May 2023 20:07:08 +0000 (22:07 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 24 May 2023 10:10:29 +0000 (12:10 +0200)
commit11ee59bdac36ae4b500301a6a3ccf586d3968d92
tree29b66c384d6df25681e858725eb088efa5af6744
parent6dbecb9b51321bfaf8e7f26fc163d547abcbee86
ALSA: emu10k1: add synchronized start of multi-channel playback

We use independent voices for the channels, so we need to make an effort
to ensure that they are actually in sync.

The hardware doesn't provide atomicity, so we may need to retry a few
times, due to NMIs, PCI contention, and the wrong phase of the moon.

Solution inspired by kX-project.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230523200709.236023-3-oswald.buddenhagen@gmx.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/emu10k1.h
sound/pci/emu10k1/emupcm.c
sound/pci/emu10k1/io.c