ALSA: firewire-motu: add support for MOTU UltraLite-mk3 (FireWire only model)
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sat, 23 May 2020 07:17:33 +0000 (16:17 +0900)
committerTakashi Iwai <tiwai@suse.de>
Mon, 25 May 2020 06:29:57 +0000 (08:29 +0200)
UltraLite-mk3 was shipped 2008 by MOTU. This model has two lineups;
FireWire-only and FireWire/USB2.0 Hybrid model. Additionally, the latter
has two variants in respect of the type of IEEE 1394 connector; alpha
and beta connector.

This commit adds support for the FireWire-only model, which is already
discontinued.

$ python3 crpp < /sys/bus/firewire/devices/fw1/config_rom
               ROM header and bus information block
               -----------------------------------------------------------------
400  0410353a  bus_info_length 4, crc_length 16, crc 13626
404  31333934  bus_name "1394"
408  20ff7000  irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 255, max_rec 7 (256)
40c  0001f200  company_id 0001f2     |
410  000902c7  device_id 00000902c7  | EUI-64 0001f200000902c7

               root directory
               -----------------------------------------------------------------
414  0004ef04  directory_length 4, crc 61188
418  030001f2  vendor
41c  0c0083c0  node capabilities per IEEE 1394
420  d1000002  --> unit directory at 428
424  8d000005  --> eui-64 leaf at 438

               unit directory at 428
               -----------------------------------------------------------------
428  00035556  directory_length 3, crc 21846
42c  120001f2  specifier id
430  13000019  version
434  17100800  model

               eui-64 leaf at 438
               -----------------------------------------------------------------
438  0002f3c5  leaf_length 2, crc 62405
43c  0001f200  company_id 0001f2     |
440  000902c7  device_id 00000902c7  | EUI-64 0001f200000902c7

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20200523071733.170129-1-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/motu/motu-protocol-v3.c
sound/firewire/motu/motu.c
sound/firewire/motu/motu.h

index fd49d1f..01a47ac 100644 (file)
@@ -290,6 +290,15 @@ const struct snd_motu_spec snd_motu_spec_828mk3 = {
        .rx_fixed_pcm_chunks = {14, 14, 10},
 };
 
+const struct snd_motu_spec snd_motu_spec_ultralite_mk3 = {
+       .name = "UltraLiteMk3",
+       .protocol_version = SND_MOTU_PROTOCOL_V3,
+       .flags = SND_MOTU_SPEC_RX_MIDI_3RD_Q |
+                SND_MOTU_SPEC_TX_MIDI_3RD_Q,
+       .tx_fixed_pcm_chunks = {18, 14, 10},
+       .rx_fixed_pcm_chunks = {14, 14, 14},
+};
+
 const struct snd_motu_spec snd_motu_spec_audio_express = {
        .name = "AudioExpress",
        .protocol_version = SND_MOTU_PROTOCOL_V3,
index e5b6f63..a4929c1 100644 (file)
@@ -189,6 +189,7 @@ static const struct ieee1394_device_id motu_id_table[] = {
        SND_MOTU_DEV_ENTRY(0x00000d, &snd_motu_spec_ultralite),
        SND_MOTU_DEV_ENTRY(0x00000f, &snd_motu_spec_8pre),
        SND_MOTU_DEV_ENTRY(0x000015, &snd_motu_spec_828mk3), // FireWire only.
+       SND_MOTU_DEV_ENTRY(0x000019, &snd_motu_spec_ultralite_mk3), // FireWire only.
        SND_MOTU_DEV_ENTRY(0x000035, &snd_motu_spec_828mk3), // Hybrid.
        SND_MOTU_DEV_ENTRY(0x000033, &snd_motu_spec_audio_express),
        SND_MOTU_DEV_ENTRY(0x000045, &snd_motu_spec_4pre),
index e7948bf..3d0236e 100644 (file)
@@ -118,6 +118,7 @@ extern const struct snd_motu_spec snd_motu_spec_ultralite;
 extern const struct snd_motu_spec snd_motu_spec_8pre;
 
 extern const struct snd_motu_spec snd_motu_spec_828mk3;
+extern const struct snd_motu_spec snd_motu_spec_ultralite_mk3;
 extern const struct snd_motu_spec snd_motu_spec_audio_express;
 extern const struct snd_motu_spec snd_motu_spec_4pre;