]> git.baikalelectronics.ru Git - kernel.git/commit
ALSA: firewire-tascam: perform sequence replay for media clock recovery
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Mon, 31 May 2021 02:51:02 +0000 (11:51 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 1 Jun 2021 06:19:37 +0000 (08:19 +0200)
commit35d6565333b8bce329f34bca0df09e6564fa63f9
tree23f18200c29b3856108e6afe74bd97515323eab6
parent72e15bac0a70c940c28866402fe3644fcd778c01
ALSA: firewire-tascam: perform sequence replay for media clock recovery

This commit takes ALSA firewire-tascam driver to perform sequence replay
for media clock recovery.

The protocol specific to Tascam FireWire series is not compliant to
IEC 61883-1/6 in terms of syt field of CIP. The protocol doesn't use
presentation time in received CIP for playback timing. The sequence of
the number of data blocks per packet is important for media clock
recovery.

Although the devices in Tascam FireWire series transfer packets
regardless of receiving packets, the tx packets includes no events
in the beginning of streaming. It takes so long to multiplex any event
into the packet after receiving the sequence of packets. As long as I
experienced, it takes several thousands of isochronous cycle. Furthermore,
just after changing sampling transmission frequency, it stops multiplexing
event at once, then starts multiplexing again.

The sequence replay is tested with below models:
 * FW-1884
 * FW-1804
 * FW-1082

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20210531025103.17880-6-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/tascam/tascam-stream.c
sound/firewire/tascam/tascam.h