OSDN Git Service

ALSA: firewire-motu: sequence replay for source packet header
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 2 Jun 2021 01:34:06 +0000 (10:34 +0900)
committerTakashi Iwai <tiwai@suse.de>
Wed, 2 Jun 2021 06:59:46 +0000 (08:59 +0200)
commitf2ac3b839540ec9203debac034003d0663db1e18
tree6a7d36d3932a770e98fab800852d3b51cabf8baa
parente50dfac81f733ec379f3b0c6025b5720cf6880df
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>
sound/firewire/motu/amdtp-motu.c
sound/firewire/motu/motu-stream.c
sound/firewire/motu/motu.h