linux/sound/firewire
Takashi Sakamoto a105f642ad ALSA: fireworks: perform sequence replay for media clock recovery
Echo Digital Audio Corporation had US patent US7599388B2 titled as
'System and method for high-bandwidth serial bus data transfer'. In the
patent, dual-banked shared memory is used to deliver data between
serial bus transmission and processor in FIFO way. The patent seems to be
used for Fireworks board module. The mechanism is not compliant to
synchronization based on presentation time expressed in syt field
of CIP header. Fireworks board module takes care of the sequence of
the number of data blocks per packet and just ignores the value of syt
field.

This commit takes fireworks driver to performs sequence replay for media
clock recovery. As long as I tested, Audiofire 2 and 4 have a quirk to
skip an isochronous cycle several thousands after starting packet
transmission.

The sequence replay is tested with below models:
 * Loud Technology Mackie 400f
 * Echo Audio Audiofire 12 (DSP model)
 * Echo Audio Audiofire 12 (FPGA model)
 * Echo Audio Audiofire 8 (DSP model)
 * Echo Audio Audiofire 8 (FPGA model)
 * Echo Audio Audiofire Pre8
 * Echo Audio Audiofire 4
 * Echo Audio Audiofire 2

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20210531025103.17880-3-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2021-06-01 08:18:39 +02:00
..
bebob ALSA: firewire-lib: transfer rx packets on-the-fly when replaying 2021-05-28 11:06:33 +02:00
dice ALSA: firewire-lib: transfer rx packets on-the-fly when replaying 2021-05-28 11:06:33 +02:00
digi00x ALSA: firewire-lib: transfer rx packets on-the-fly when replaying 2021-05-28 11:06:33 +02:00
fireface ALSA: firewire-lib: transfer rx packets on-the-fly when replaying 2021-05-28 11:06:33 +02:00
fireworks ALSA: fireworks: perform sequence replay for media clock recovery 2021-06-01 08:18:39 +02:00
motu ALSA: firewire-lib: transfer rx packets on-the-fly when replaying 2021-05-28 11:06:33 +02:00
oxfw ALSA: firewire-lib: transfer rx packets on-the-fly when replaying 2021-05-28 11:06:33 +02:00
tascam ALSA: firewire-lib: transfer rx packets on-the-fly when replaying 2021-05-28 11:06:33 +02:00
amdtp-am824.c ALSA: firewire-lib/motu: use int type for the value of bitwise OR with enumerator-constant 2021-05-18 12:21:52 +02:00
amdtp-am824.h ALSA: firewire-lib/motu: use int type for the value of bitwise OR with enumerator-constant 2021-05-18 12:21:52 +02:00
amdtp-stream-trace.h ALSA: firewire-lib: fix amdtp_packet tracepoints event for packet_index field 2021-05-14 09:41:26 +02:00
amdtp-stream.c ALSA: firewire-lib: support NO_PERIOD_WAKEUP in ALSA PCM runtime 2021-05-28 11:07:21 +02:00
amdtp-stream.h ALSA: firewire-lib: transfer rx packets on-the-fly when replaying 2021-05-28 11:06:33 +02:00
cmp.c ALSA: firewire: fix kernel-doc 2020-07-07 12:09:32 +02:00
cmp.h ALSA: firewire-lib: split allocation of isochronous resources from establishment of connection 2019-06-17 08:18:36 +02:00
fcp.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 2019-06-05 17:37:08 +02:00
fcp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
isight.c ALSA: firewire: Drop superfluous ioctl PCM ops 2019-12-11 07:25:27 +01:00
iso-resources.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 2019-06-05 17:37:08 +02:00
iso-resources.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Kconfig Revert "ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro" 2021-05-18 12:21:42 +02:00
lib.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 2019-06-05 17:37:08 +02:00
lib.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
packets-buffer.c ALSA: firewire: fix a memory leak bug 2019-08-08 11:12:26 +02:00
packets-buffer.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00