[6/6] ALSA: firewire-motu: add support for MOTU UltraLite
diff mbox series

Message ID 20191030080644.1704-7-o-takashi@sakamocchi.jp
State New
Headers show
Series
  • ALSA: firewire-motu: add support for MOTU UltraLite and source packet header clock mode
Related show

Commit Message

Takashi Sakamoto Oct. 30, 2019, 8:06 a.m. UTC
UltraLite was shipped in 2005 by MOTU, and already discontinued. This
model consists of below ICs:

- Texus Instruments TSB41AB2 for physical layer of IEEE 1394 bus
- Xilinx Spartan XC35S200 for link layer of IEEE 1394 bus, protocol layer
  and signal processing

This commit adds support for this model. Like the other MOTU models,
ALSA firewire MOTU driver fails to drive the device for stable sampling
clock and generate noisy sound.

$ python2 crpp < /sys/bus/firewire/devices/fw1/config_rom
               ROM header and bus information block
               -----------------------------------------------------------------
400  04107574  bus_info_length 4, crc_length 16, crc 30068
404  31333934  bus_name "1394"
408  20001000  irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 0, max_rec 1 (4)
40c  0001f200  company_id 0001f2     |
410  0007b82d  device_id 000007b82d  | EUI-64 0001f2000007b82d

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

               unit directory at 428
               -----------------------------------------------------------------
428  0003d80a  directory_length 3, crc 55306
42c  120001f2  specifier id
430  1300000d  version
434  17100800  model

               eui-64 leaf at 438
               -----------------------------------------------------------------
438  00024566  leaf_length 2, crc 17766
43c  0001f200  company_id 0001f2     |
440  0007b82d  device_id 000007b82d  | EUI-64 0001f2000007b82d

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
---
 sound/firewire/motu/motu.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Patch
diff mbox series

diff --git a/sound/firewire/motu/motu.c b/sound/firewire/motu/motu.c
index f249ad39d8a8..f2080d720aa9 100644
--- a/sound/firewire/motu/motu.c
+++ b/sound/firewire/motu/motu.c
@@ -202,6 +202,19 @@  static const struct snd_motu_spec motu_traveler = {
 	.analog_out_ports = 8,
 };
 
+static const struct snd_motu_spec motu_ultralite = {
+	.name = "UltraLite",
+	.protocol = &snd_motu_protocol_v2,
+	.flags = SND_MOTU_SPEC_SUPPORT_CLOCK_X2 |
+		 SND_MOTU_SPEC_TX_MICINST_CHUNK | // padding.
+		 SND_MOTU_SPEC_TX_RETURN_CHUNK |
+		 SND_MOTU_SPEC_RX_MIDI_2ND_Q |
+		 SND_MOTU_SPEC_TX_MIDI_2ND_Q |
+		 SND_MOTU_SPEC_RX_SEPARATED_MAIN,
+	.analog_in_ports = 8,
+	.analog_out_ports = 8,
+};
+
 static const struct snd_motu_spec motu_8pre = {
 	.name = "8pre",
 	.protocol = &snd_motu_protocol_v2,
@@ -272,6 +285,7 @@  static const struct snd_motu_spec motu_4pre = {
 static const struct ieee1394_device_id motu_id_table[] = {
 	SND_MOTU_DEV_ENTRY(0x000003, &snd_motu_spec_828mk2),
 	SND_MOTU_DEV_ENTRY(0x000009, &motu_traveler),
+	SND_MOTU_DEV_ENTRY(0x00000d, &motu_ultralite),
 	SND_MOTU_DEV_ENTRY(0x00000f, &motu_8pre),
 	SND_MOTU_DEV_ENTRY(0x000015, &motu_828mk3),	/* FireWire only. */
 	SND_MOTU_DEV_ENTRY(0x000035, &motu_828mk3),	/* Hybrid. */