ALSA: oxfw: add support for APOGEE duet FireWire
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 13 Nov 2018 03:01:30 +0000 (12:01 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 13 Nov 2018 11:02:01 +0000 (12:02 +0100)
This commit adds support for APOGEE duet FireWire, launched 2007, already
discontinued. This model uses Oxford Semiconductor FW971 as its
communication engine. Below is information on Configuration ROM of this
unit. The unit supports some AV/C commands defined by Audio subunit
specification and vendor dependent commands.

$ ./hinawa-config-rom-printer /dev/fw1
{ 'bus-info': { 'adj': False,
                'bmc': False,
                'chip_ID': 42949742248,
                'cmc': False,
                'cyc_clk_acc': 255,
                'generation': 0,
                'imc': False,
                'isc': True,
                'link_spd': 3,
                'max_ROM': 0,
                'max_rec': 64,
                'name': '1394',
                'node_vendor_ID': 987,
                'pmc': False},
  'root-directory': [ ['VENDOR', 987],
                      ['DESCRIPTOR', 'Apogee Electronics'],
                      ['MODEL', 122333],
                      ['DESCRIPTOR', 'Duet'],
                      [ 'NODE_CAPABILITIES',
                        { 'addressing': {'64': True, 'fix': True, 'prv': False},
                          'misc': {'int': False, 'ms': False, 'spt': True},
                          'state': { 'atn': False,
                                     'ded': False,
                                     'drq': True,
                                     'elo': False,
                                     'init': False,
                                     'lst': True,
                                     'off': False},
                          'testing': {'bas': False, 'ext': False}}],
                      [ 'UNIT',
                        [ ['SPECIFIER_ID', 41005],
                          ['VERSION', 65537],
                          ['MODEL', 122333],
                          ['DESCRIPTOR', 'Duet']]]]}

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/Kconfig
sound/firewire/oxfw/oxfw.c

index 8a146b0392761402ffeb79e869fe985abb172cff..44cedb65bb88b727451cced669c833795414a267 100644 (file)
@@ -41,6 +41,7 @@ config SND_OXFW
           * Mackie(Loud) U.420/U.420d
           * TASCAM FireOne
           * Stanton Controllers & Systems 1 Deck/Mixer
+          * APOGEE duet FireWire
 
          To compile this driver as a module, choose M here: the module
          will be called snd-oxfw.
index afb78d90384b80b3368a0e8a4621174469435e6f..3d27f3378d5ddf1b54cd9ec164ee3125002df091 100644 (file)
@@ -20,6 +20,7 @@
 #define VENDOR_LACIE           0x00d04b
 #define VENDOR_TASCAM          0x00022e
 #define OUI_STANTON            0x001260
+#define OUI_APOGEE             0x0003db
 
 #define MODEL_SATELLITE                0x00200f
 
@@ -397,6 +398,13 @@ static const struct ieee1394_device_id oxfw_id_table[] = {
                .vendor_id      = OUI_STANTON,
                .model_id       = 0x002000,
        },
+       // APOGEE, duet FireWire
+       {
+               .match_flags    = IEEE1394_MATCH_VENDOR_ID |
+                                 IEEE1394_MATCH_MODEL_ID,
+               .vendor_id      = OUI_APOGEE,
+               .model_id       = 0x01dddd,
+       },
        { }
 };
 MODULE_DEVICE_TABLE(ieee1394, oxfw_id_table);