linux-stable/sound/firewire/motu
Takashi Sakamoto 6d5a2dda9b ALSA: firewire-motu: add support for MOTU 896 mk3 FireWire and Hybrid
Mark of the Unicorn released 896 mk3 FireWire in 2008 as part of the third
generation of its FireWire series. In 2011, 896 mk3 hybrid was released to
support USB protocol.

It supports sampling transfer frequency up to 192.0 kHz. The packet
format differs depending on both of current sampling transfer frequency
and the type of signal in optical interfaces. The model supports
transmission of PCM frames as well as MIDI messages.

The 896 mk3 FireWire consists of below ICs:

 * Texas Instruments TSB41AB2
 * Xilinx Spartan-3A FPGA, XC3S500E
 * Texas Instruments TMS320C6722
 * Microchip (Atmel) AT91SAM SAM7S256

It supports sampling transfer frequency up to 192.0 kHz. The packet
format differs depending on both of current sampling transfer frequency
and the type of signal in two pairs of optical interfaces. The model
supports transmission of PCM frames, while has no port for MIDi messages.

The model supports command mechanism to configure internal DSP. Hardware
meter information is available in the first 2 chunks of each data block
of tx packet.

This commit adds support for it. The 896 mk3 FireWire is just tested, but
the 896 mk3 Hybrid is not yet.

$ config-rom-pretty-printer < motu-896mk3fw.img
               ROM header and bus information block
               -----------------------------------------------------------------
1024  04100ce1  bus_info_length 4, crc_length 16, crc 3297
1028  31333934  bus_name "1394"
1032  20ff7000  irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 255, max_rec 7 (256)
1036  0001f200  company_id 0001f2     |
1040  00093add  device_id 0000604893  | EUI-64 0547556791237341

               root directory
               -----------------------------------------------------------------
1044  0004ef04  directory_length 4, crc 61188
1048  030001f2  vendor
1052  0c0083c0  node capabilities: per IEEE 1394
1056  d1000002  --> unit directory at 1064
1060  8d000005  --> eui-64 leaf at 1080

               unit directory at 1064
               -----------------------------------------------------------------
1064  0003998d  directory_length 3, crc 39309
1068  120001f2  specifier id
1072  13000017  version
1076  17101800  model

               eui-64 leaf at 1080
               -----------------------------------------------------------------
1080  0002cc82  leaf_length 2, crc 52354
1084  0001f200  company_id 0001f2     |
1088  00093add  device_id 0000604893  | EUI-64 0547556791237341

$ config-rom-pretty-printer < motu-896mk3hybrid.img
               ROM header and bus information block
               -----------------------------------------------------------------
1024  04103cbe  bus_info_length 4, crc_length 16, crc 15550
1028  31333934  bus_name "1394"
1032  20ff7000  irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 255, max_rec 7 (256)
1036  0001f200  company_id 0001f2     |
1040  000ae601  device_id 0000714241  | EUI-64 0547556791346689

               root directory
               -----------------------------------------------------------------
1044  0004ef04  directory_length 4, crc 61188
1048  030001f2  vendor
1052  0c0083c0  node capabilities: per IEEE 1394
1056  d1000002  --> unit directory at 1064
1060  8d000005  --> eui-64 leaf at 1080

               unit directory at 1064
               -----------------------------------------------------------------
1064  000394ac  directory_length 3, crc 38060
1068  120001f2  specifier id
1072  13000037  version
1076  17102800  model

               eui-64 leaf at 1080
               -----------------------------------------------------------------
1080  0002cf69  leaf_length 2, crc 53097
1084  0001f200  company_id 0001f2     |
1088  000ae601  device_id 0000714241  | EUI-64 0547556791346689

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20240129022711.254383-1-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-01-29 09:04:30 +01:00
..
Makefile ALSA: firewire-motu: add message parser for meter information in command DSP model 2021-10-15 17:52:07 +02:00
amdtp-motu-trace.h ASoC: Updates for v5.3 2019-07-08 14:45:34 +02:00
amdtp-motu.c ALSA: firewire-lib: obsolete return value from context payload processing layer 2023-01-12 12:14:50 +01:00
motu-command-dsp-message-parser.c ALSA: firewire-lib: use circular linked list for context payload processing layer 2023-01-09 17:04:44 +01:00
motu-hwdep.c ALSA: firewire-motu: fix unreleased lock warning in hwdep device 2023-01-31 09:34:04 +01:00
motu-midi.c ALSA: firewire: Fix -Wformat-truncation warning for MIDI stream names 2023-09-15 13:22:06 +02:00
motu-pcm.c ALSA: firewire: Replace runtime->status->state reference to runtime->state 2022-09-27 08:47:25 +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-v1.c ALSA: firewire: Remove some left-over license text in sound/firewire 2022-09-27 08:42:18 +02:00
motu-protocol-v2.c ALSA: firewire-motu: add message parser to gather meter information in register DSP model 2021-10-15 17:52:05 +02:00
motu-protocol-v3.c ALSA: firewire-motu: add support for MOTU 896 mk3 FireWire and Hybrid 2024-01-29 09:04:30 +01:00
motu-register-dsp-message-parser.c ALSA: firewire-lib: use circular linked list for context payload processing layer 2023-01-09 17:04:44 +01:00
motu-stream.c ALSA: firewire-motu: add message parser for meter information in command DSP model 2021-10-15 17:52:07 +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 896 mk3 FireWire and Hybrid 2024-01-29 09:04:30 +01:00
motu.h ALSA: firewire-motu: add support for MOTU 896 mk3 FireWire and Hybrid 2024-01-29 09:04:30 +01:00