linux/sound/firewire/motu
Takashi Sakamoto f2ac3b8395 ALSA: firewire-motu: sequence replay for source packet header
This commit takes ALSA firewire-motu driver to perform sequence replay for
media clock recovery.

Unlike the other types of device, the devices in MOTU FireWire series
require two levels of sequence replay; the sequence of the number of
data blocks per packet and the sequence of source packet header per data
block. The former is already cached by ALSA IEC 61883-1/6 packet streaming
engine and ready to be replayed. The latter is also cached by ALSA
firewire-motu driver itself with a previous patch. This commit takes
the driver to replay both of them from the caches.

The sequence replay is tested with below models:

 * 828 mkII
 * Traveler
 * UltraLite
 * 828 mk3 FireWire
 * 828 mk3 Hybrid (except for high sampling transfer frequency
 * UltraLite mk3 FireWire
 * 4pre
 * AudioExpress

Unfortunately, below models still don't generate better sound, requires
more work:

 * 8pre
 * 828 mk3 Hybrid at high sampling transfer frequency

As long as I know, MOTU protocol version 1 requires extra care of the
format of data block, thus below models are not supported yet in this
time:

 * 828
 * 896

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20210602013406.26442-4-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2021-06-02 08:59:46 +02:00
..
amdtp-motu-trace.h ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
amdtp-motu.c ALSA: firewire-motu: sequence replay for source packet header 2021-06-02 08:59:46 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
motu-hwdep.c ALSA: Convert strlcpy to strscpy when return value is unused 2021-01-08 09:30:05 +01:00
motu-midi.c ALSA: firewire-motu: share PCM buffer size for both direction 2019-10-18 04:35:51 +02:00
motu-pcm.c ALSA: firewire-motu: use table-based calculation of packet formats for proc 2020-05-22 16:52:16 +02:00
motu-proc.c ALSA: firewire-motu: use table-based calculation of packet formats for proc 2020-05-22 16:52:16 +02:00
motu-protocol-v2.c ALSA: firewire-motu: refactoring protocol v2 for fetching mode switch 2020-05-22 16:52:19 +02:00
motu-protocol-v3.c ALSA: firewire-motu: wait for notification when changing clock configuration for protocol v3 2020-06-15 15:59:19 +02:00
motu-stream.c ALSA: firewire-motu: sequence replay for source packet header 2021-06-02 08:59:46 +02:00
motu-transaction.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 2019-06-05 17:37:08 +02:00
motu.c ALSA: firewire-motu: add support for MOTU UltraLite-mk3 (FireWire only model) 2020-05-25 08:29:57 +02:00
motu.h ALSA: firewire-motu: sequence replay for source packet header 2021-06-02 08:59:46 +02:00