summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-04-23 11:31:34 +0200
committerGitHub <noreply@github.com>2021-04-23 11:31:34 +0200
commitce0cedacc4dbfc465797b039b3d3af0cd13b6bd5 (patch)
treedaef61be2fa7ea86993e4469f6ebcccdb1299d99
parentc44a285c41d4d287482d2053863e1795c594dca8 (diff)
parentdece0357e1c8942589ab3b7445b21af5bb78d452 (diff)
downloadsystemd-ce0cedacc4dbfc465797b039b3d3af0cd13b6bd5.tar.gz
Merge pull request #19124 from takaswie/topic/fw-audio-entries
hwdb/rule: add database and rules for known audio and music unit in IEEE 1394 bus
-rw-r--r--hwdb.d/80-ieee1394-unit-function.hwdb1143
-rw-r--r--hwdb.d/meson.build1
-rwxr-xr-xhwdb.d/parse_hwdb.py12
-rw-r--r--rules.d/50-udev-default.rules.in10
-rw-r--r--src/login/70-uaccess.rules.m44
5 files changed, 1169 insertions, 1 deletions
diff --git a/hwdb.d/80-ieee1394-unit-function.hwdb b/hwdb.d/80-ieee1394-unit-function.hwdb
new file mode 100644
index 0000000000..71724ac141
--- /dev/null
+++ b/hwdb.d/80-ieee1394-unit-function.hwdb
@@ -0,0 +1,1143 @@
+# This file is part of systemd.
+
+# Description
+#
+# Each node on IEEE 1394 bus has configuration ROM with information for identification. Although the
+# typical content of configuration ROM is defined by 1394 Trading Association, many nodes have own
+# quirks. This database includes supplemental information to unit in the node.
+
+# Convention
+#
+# One entry has two keys. One is customized key to match a node. Another is for kernel alias to
+# match an unit included in the node.
+#
+# The customized key has two formats according to whether the node has model attribute:
+# - ven0x000000mo0x000000units0x000000:0x000000
+# - ven0x000000units0x000000:0x000000
+#
+# Even when the node has multiple units, the entry should match to one of the units. In the case,
+# the customized key should have wild pattern for units field:
+# - ven0x000000mo0x000000units*0x000000:0x000000*
+# - ven0x000000units*0x000000:0x000000*
+#
+# The hexadecimal digits part of the customized key should be lower-case. Linux FireWire subsystem
+# uses lower-case value for attributes of sysfs node, and systemd-hwdb parses the custom key by
+# case-sensitive way. On the other hand, it parses kernel alias by case-insensitive way.
+#
+# The entry should have some of IEEE1394_UNIT_FUNCTION_XXX environment variables to express function
+# of the unit. The variables are used to decide group owner of special file for character device
+# corresponding to node including the unit. At present, below variables are supported:
+# - IEEE1394_UNIT_FUNCTION_MIDI
+# - For any unit to process MIDI messages. For example, the unit includes AV/C music subunit.
+# - IEEE1394_UNIT_FUNCTION_AUDIO
+# - For any unit to process audio signal. For example, the unit includes AV/C audio subunit.
+# - IEEE1394_UNIT_FUNCTION_VIDEO
+# - For any unit to process video signal.
+#
+# Additionally, ID_VENDOR_FROM_DATABASE and ID_MODEL_FROM_DATABASE environment variables are
+# preferable.
+
+#
+# BridgeCo. Enhancement BreakOut Box (BeBoB) for DM1000, DM1100, and DM1500 ASICs.
+#
+
+# Match to eAR Master One, Eroica, Figaro, and Ciaccona.
+ieee1394:node:ven0x000aacmo0x000002units0x00a02d:0x010001
+ieee1394:ven00000AACmo00000002sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Acoustic Reality
+ ID_MODEL_FROM_DATABASE=eAR FireWire Audio
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0003dbmo0x01eeeeunits0x00a02d:0x010001
+ieee1394:ven000003DBmo0001EEEEsp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Apogee Electronics
+ ID_MODEL_FROM_DATABASE=Ensemble FireWire
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# An extension card for Rosetta 200, Rosetta 800, AD16X, DA16X, DD16X, and BigBen.
+ieee1394:node:ven0x0003dbmo0x010048units0x00a02d:0x010001
+ieee1394:ven000003DBmo00010048sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Apogee Electronics
+ ID_MODEL_FROM_DATABASE=X-FireWire Card
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001564mo0x000610units0x00a02d:0x010001
+ieee1394:ven00001564mo00000610sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Behringer
+ ID_MODEL_FROM_DATABASE=F-Control Audio 610
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001564mo0x001616units0x00a02d:0x010001
+ieee1394:ven00001564mo00001616sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Behringer
+ ID_MODEL_FROM_DATABASE=F-Control Audio 1616
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001564mo0x001204units0x00a02d:0x010001
+ieee1394:ven00001564mo00001204sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Behringer
+ ID_MODEL_FROM_DATABASE=XENYX UFX1204
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001564mo0x001604units0x00a02d:0x010001
+ieee1394:ven00001564mo00001604sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Behringer
+ ID_MODEL_FROM_DATABASE=XENYX UFX1604
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# An extension card for Behringer X32.
+ieee1394:node:ven0x001564mo0x000006units0x00a02d:0x010001
+ieee1394:ven00001564mo00000006sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Behringer
+ ID_MODEL_FROM_DATABASE=X-UF
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00000amo0x030000units0x00a02d:0x010001
+ieee1394:ven0000000Amo00030000sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=CME
+ ID_MODEL_FROM_DATABASE=Matrix K FW
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00a07emo0x0000a9units0x00a02d:0x014001
+ieee1394:ven0000A07Emo000000A9sp0000A02Dver00014001
+ ID_VENDOR_FROM_DATABASE=Digidesign
+ ID_MODEL_FROM_DATABASE=Mbox 2 Pro
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0040abmo0x010048units0x00a02d:0x010001
+ieee1394:ven000040ABmo00010048sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Edirol
+ ID_MODEL_FROM_DATABASE=FA-101
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0040abmo0x010049units0x00a02d:0x010001
+ieee1394:ven000040ABmo00010049sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Edirol
+ ID_MODEL_FROM_DATABASE=FA-66
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# The value of model field differs depending on firmware.
+ieee1394:node:ven0x000f1bmo0x010064units0x00a02d:0x010001
+ieee1394:ven00000F1Bmo00010064sp0000A02Dver00010001
+ieee1394:node:ven0x000f1bmo0x000210units0x00a02d:0x010001
+ieee1394:ven00000F1Bmo00000210sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Ego Systems
+ ID_MODEL_FROM_DATABASE=QuataFire
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Match to Saffire and Saffire LE.
+ieee1394:node:ven0x00130emo0x000000units0x00a02d:0x010001
+ieee1394:ven0000130Emo00000000sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Saffire
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00130emo0x000006units0x00a02d:0x010001
+ieee1394:ven0000130Emo00000006sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Saffire Pro 10 i/o
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00130emo0x000003units0x00a02d:0x010001
+ieee1394:ven0000130Emo00000003sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Saffire Pro 26 i/o
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x01a9eemo0x000001units0x00a02d:0x010001
+ieee1394:ven0001A9EEmo00000001sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=ICON
+ ID_MODEL_FROM_DATABASE=FireXon
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000d6cmo0x010071units0x00a02d:0x014001
+ieee1394:ven00000D6Cmo00010071sp0000A02Dver00014001
+ ID_VENDOR_FROM_DATABASE=M-Audio
+ ID_MODEL_FROM_DATABASE=FW 1814
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Vendor is BridgeCo Co AG but M-Audio.
+ieee1394:node:ven0x0007f5mo0x010046units0x00a02d:0x014001
+ieee1394:ven000007F5mo00010046sp0000A02Dver00014001
+ ID_VENDOR_FROM_DATABASE=M-Audio
+ ID_MODEL_FROM_DATABASE=FW 410
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000d6cmo0x010060units0x00a02d:0x014001
+ieee1394:ven00000D6Cmo00010060sp0000A02Dver00014001
+ ID_VENDOR_FROM_DATABASE=M-Audio
+ ID_MODEL_FROM_DATABASE=FW Audiophile
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000d6cmo0x010062units0x00a02d:0x010001
+ieee1394:ven00000D6Cmo00010062sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=M-Audio
+ ID_MODEL_FROM_DATABASE=FW Solo
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000d6cmo0x010081units0x00a02d:0x010001
+ieee1394:ven00000D6Cmo00010081sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=M-Audio
+ ID_MODEL_FROM_DATABASE=NRV10
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000d6cmo0x00000aunits0x00a02d:0x014001
+ieee1394:ven00000D6Cmo0000000Asp0000A02Dver00014001
+ ID_VENDOR_FROM_DATABASE=M-Audio
+ ID_MODEL_FROM_DATABASE=Ozonic
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000d6cmo0x0100a1units0x00a02d:0x014001
+ieee1394:ven00000D6Cmo000100A1sp0000A02Dver00014001
+ ID_VENDOR_FROM_DATABASE=M-Audio
+ ID_MODEL_FROM_DATABASE=ProFire Lightbridge
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000d6cmo0x010091units0x00a02d:0x014001
+ieee1394:ven00000D6Cmo00010091sp0000A02Dver00014001
+ ID_VENDOR_FROM_DATABASE=M-Audio
+ ID_MODEL_FROM_DATABASE=ProjectMix I/O
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# An extension card for Mackie Onyx 1220, 1620, and 1640.
+ieee1394:node:ven0x000ff2mo0x010065units0x00a02d:0x010001
+ieee1394:ven00000FF2mo00010065sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Loud Technologies
+ ID_MODEL_FROM_DATABASE=Mackie Onyx FireWire
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# An extension card for Mackie d.2.
+ieee1394:node:ven0x000ff2mo0x010067units0x00a02d:0x010001
+ieee1394:ven00000FF2mo00010067sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Loud Technologies
+ ID_MODEL_FROM_DATABASE=Mackie DJ Mixer
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Match to FireFly 202, 302, 808, and 808 Universal.
+# Match to HelixBoard 12 mk II, 18 mk II, 24 mk II, 12 Universal, 18 Universal, and 24 Universal.
+ieee1394:node:ven0x001496mo0x000000units0x00a02d:0x010001
+ieee1394:ven00001496mo00000000sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Phonic
+ ID_MODEL_FROM_DATABASE=FireFly/Helixboard
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a92mo0x010000units0x00a02d:0x010001
+ieee1394:ven00000A92mo00010000sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=FireBox
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a92mo0x010001units0x00a02d:0x010001
+ieee1394:ven00000A92mo00010001sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=Inspire 1394
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001198mo0x010048units0x00a02d:0x010001
+ieee1394:ven00001198mo00010048sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Prism Media Products
+ ID_MODEL_FROM_DATABASE=Orpheus
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a92mo0x010066units0x00a02d:0x010001
+ieee1394:ven00000A92mo00010066sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=PreSonus FP10
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001260mo0x000001units0x00a02d:0x010001
+ieee1394:ven00001260mo00000001sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Stanton Magnetics
+ ID_MODEL_FROM_DATABASE=ScratchAmp
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x010065mo0x010067units0x00a02d:0x010001
+ieee1394:ven00010065mo00010067sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Tascam
+ ID_MODEL_FROM_DATABASE=IF-FW/DM
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000aacmo0x000003units0x00a02d:0x010001
+ieee1394:ven00000AACmo00000003sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=TerraTec Electronic
+ ID_MODEL_FROM_DATABASE=PHASE 88 FW
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000aacmo0x000004units0x00a02d:0x010001
+ieee1394:ven00000AACmo00000004sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=TerraTec Electronic
+ ID_MODEL_FROM_DATABASE=PHASE 24 FW
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000aacmo0x000007units0x00a02d:0x010001
+ieee1394:ven00000AACmo00000007sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=TerraTec Electronic
+ ID_MODEL_FROM_DATABASE=PHASE X24 FW
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x002327mo0x020002units0x00a02d:0x010001
+ieee1394:ven00002327mo00020002sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=ToneWeal
+ ID_MODEL_FROM_DATABASE=FW66
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00a0demo0x10000bunits0x00a02d:0x010001
+ieee1394:ven0000A0DEmo0010000Bsp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Yamaha
+ ID_MODEL_FROM_DATABASE=GO44
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00a0demo0x10000cunits0x00a02d:0x010001
+ieee1394:ven0000A0DEmo0010000Csp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Yamaha
+ ID_MODEL_FROM_DATABASE=GO46
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+#
+# Fireworks board module.
+#
+# DSP model (Texus Instruments TMS320C67) and FPGA model (Xilinx Spartan XC35250E) exists.
+# Both models use Texus Instruments TSB43CB43 (IceLynx Micro, iCEM) as communication engine.
+#
+
+# Match to DSP model of AudioFire8.
+ieee1394:node:ven0x001486mo0x000af8units0x00a02d:0x010000
+ieee1394:ven00001486mo00000AF8sp0000A02Dver00010000
+ ID_VENDOR_FROM_DATABASE=Echo Digital Audio
+ ID_MODEL_FROM_DATABASE=AudioFire8
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Match to both DSP and FPGA models of AudioFire12.
+ieee1394:node:ven0x001486mo0x00af12units0x00a02d:0x010000
+ieee1394:ven00001486mo0000AF12sp0000A02Dver00010000
+ ID_VENDOR_FROM_DATABASE=Echo Digital Audio
+ ID_MODEL_FROM_DATABASE=AudioFire12
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# DSP model.
+ieee1394:node:ven0x000ff2mo0x01200funits0x00a02d:0x010000
+ieee1394:ven00000FF2mo0001200Fsp0000A02Dver00010000
+ ID_VENDOR_FROM_DATABASE=Mackie
+ ID_MODEL_FROM_DATABASE=Onyx 1200F
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# DSP model.
+ieee1394:node:ven0x000ff2mo0x00400funits0x00a02d:0x010000
+ieee1394:ven00000FF2mo0000400Fsp0000A02Dver00010000
+ ID_VENDOR_FROM_DATABASE=Mackie
+ ID_MODEL_FROM_DATABASE=Onyx 400F
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# FPGA model.
+ieee1394:node:ven0x001486mo0x000af2units0x00a02d:0x010000
+ieee1394:ven00001486mo00000AF2sp0000A02Dver00010000
+ ID_VENDOR_FROM_DATABASE=Echo Digital Audio
+ ID_MODEL_FROM_DATABASE=AudioFire2
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# FPGA model.
+ieee1394:node:ven0x001486mo0x000af4units0x00a02d:0x010000
+ieee1394:ven00001486mo00000AF4sp0000A02Dver00010000
+ ID_VENDOR_FROM_DATABASE=Echo Digital Audio
+ ID_MODEL_FROM_DATABASE=AudioFire4
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Match to FPGA model of AudioFire8, and AudioFirePre8.
+ieee1394:node:ven0x001486mo0x000af9units0x00a02d:0x010000
+ieee1394:ven00001486mo00000AF9sp0000A02Dver00010000
+ ID_VENDOR_FROM_DATABASE=Echo Digital Audio
+ ID_MODEL_FROM_DATABASE=AudioFire8/Pre8
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# FPGA model.
+ieee1394:node:ven0x00075bmo0x00afb2units0x00a02d:0x010000
+ieee1394:ven0000075Bmo0000AFB2sp0000A02Dver00010000
+ ID_VENDOR_FROM_DATABASE=Gibson
+ ID_MODEL_FROM_DATABASE=RIP
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+#
+# Oxford Semiconductor FW970/971.
+#
+
+ieee1394:node:ven0x0003dbmo0x01ddddunits0x00a02d:0x010001
+ieee1394:ven000003DBmo0001DDDDsp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Apogee Electronics
+ ID_MODEL_FROM_DATABASE=Duet FireWire
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001564mo0x00fc22units0x00a02d:0x010001
+ieee1394:ven00001564mo0000FC22sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Behringer
+ ID_MODEL_FROM_DATABASE=F-Control Audio 202
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001292mo0x00f970units0x00a02d:0x010001
+ieee1394:ven00001292mo0000F970sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Griffin Technology
+ ID_MODEL_FROM_DATABASE=Griffin FireWave
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00d04bmo0x00f970units0x00a02d:0x010001
+ieee1394:ven0000D04Bmo0000F970sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=LaCie
+ ID_MODEL_FROM_DATABASE=LaCie FireWire Speakers
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Match to former models of Onyx 820i, 1220i, and 1620i.
+ieee1394:node:ven0x000ff2mo0x081216units0x00a02d:0x010001
+ieee1394:ven00000FF2mo00081216sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Loud Technologies
+ ID_MODEL_FROM_DATABASE=Mackie Onyx-i series
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000ff2mo0x001640units0x00a02d:0x010001
+ieee1394:ven00000FF2mo00001640sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Loud Technologies
+ ID_MODEL_FROM_DATABASE=Mackie Onyx 1640i
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000ff2mo0x00200funits0x00a02d:0x010001
+ieee1394:ven00000FF2mo0000200Fsp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Loud Technologies
+ ID_MODEL_FROM_DATABASE=Mackie Onyx Satellite
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000ff2mo0x000460units0x00a02d:0x010001
+ieee1394:ven00000FF2mo00000460sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Loud Technologies
+ ID_MODEL_FROM_DATABASE=Tapco LINK.firewire 4x6
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001260mo0x002000units0x00a02d:0x010001
+ieee1394:ven00001260mo00002000sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Stanton Magnetics
+ ID_MODEL_FROM_DATABASE=SCS.1d
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001260mo0x001000units0x00a02d:0x010001
+ieee1394:ven00001260mo00001000sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Stanton Magnetics
+ ID_MODEL_FROM_DATABASE=SCS.1m
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+
+ieee1394:node:ven0x00022emo0x800007units0x00a02d:0x010001
+ieee1394:ven0000022Emo00800007sp0000A02Dver00010001
+ ID_VENDOR_FROM_DATABASE=Tascam
+ ID_MODEL_FROM_DATABASE=FireOne
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+#
+# TC Applied Technologies. Digital Interface Communication Engine (DICE).
+#
+# DICE with DICE II, TCD2210, TCD2220, and TCD3070 ASICs.
+#
+
+ieee1394:node:ven0x0004c4mo0x000000units0x0004c4:0x000001
+ieee1394:ven000004C4mo00000000sp000004C4ver00000001
+ ID_VENDOR_FROM_DATABASE=Allen and Heath
+ ID_MODEL_FROM_DATABASE=Zed R16
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Match to iO 14, iO 26
+ieee1394:node:ven0x000595mo0x000001units0x000595:0x000001
+ieee1394:ven00000595mo00000001sp00000595ver00000001
+ ID_VENDOR_FROM_DATABASE=Alesis
+ ID_MODEL_FROM_DATABASE=iO FireWire
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000595mo0x000002units0x000595:0x000001
+ieee1394:ven00000595mo00000002sp00000595ver00000001
+ ID_VENDOR_FROM_DATABASE=Alesis
+ ID_MODEL_FROM_DATABASE=MasterControl
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Match to Multimix 8, 12, and 16.
+ieee1394:node:ven0x000595mo0x000000units0x000595:0x000001
+ieee1394:ven00000595mo00000000sp00000595ver00000001
+ ID_VENDOR_FROM_DATABASE=Alesis
+ ID_MODEL_FROM_DATABASE=MultiMix FireWire
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00a07emo0x000004units0x00a07e:0x000001
+ieee1394:ven0000A07Emo00000004sp0000A07Ever00000001
+ ID_VENDOR_FROM_DATABASE=Avid
+ ID_MODEL_FROM_DATABASE=Mbox 3 Pro
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001c2dmo0x000001units0x001c2d:0x000001
+ieee1394:ven00001C2Dmo00000001sp00001C2Dver00000001
+ ID_VENDOR_FROM_DATABASE=FlexRadio Systems
+ ID_MODEL_FROM_DATABASE=FLEX-5000
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001c2dmo0x000002units0x001c2d:0x000001
+ieee1394:ven00001C2Dmo00000002sp00001C2Dver00000001
+ ID_VENDOR_FROM_DATABASE=FlexRadio Systems
+ ID_MODEL_FROM_DATABASE=FLEX-3000
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00130emo0x000006units0x00130e:0x000001
+ieee1394:ven0000130Emo00000006sp0000130Ever00000001
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Liquid Saffire 56
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00130emo0x000009units0x00130e:0x000001
+ieee1394:ven0000130Emo00000009sp0000130Ever00000001
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Saffire Pro 14
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00130emo0x000007units0x00130e:0x000001
+ieee1394:ven0000130Emo00000007sp0000130Ever00000001
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Saffire Pro 24
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00130emo0x000008units0x00130e:0x000001
+ieee1394:ven0000130Emo00000008sp0000130Ever00000001
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Saffire Pro 24 DSP
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00130emo0x000012units0x00130e:0x000001
+ieee1394:ven0000130Emo00000012sp0000130Ever00000001
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Saffire Pro 26
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Revision with TCD2210.
+ieee1394:node:ven0x00130emo0x000005units0x00130e:0x000001
+ieee1394:ven0000130Emo00000005sp0000130Ever00000001
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Saffire Pro 40
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Revision with TCD3070.
+ieee1394:node:ven0x00130emo0x0000deunits0x00130e:0x000001
+ieee1394:ven0000130Emo000000DEsp0000130Ever00000001
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Saffire Pro 40
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000fd7mo0x000001units0x000fd7:0x000001
+ieee1394:ven00000FD7mo00000001sp00000FD7ver00000001
+ ID_VENDOR_FROM_DATABASE=Harman Music Group
+ ID_MODEL_FROM_DATABASE=Lexicon I-ONIX FW810S
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000ff2mo0x000007units0x000ff2:0x000001
+ieee1394:ven00000FF2mo00000007sp00000FF2ver00000001
+ ID_VENDOR_FROM_DATABASE=Loud Technologies
+ ID_MODEL_FROM_DATABASE=Mackie Onyx Blackbird
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Match to Onyx 1640i, and latter models of Onyx 820i, 1220i, and 1620i.
+ieee1394:node:ven0x000ff2mo0x000006units0x000ff2:0x000001
+ieee1394:ven00000FF2mo00000006sp00000FF2ver00000001
+ ID_VENDOR_FROM_DATABASE=Loud Technologies
+ ID_MODEL_FROM_DATABASE=Mackie Onyx-i series
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000d6cmo0x000011units0x000d6c:0x0100d1
+ieee1394:ven00000D6Cmo00000011sp00000D6Cver000100D1
+ ID_VENDOR_FROM_DATABASE=M-Audio
+ ID_MODEL_FROM_DATABASE=ProFire 610
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000d6cmo0x000010units0x000d6c:0x0100c1
+ieee1394:ven00000D6Cmo00000010sp00000D6Cver000100C1
+ ID_VENDOR_FROM_DATABASE=M-Audio
+ ID_MODEL_FROM_DATABASE=ProFire 2626
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001ee8mo0x000002units0x001ee8:0x000001
+ieee1394:ven00001EE8mo00000002sp00001EE8ver00000001
+ ID_VENDOR_FROM_DATABASE=Mytek
+ ID_MODEL_FROM_DATABASE=Stereo192-DSD DAC
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x10c73fmo0x000001units0x10c73f:0x000001
+ieee1394:ven0010C73Fmo00000001sp0010C73Fver00000001
+ ID_VENDOR_FROM_DATABASE=Midas Klark Teknik
+ ID_MODEL_FROM_DATABASE=VeniceF series
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a92mo0x000008units0x000a92:0x000001
+ieee1394:ven00000A92mo00000008sp00000A92ver00000001
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=FireStudio
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a92mo0x000011units0x000a92:0x000001
+ieee1394:ven00000A92mo00000011sp00000A92ver00000001
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=FireStudio Mobile
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a92mo0x00000bunits0x000a92:0x000001
+ieee1394:ven00000A92mo0000000Bsp00000A92ver00000001
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=FireStudio Project
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a92mo0x00000cunits0x000a92:0x000001
+ieee1394:ven00000A92mo0000000Csp00000A92ver00000001
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=FireStudio Tube
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a92mo0x000010units0x000a92:0x000001
+ieee1394:ven00000A92mo00000010sp00000A92ver00000001
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=StudioLive 16.4.2
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a92mo0x000012units0x000a92:0x000001
+ieee1394:ven00000A92mo00000012sp00000A92ver00000001
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=StudioLive 24.4.2
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a92mo0x000013units0x000a92:0x000001
+ieee1394:ven00000A92mo00000013sp00000A92ver00000001
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=StudioLive 16.0.2
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a92mo0x000014units0x000a92:0x000001
+ieee1394:ven00000A92mo00000014sp00000A92ver00000001
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=StudioLive 32.4.2AI
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Unregistered OUI. Match to Duende Classic and Duende Mini. They are differentiated by category
+# field of GUID (0x51/0x52) in TCAT specification.
+ieee1394:node:ven0x0050c2mo0x000070units0x0050c2:0x000001
+ieee1394:ven000050C2mo00000070sp000050C2ver00000001
+ ID_VENDOR_FROM_DATABASE=Solid State Logic
+ ID_MODEL_FROM_DATABASE=Duende FireWire
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000166mo0x000024units0x000166:0x000001
+ieee1394:ven00000166mo00000024sp00000166ver00000001
+ ID_VENDOR_FROM_DATABASE=TC Electronic
+ ID_MODEL_FROM_DATABASE=Desktop Konnekt 6
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000166mo0x000030units0x000166:0x000001
+ieee1394:ven00000166mo00000030sp00000166ver00000001
+ ID_VENDOR_FROM_DATABASE=TC Electronic
+ ID_MODEL_FROM_DATABASE=Digital Konnekt x32
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000166mo0x000027units0x000166:0x000001
+ieee1394:ven00000166mo00000027sp00000166ver00000001
+ ID_VENDOR_FROM_DATABASE=TC Electronic
+ ID_MODEL_FROM_DATABASE=Impact Twin
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000166mo0x000020units0x000166:0x000001
+ieee1394:ven00000166mo00000020sp00000166ver00000001
+ ID_VENDOR_FROM_DATABASE=TC Electronic
+ ID_MODEL_FROM_DATABASE=Konnekt 24D
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000166mo0x000021units0x000166:0x000001
+ieee1394:ven00000166mo00000021sp00000166ver00000001
+ ID_VENDOR_FROM_DATABASE=TC Electronic
+ ID_MODEL_FROM_DATABASE=Konnekt 8
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000166mo0x000023units0x000166:0x000001
+ieee1394:ven00000166mo00000023sp00000166ver00000001
+ ID_VENDOR_FROM_DATABASE=TC Electronic
+ ID_MODEL_FROM_DATABASE=Konnekt Live
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000166mo0x000022units0x000166:0x000001
+ieee1394:ven00000166mo00000022sp00000166ver00000001
+ ID_VENDOR_FROM_DATABASE=TC Electronic
+ ID_MODEL_FROM_DATABASE=Studio Konnekt 48
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001c6amo0x000001units0x001c6a:0x000001
+ieee1394:ven00001C6Amo00000001sp00001C6Aver00000001
+ ID_VENDOR_FROM_DATABASE=Weiss Engineering
+ ID_MODEL_FROM_DATABASE=ADC2
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001c6amo0x000002units0x001c6a:0x000001
+ieee1394:ven00001C6Amo00000002sp00001C6Aver00000001
+ ID_VENDOR_FROM_DATABASE=Weiss Engineering
+ ID_MODEL_FROM_DATABASE=Vesta
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001c6amo0x000003units0x001c6a:0x000001
+ieee1394:ven00001C6Amo00000003sp00001C6Aver00000001
+ ID_VENDOR_FROM_DATABASE=Weiss Engineering
+ ID_MODEL_FROM_DATABASE=Minerva
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001c6amo0x000004units0x001c6a:0x000001
+ieee1394:ven00001C6Amo00000004sp00001C6Aver00000001
+ ID_VENDOR_FROM_DATABASE=Weiss Engineering
+ ID_MODEL_FROM_DATABASE=AFI1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001c6amo0x000005units0x001c6a:0x000001
+ieee1394:ven00001C6Amo00000005sp00001C6Aver00000001
+ ID_VENDOR_FROM_DATABASE=Weiss Engineering
+ ID_MODEL_FROM_DATABASE=DAC1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001c6amo0x000006units0x001c6a:0x000001
+ieee1394:ven00001C6Amo00000006sp00001C6Aver00000001
+ ID_VENDOR_FROM_DATABASE=Weiss Engineering
+ ID_MODEL_FROM_DATABASE=INT202
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x001c6amo0x000007units0x001c6a:0x000001
+ieee1394:ven00001C6Amo00000007sp00001C6Aver00000001
+ ID_VENDOR_FROM_DATABASE=Weiss Engineering
+ ID_MODEL_FROM_DATABASE=DAC202
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+#
+# Digidesign Digi00x family.
+#
+
+ieee1394:node:ven0x00a07eunits0x0000a3:0x000001
+ieee1394:ven0000A07Emo00000001sp000000A3ver00000001
+ ID_VENDOR_FROM_DATABASE=Digidesign
+ ID_MODEL_FROM_DATABASE=Digi 002
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00a07eunits0x0000a4:0x000001
+ieee1394:ven0000A07Emo00000002sp000000A4ver00000001
+ ID_VENDOR_FROM_DATABASE=Digidesign
+ ID_MODEL_FROM_DATABASE=Digi 002Rack
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00a07eunits0x0000aa:0x000001
+ieee1394:ven0000A07Emo00000001sp000000AAver00000001
+ ID_VENDOR_FROM_DATABASE=Digidesign
+ ID_MODEL_FROM_DATABASE=Digi 003
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00a07eunits0x0000ab:0x000001
+ieee1394:ven0000A07Emo00000002sp000000ABver00000001
+ ID_VENDOR_FROM_DATABASE=Digidesign
+ ID_MODEL_FROM_DATABASE=Digi 003 Rack
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+#
+# Tascam FireWire series.
+#
+
+ieee1394:node:ven0x00022eunits0x00022e:0x800001
+ieee1394:ven0000022Emo00000000sp0000022Ever00800001
+ ID_VENDOR_FROM_DATABASE=Tascam
+ ID_MODEL_FROM_DATABASE=FE-8
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+
+ieee1394:node:ven0x00022eunits0x00022e:0x800003
+ieee1394:ven0000022Emo00000000sp0000022Ever00800003
+ ID_VENDOR_FROM_DATABASE=Tascam
+ ID_MODEL_FROM_DATABASE=FW-1082
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00022eunits0x00022e:0x800004
+ieee1394:ven0000022Emo00000000sp0000022Ever00800004
+ ID_VENDOR_FROM_DATABASE=Tascam
+ ID_MODEL_FROM_DATABASE=FW-1804
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00022eunits0x00022e:0x800000
+ieee1394:ven0000022Emo00000000sp0000022Ever00800000
+ ID_VENDOR_FROM_DATABASE=Tascam
+ ID_MODEL_FROM_DATABASE=FW-1884
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+#
+# Mark of the Unicorn FireWire series.
+#
+# The model field in unit directory should be ignored since it expresses firmware version.
+#
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000001
+ieee1394:ven000001F2mo*sp000001F2ver00000001
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU 828
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000002
+ieee1394:ven000001F2mo*sp000001F2ver00000002
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU 896
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000003
+ieee1394:ven000001F2mo*sp000001F2ver00000003
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU 828 mkII
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000005
+ieee1394:ven000001F2mo*sp000001F2ver00000005
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU 896 HD
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000009
+ieee1394:ven000001F2mo*sp000001F2ver00000009
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=Traveler
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x00000d
+ieee1394:ven000001F2mo*sp000001F2ver0000000D
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=UltraLite
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x00000f
+ieee1394:ven000001F2mo*sp000001F2ver0000000F
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU 8pre
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000015
+ieee1394:ven000001F2mo*sp000001F2ver00000015
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU 828 mk3 FireWire
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000017
+ieee1394:ven000001F2mo*sp000001F2ver00000017
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU 896 mk3 FireWire
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000019
+ieee1394:ven000001F2mo*sp000001F2ver00000019
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=UltraLite mk3 FireWire
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x00001b
+ieee1394:ven000001F2mo*sp000001F2ver0000001B
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=Traveler mk3
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000030
+ieee1394:ven000001F2mo*sp000001F2ver00000030
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=UltraLite mk3 Hybrid
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000033
+ieee1394:ven000001F2mo*sp000001F2ver00000033
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=Audio Express
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000035
+ieee1394:ven000001F2mo*sp000001F2ver00000035
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU 828 mk3 Hybrid
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x0001f2units0x0001f2:0x000045
+ieee1394:ven000001F2mo*sp000001F2ver00000045
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU 4pre
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+#
+# RME Fireface series.
+#
+ieee1394:node:ven0x000a35units0x000a35:0x000001
+ieee1394:ven00000A35mo00101800sp00000A35ver00000001
+ ID_VENDOR_FROM_DATABASE=RME
+ ID_MODEL_FROM_DATABASE=Fireface 800
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a35units0x000a35:0x000002
+ieee1394:ven00000A35mo00101800sp00000A35ver00000002
+ ID_VENDOR_FROM_DATABASE=RME
+ ID_MODEL_FROM_DATABASE=Fireface 400
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a35units0x000a35:0x000003
+ieee1394:ven00000A35mo00101800sp00000A35ver00000003
+ ID_VENDOR_FROM_DATABASE=RME
+ ID_MODEL_FROM_DATABASE=Fireface UFX
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a35units0x000a35:0x000004
+ieee1394:ven00000A35mo00101800sp00000A35ver00000004
+ ID_VENDOR_FROM_DATABASE=RME
+ ID_MODEL_FROM_DATABASE=Fireface UCX
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000a35units0x000a35:0x000005
+ieee1394:ven00000A35mo00101800sp00000A35ver00000005
+ ID_VENDOR_FROM_DATABASE=RME
+ ID_MODEL_FROM_DATABASE=Fireface 802
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+#
+# Yamaha mLAN 2nd generation.
+#
+# The combination of Yamaha mLAN-NC1, Yamaha mLAN-PH2, and Fujifilm PHY MD8408B.
+#
+
+ieee1394:node:ven0x000a92mo0x000000units0x00a0de:0xffffff
+ieee1394:ven00000A92mo00000000sp0000A0DEver00FFFFFF
+ ID_VENDOR_FROM_DATABASE=PreSonus
+ ID_MODEL_FROM_DATABASE=FIREStation
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00a0demo0x100005units0x00a0de:0xffffff
+ieee1394:ven0000A0DEmo00100005sp0000A0DEver00FFFFFF
+ ID_VENDOR_FROM_DATABASE=Yamaha
+ ID_MODEL_FROM_DATABASE=01X
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00a0demo0x100007units0x00a0de:0xffffff
+ieee1394:ven0000A0DEmo00100007sp0000A0DEver00FFFFFF
+ ID_VENDOR_FROM_DATABASE=Yamaha
+ ID_MODEL_FROM_DATABASE=i88X
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+#
+# Yamaha mLAN 3rd generation.
+#
+# DICE II ASIC is used with specific firmware.
+#
+
+ieee1394:node:ven0x00a0demo0x100013units0x00a02d:0x000300
+ieee1394:ven0000A0DEmo00100013sp0000A02Dver00000300
+ ID_VENDOR_FROM_DATABASE=Steinberg
+ ID_MODEL_FROM_DATABASE=MR816
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00a0demo0x100010units0x00a02d:0x000300
+ieee1394:ven0000A0DEmo00100010sp0000A02Dver00000300
+ ID_VENDOR_FROM_DATABASE=Yamaha
+ ID_MODEL_FROM_DATABASE=n8
+ IEEE1394_UNIT_FUNCTION_MIDI=1
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+#
+# Focusrite Liquid Mix series.
+#
+# OEM by Sintefex Audio lda.
+#
+
+ieee1394:node:ven0x00130eunits0x00130e:0x000700
+ieee1394:ven0000130Emo00010204sp0000130Ever00000700
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Liquid Mix 16
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x00130eunits0x00130e:0x000200
+ieee1394:ven0000130Emo00010200sp0000130Ever00000200
+ ID_VENDOR_FROM_DATABASE=Focusrite
+ ID_MODEL_FROM_DATABASE=Liquid Mix 32
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+#
+# TC Electronic PowerCore series.
+#
+# Consists of NXP PowerQUICC II Processor with PCI interface (XPC8245, MPC8245), Texus Instruments
+# OHCI 1.1, 1394a link layer controller (TSB43AB23). Xilinx Spartan-II FPGA (XC2S50), and some
+# NXP 24-Bit Audio Digital Signal Processor (DSP56367).
+#
+
+ieee1394:node:ven0x000166mo0x000001units0x00a02d:0x000000
+ieee1394:ven00000166mo00000001sp0000A02Dver00000000
+ ID_VENDOR_FROM_DATABASE=TC Electronic
+ ID_MODEL_FROM_DATABASE=PowerCore FireWire
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+ieee1394:node:ven0x000166mo0x000002units0x00a02d:0x014000
+ieee1394:ven00000166mo00000002sp0000A02Dver00014000
+ ID_VENDOR_FROM_DATABASE=TC Electronic
+ ID_MODEL_FROM_DATABASE=PowerCore Compact
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Match to Adrenaline, Mojo, and V10.
+ieee1394:node:ven0x00a07eunits0x00a02d:0x014001
+ieee1394:ven0000A07Emo00000001sp0000A02Dver00014001
+ ID_VENDOR_FROM_DATABASE=Avid Technology
+ ID_MODEL_FROM_DATABASE=Digital Nonlinear Accelerator
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+ IEEE1394_UNIT_FUNCTION_VIDEO=1
+
+#
+# Node with single unit for video function.
+#
+
+ieee1394:node:ven0x0002f0units0x00a02d:0x000100
+ieee1394:ven000002F0mo00000000sp0000A02Dver00000100
+ ID_VENDOR_FROM_DATABASE=Cool Stream
+ ID_MODEL_FROM_DATABASE=iSweet
+ IEEE1394_UNIT_FUNCTION_VIDEO=1
+
+#
+# Node with multiple units for several functions.
+#
+# When deciding the type of unit, please cooperate with kernel developers working for driver.
+#
+
+# Apple iSight: unit 0: IIDC v1.30 function.
+ieee1394:node:ven0x080007mo0x000008units*0x00a02d:0x000102*
+ieee1394:ven00080007mo00000008sp0000A02Dver00000102
+ ID_VENDOR_FROM_DATABASE=Apple
+ ID_MODEL_FROM_DATABASE=iSight
+ IEEE1394_UNIT_FUNCTION_VIDEO=1
+
+# Apple iSight: unit 1: audio function.
+ieee1394:node:ven0x080007mo0x000008units*0x000a27:0x000010*
+ieee1394:ven00080007mo00000008sp00000A27ver00000010
+ ID_VENDOR_FROM_DATABASE=Apple
+ ID_MODEL_FROM_DATABASE=iSight
+ IEEE1394_UNIT_FUNCTION_AUDIO=1
+
+# Apple iSight: unit 2: factory function.
+ieee1394:node:ven0x080007mo0x000008units*0x000a27:0x000011*
+ieee1394:ven00080007mo00000008sp00000A27ver00000011
+ ID_VENDOR_FROM_DATABASE=Apple
+ ID_MODEL_FROM_DATABASE=iSight
+ IEEE1394_UNIT_FUNCTION_VIDEO=1
+
+# Apple iSight: unit 3: iris diaphragm function.
+ieee1394:node:ven0x080007mo0x000008units*0x000a27:0x000012*
+ieee1394:ven00080007mo00000008sp00000A27ver00000012
+ ID_VENDOR_FROM_DATABASE=Apple
+ ID_MODEL_FROM_DATABASE=iSight
+ IEEE1394_UNIT_FUNCTION_VIDEO=1
+
+# MOTU V4HD: unit 0: unknown function.
+ieee1394:node:ven0x0001f2units*0x0001f2:0x000021*
+ieee1394:ven000001F2mo*sp000001F2ver00000021
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU V4HD
+ IEEE1394_UNIT_FUNCTION_VIDEO=1
+
+# MOTU V4HD: unit 1: unknown function.
+ieee1394:node:ven0x0001f2units*0x0001f2:0x000022*
+ieee1394:ven000001F2mo*sp000001F2ver00000022
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU V4HD
+ IEEE1394_UNIT_FUNCTION_VIDEO=1
+
+# MOTU V4HD: unit 2: unknown function.
+ieee1394:node:ven0x0001f2units*0x0001f2:0x000023*
+ieee1394:ven000001F2mo*sp000001F2ver00000023
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU V4HD
+ IEEE1394_UNIT_FUNCTION_VIDEO=1
+
+# MOTU V4HD: unit 3: unknown function.
+ieee1394:node:ven0x0001f2units*0x0001f2:0x000024*
+ieee1394:ven000001F2mo*sp000001F2ver00000024
+ ID_VENDOR_FROM_DATABASE=MOTU
+ ID_MODEL_FROM_DATABASE=MOTU V4HD
+ IEEE1394_UNIT_FUNCTION_VIDEO=1
diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
index 7221a1ae9f..6a16268816 100644
--- a/hwdb.d/meson.build
+++ b/hwdb.d/meson.build
@@ -30,6 +30,7 @@ hwdb_files_test = files('''
70-mouse.hwdb
70-pointingstick.hwdb
70-touchpad.hwdb
+ 80-ieee1394-unit-function.hwdb
'''.split())
if conf.get('ENABLE_HWDB') == 1
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index 24964ff8d1..2cd4b1c370 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -72,6 +72,7 @@ TYPES = {'mouse': ('usb', 'bluetooth', 'ps2', '*'),
'joystick': ('i8042', 'rmi', 'bluetooth', 'usb'),
'keyboard': ('name', ),
'sensor': ('modalias', ),
+ 'ieee1394-unit-function' : ('node', ),
}
# Patterns that are used to set general properties on a device
@@ -82,6 +83,7 @@ GENERAL_MATCHES = {'acpi',
'sdio',
'vmbus',
'OUI',
+ 'ieee1394',
}
def upperhex_word(length):
@@ -99,7 +101,7 @@ def hwdb_grammar():
matchline = (matchline_typed | matchline_general) + EOL
propertyline = (White(' ', exact=1).suppress() +
- Combine(UDEV_TAG - '=' - Optional(Word(alphanums + '_=:@*.!-;, "'))
+ Combine(UDEV_TAG - '=' - Optional(Word(alphanums + '_=:@*.!-;, "/'))
- Optional(pythonStyleComment)) +
EOL)
propertycomment = White(' ', exact=1) + pythonStyleComment + EOL
@@ -122,6 +124,9 @@ def property_grammar():
mount_matrix = Group(mount_matrix_row + ';' + mount_matrix_row + ';' + mount_matrix_row)('MOUNT_MATRIX')
xkb_setting = Optional(Word(alphanums + '+-/@._'))
+ # Although this set doesn't cover all of characters in database entries, it's enough for test targets.
+ name_literal = Word(printables + ' ')
+
props = (('MOUSE_DPI', Group(OneOrMore(dpi_setting))),
('MOUSE_WHEEL_CLICK_ANGLE', INTEGER),
('MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL', INTEGER),
@@ -153,6 +158,11 @@ def property_grammar():
('ACCEL_MOUNT_MATRIX', mount_matrix),
('ACCEL_LOCATION', Or(('display', 'base'))),
('PROXIMITY_NEAR_LEVEL', INTEGER),
+ ('IEEE1394_UNIT_FUNCTION_MIDI', Or((Literal('0'), Literal('1')))),
+ ('IEEE1394_UNIT_FUNCTION_AUDIO', Or((Literal('0'), Literal('1')))),
+ ('IEEE1394_UNIT_FUNCTION_VIDEO', Or((Literal('0'), Literal('1')))),
+ ('ID_VENDOR_FROM_DATABASE', name_literal),
+ ('ID_MODEL_FROM_DATABASE', name_literal),
)
fixed_props = [Literal(name)('NAME') - Suppress('=') - val('VALUE')
for name, val in props]
diff --git a/rules.d/50-udev-default.rules.in b/rules.d/50-udev-default.rules.in
index edfa8bb107..dabde06dde 100644
--- a/rules.d/50-udev-default.rules.in
+++ b/rules.d/50-udev-default.rules.in
@@ -54,6 +54,16 @@ SUBSYSTEM=="firewire", ATTR{units}=="*0x00b09d:0x00010*", GROUP="video"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x010001*", GROUP="video"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x014001*", GROUP="video"
+SUBSYSTEM=="firewire", TEST=="units", TEST=="model", \
+ IMPORT{builtin}="hwdb 'ieee1394:node:ven$attr{vendor}mo$attr{model}units$attr{units}'"
+
+SUBSYSTEM=="firewire", TEST=="units", TEST!="model", \
+ IMPORT{builtin}="hwdb 'ieee1394:node:ven$attr{vendor}units$attr{units}'"
+
+SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_MIDI}=="1", GROUP="audio"
+SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_AUDIO}=="1", GROUP="audio"
+SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_VIDEO}=="1", GROUP="video"
+
KERNEL=="parport[0-9]*", GROUP="lp"
SUBSYSTEM=="printer", KERNEL=="lp*", GROUP="lp"
SUBSYSTEM=="ppdev", GROUP="lp"
diff --git a/src/login/70-uaccess.rules.m4 b/src/login/70-uaccess.rules.m4
index 45e4adfa0f..f621c684dd 100644
--- a/src/login/70-uaccess.rules.m4
+++ b/src/login/70-uaccess.rules.m4
@@ -44,6 +44,10 @@ SUBSYSTEM=="firewire", ATTR{units}=="*0x00b09d:0x00010*", TAG+="uaccess"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x010001*", TAG+="uaccess"
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x014001*", TAG+="uaccess"
+SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_MIDI}=="1", TAG+="uaccess"
+SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_AUDIO}=="1", TAG+="uaccess"
+SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_VIDEO}=="1", TAG+="uaccess"
+
# DRI video devices
SUBSYSTEM=="drm", KERNEL=="card*", TAG+="uaccess"
m4_ifdef(`GROUP_RENDER_UACCESS',``