2019-05-19 20:07:45 +08:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
2011-03-15 14:53:21 +08:00
|
|
|
menuconfig SND_FIREWIRE
|
|
|
|
bool "FireWire sound devices"
|
|
|
|
depends on FIREWIRE
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Support for IEEE-1394/FireWire/iLink sound devices.
|
|
|
|
|
|
|
|
if SND_FIREWIRE && FIREWIRE
|
|
|
|
|
|
|
|
config SND_FIREWIRE_LIB
|
|
|
|
tristate
|
2014-05-30 16:15:58 +08:00
|
|
|
select SND_PCM
|
|
|
|
select SND_RAWMIDI
|
2011-03-15 14:53:21 +08:00
|
|
|
|
2011-09-05 04:04:49 +08:00
|
|
|
config SND_DICE
|
2014-11-28 23:59:24 +08:00
|
|
|
tristate "DICE-based DACs support"
|
2011-09-05 04:04:49 +08:00
|
|
|
select SND_HWDEP
|
|
|
|
select SND_FIREWIRE_LIB
|
|
|
|
help
|
2013-10-16 02:26:05 +08:00
|
|
|
Say Y here to include support for many DACs based on the DICE
|
2014-11-28 23:59:24 +08:00
|
|
|
chip family (DICE-II/Jr/Mini) which TC Applied Technologies produces.
|
2013-10-16 02:26:05 +08:00
|
|
|
|
2011-09-05 04:04:49 +08:00
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called snd-dice.
|
|
|
|
|
2014-11-28 23:59:25 +08:00
|
|
|
config SND_OXFW
|
|
|
|
tristate "Oxford Semiconductor FW970/971 chipset support"
|
2011-03-15 14:53:21 +08:00
|
|
|
select SND_FIREWIRE_LIB
|
2014-12-08 23:10:49 +08:00
|
|
|
select SND_HWDEP
|
2011-03-15 14:53:21 +08:00
|
|
|
help
|
2014-11-28 23:59:25 +08:00
|
|
|
Say Y here to include support for FireWire devices based on
|
|
|
|
Oxford Semiconductor FW970/971 chipset.
|
|
|
|
* Griffin Firewave
|
|
|
|
* LaCie Firewire Speakers
|
2014-12-08 23:10:45 +08:00
|
|
|
* Behringer F-Control Audio 202
|
|
|
|
* Mackie(Loud) Onyx-i series (former models)
|
ALSA: oxfw: add support for Mackie Onyx 1640i
As of kernel 4.10, ALSA OXFW driver has no entry for Onyx 1640i produced
by Mackie (Loud Technologies). This commit supplement it.
I note that there're two models produced by Mackie (Loud Technologies),
which have the same name 'Onyx 1640i'. The former model based on OXFW970,
the latter model based on Dice. This is probably due to low quality of
communication of OXFW series.
Additionally, the tester reports his or her experiences to get unexpected
result at higher sampling transmission frequency as 88.2/96.0 kHz. We
didn't have further investigation yet[0].
$ ./linux-firewire-utils/src/crpp < config_rom
ROM header and bus information block
-----------------------------------------------------------------
400 042525ce bus_info_length 4, crc_length 37, crc 9678
404 31333934 bus_name "1394"
408 20ff5003 irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 255, max_rec 5 (64)
40c 000ff205 company_id 000ff2 |
410 00000fcf device_id 0500000fcf | EUI-64 000ff20500000fcf
root directory
-----------------------------------------------------------------
414 0006c1b7 directory_length 6, crc 49591
418 03000ff2 vendor
41c 8100000a --> descriptor leaf at 444
420 17001640 model
424 81000011 --> descriptor leaf at 468
428 0c0083c0 node capabilities per IEEE 1394
42c d1000001 --> unit directory at 430
unit directory at 430
-----------------------------------------------------------------
430 00040b97 directory_length 4, crc 2967
434 1200a02d specifier id: 1394 TA
438 13010001 version: AV/C
43c 17001640 model
440 81000010 --> descriptor leaf at 480
descriptor leaf at 444
-----------------------------------------------------------------
444 0008a886 leaf_length 8, crc 43142
448 00000000 textual descriptor
44c 00000000 minimal ASCII
450 4c6f7564 "Loud"
454 20546563 " Tec"
458 686e6f6c "hnol"
45c 6f676965 "ogie"
460 7320496e "s In"
464 632e0000 "c."
descriptor leaf at 468
-----------------------------------------------------------------
468 00059fcf leaf_length 5, crc 40911
46c 00000000 textual descriptor
470 00000000 minimal ASCII
474 4f6e7978 "Onyx"
478 20313634 " 164"
47c 30690000 "0i"
descriptor leaf at 480
-----------------------------------------------------------------
480 00059fcf leaf_length 5, crc 40911
484 00000000 textual descriptor
488 00000000 minimal ASCII
48c 4f6e7978 "Onyx"
490 20313634 " 164"
494 30690000 "0i"
[0]: [FFADO-user] Mackie 1640i issues (finer details)
https://sourceforge.net/p/ffado/mailman/message/35229260/
Tested-by: Seth O'Bannion <saobannion@gmail.com>
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-03 10:36:08 +08:00
|
|
|
* Mackie(Loud) Onyx 1640i (former model)
|
2014-12-08 23:10:45 +08:00
|
|
|
* Mackie(Loud) Onyx Satellite
|
|
|
|
* Mackie(Loud) Tapco Link.Firewire
|
|
|
|
* Mackie(Loud) d.2 pro/d.4 pro
|
|
|
|
* Mackie(Loud) U.420/U.420d
|
2015-11-08 13:46:34 +08:00
|
|
|
* TASCAM FireOne
|
2015-12-22 08:15:45 +08:00
|
|
|
* Stanton Controllers & Systems 1 Deck/Mixer
|
ALSA: oxfw: add support for APOGEE duet FireWire
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>
2018-11-13 11:01:30 +08:00
|
|
|
* APOGEE duet FireWire
|
2011-03-15 14:53:21 +08:00
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module
|
2014-11-28 23:59:25 +08:00
|
|
|
will be called snd-oxfw.
|
2011-03-15 14:53:21 +08:00
|
|
|
|
2011-05-11 16:44:51 +08:00
|
|
|
config SND_ISIGHT
|
2011-05-11 16:54:41 +08:00
|
|
|
tristate "Apple iSight microphone"
|
2011-05-11 16:44:51 +08:00
|
|
|
select SND_FIREWIRE_LIB
|
|
|
|
help
|
|
|
|
Say Y here to include support for the front and rear microphones
|
|
|
|
of the Apple iSight web camera.
|
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called snd-isight.
|
|
|
|
|
2014-04-25 21:45:00 +08:00
|
|
|
config SND_FIREWORKS
|
|
|
|
tristate "Echo Fireworks board module support"
|
2014-04-25 21:45:01 +08:00
|
|
|
select SND_FIREWIRE_LIB
|
2014-04-25 21:45:12 +08:00
|
|
|
select SND_HWDEP
|
2014-04-25 21:45:00 +08:00
|
|
|
help
|
|
|
|
Say Y here to include support for FireWire devices based
|
|
|
|
on Echo Digital Audio Fireworks board:
|
|
|
|
* Mackie Onyx 400F/1200F
|
|
|
|
* Echo AudioFire12/8(until 2009 July)
|
|
|
|
* Echo AudioFire2/4/Pre8/8(since 2009 July)
|
|
|
|
* Echo Fireworks 8/HDMI
|
|
|
|
* Gibson Robot Interface Pack/GoldTop
|
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called snd-fireworks.
|
|
|
|
|
2014-04-25 21:45:14 +08:00
|
|
|
config SND_BEBOB
|
|
|
|
tristate "BridgeCo DM1000/DM1100/DM1500 with BeBoB firmware"
|
|
|
|
select SND_FIREWIRE_LIB
|
2014-04-25 21:45:20 +08:00
|
|
|
select SND_HWDEP
|
2019-10-04 22:49:31 +08:00
|
|
|
help
|
2014-04-25 21:45:14 +08:00
|
|
|
Say Y here to include support for FireWire devices based
|
|
|
|
on BridgeCo DM1000/DM1100/DM1500 with BeBoB firmware:
|
|
|
|
* Edirol FA-66/FA-101
|
|
|
|
* PreSonus FIREBOX/FIREPOD/FP10/Inspire1394
|
|
|
|
* BridgeCo RDAudio1/Audio5
|
2014-07-26 20:05:10 +08:00
|
|
|
* Mackie Onyx 1220/1620/1640 (FireWire I/O Card)
|
|
|
|
* Mackie d.2 (FireWire Option)
|
2014-04-25 21:45:14 +08:00
|
|
|
* Stanton FinalScratch 2 (ScratchAmp)
|
|
|
|
* Tascam IF-FW/DM
|
|
|
|
* Behringer XENIX UFX 1204/1604
|
|
|
|
* Behringer Digital Mixer X32 series (X-UF Card)
|
2015-06-14 11:49:37 +08:00
|
|
|
* Behringer FCA610/1616
|
2014-04-25 21:45:14 +08:00
|
|
|
* Apogee Rosetta 200/400 (X-FireWire card)
|
|
|
|
* Apogee DA/AD/DD-16X (X-FireWire card)
|
|
|
|
* Apogee Ensemble
|
2014-07-26 20:05:10 +08:00
|
|
|
* ESI QuataFire 610
|
2014-04-25 21:45:14 +08:00
|
|
|
* AcousticReality eARMasterOne
|
|
|
|
* CME MatrixKFW
|
|
|
|
* Phonic Helix Board 12 MkII/18 MkII/24 MkII
|
|
|
|
* Phonic Helix Board 12 Universal/18 Universal/24 Universal
|
|
|
|
* Lynx Aurora 8/16 (LT-FW)
|
|
|
|
* ICON FireXon
|
|
|
|
* PrismSound Orpheus/ADA-8XR
|
2014-04-25 21:45:22 +08:00
|
|
|
* TerraTec PHASE 24 FW/PHASE X24 FW/PHASE 88 Rack FW
|
2014-07-26 20:05:10 +08:00
|
|
|
* TerraTec EWS MIC2/EWS MIC8
|
|
|
|
* TerraTec Aureon 7.1 FireWire
|
2014-04-25 21:45:23 +08:00
|
|
|
* Yamaha GO44/GO46
|
2014-04-25 21:45:24 +08:00
|
|
|
* Focusrite Saffire/Saffire LE/SaffirePro10 IO/SaffirePro26 IO
|
2014-07-26 20:05:10 +08:00
|
|
|
* M-Audio FireWire410/AudioPhile/Solo
|
2014-04-25 21:45:25 +08:00
|
|
|
* M-Audio Ozonic/NRV10/ProfireLightBridge
|
2014-07-26 20:05:10 +08:00
|
|
|
* M-Audio FireWire 1814/ProjectMix IO
|
2015-05-24 19:51:45 +08:00
|
|
|
* Digidesign Mbox 2 Pro
|
2014-04-25 21:45:14 +08:00
|
|
|
|
2019-10-04 22:49:31 +08:00
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called snd-bebob.
|
2014-04-25 21:45:14 +08:00
|
|
|
|
2015-09-30 08:39:16 +08:00
|
|
|
config SND_FIREWIRE_DIGI00X
|
|
|
|
tristate "Digidesign Digi 002/003 family support"
|
|
|
|
select SND_FIREWIRE_LIB
|
2015-09-30 08:39:21 +08:00
|
|
|
select SND_HWDEP
|
2015-09-30 08:39:16 +08:00
|
|
|
help
|
|
|
|
Say Y here to include support for Digidesign Digi 002/003 family.
|
|
|
|
* Digi 002 Console
|
|
|
|
* Digi 002 Rack
|
|
|
|
* Digi 003 Console
|
|
|
|
* Digi 003 Rack
|
|
|
|
* Digi 003 Rack+
|
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called snd-firewire-digi00x.
|
|
|
|
|
2015-10-01 21:02:11 +08:00
|
|
|
config SND_FIREWIRE_TASCAM
|
|
|
|
tristate "TASCAM FireWire series support"
|
|
|
|
select SND_FIREWIRE_LIB
|
2015-10-01 21:02:17 +08:00
|
|
|
select SND_HWDEP
|
2015-10-01 21:02:11 +08:00
|
|
|
help
|
|
|
|
Say Y here to include support for TASCAM.
|
|
|
|
* FW-1884
|
|
|
|
* FW-1082
|
2016-03-27 15:09:09 +08:00
|
|
|
* FW-1804
|
2015-10-01 21:02:11 +08:00
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called snd-firewire-tascam.
|
|
|
|
|
2017-03-22 20:30:11 +08:00
|
|
|
config SND_FIREWIRE_MOTU
|
|
|
|
tristate "Mark of the unicorn FireWire series support"
|
|
|
|
select SND_FIREWIRE_LIB
|
|
|
|
select SND_HWDEP
|
|
|
|
help
|
|
|
|
Say Y here to enable support for FireWire devices which MOTU produced:
|
2017-03-22 20:30:26 +08:00
|
|
|
* 828mk2
|
2018-10-12 15:08:59 +08:00
|
|
|
* Traveler
|
ALSA: firewire-motu: add support for MOTU 828mk3 (FireWire/Hybrid) as a model with protocol version 3
MOTU 828mk3 (FireWire/Hybrid) is one of third generation in MOTU FireWire
series, produced in 2008/2014. This model consists of three chips for
functionality on IEEE 1394 bus:
* TI TSB41AB2 (Physical layer for IEEE 1394 bus)
* Xilinx Spartan-3E FPGA Family (Link layer for IEEE 1394 bus, packet
processing and data block processing layer)
* TI TMS320C6722 (Digital signal processing)
This commit adds a support for this model, with its unique protocol as
version 3. This protocol has some additional features to protocol
version 2.
* Support several optical interfaces.
* Support a data chunk for return of reverb effect.
* Have a quirk of tx packets.
* Support heartbeat asynchronous transaction.
In this protocol, series of transferred packets has some quirks. Below
fields in CIP headers of the packets are out of IEC 61883-1:
- SID (source node id): always 0x0d
- DBS (data block size): always 0x04
- DBC (data block counter): always 0x00
- EOH (End of header): always 0x00
Below is an actual sample of transferred packets.
quads CIP1 CIP2
520 0x0D040400 0x22FFFFFF
8 0x0D040400 0x22FFFFFF
520 0x0D040400 0x22FFFFFF
520 0x0D040400 0x22FFFFFF
8 0x0D040400 0x22FFFFFF
Status of clock is configured by write transactions to 0x'ffff'f000'0b14,
as well as version 2, while meanings of fields are different from the
former protocols. Modes of optical interfaces are configured by write
transactions to 0x'ffff'f000'0c94.
Drivers can register its address to receive heatbeat transactions from the
unit. 0x'ffff'f000'0b0c is for the higher part and 0x'ffff'f000'0b10 is
for the lower part. Nevertheless, this feature is not useless for this
driver and this commit omits it.
Each data block consists of two parts in a point of the number of included
data chunks. In both of 'fixed' and 'differed' parts, the number of
included data blocks are a multiple of 4, thus depending on models there's
some empty data chunks. For example, 828mk3 includes one pair of empty
data chunks in its fixed part. When optical interface is configured to
S/PDIF, 828mk3 includes one pair of empty data chunks in its differed part.
To reduce consumption of CPU cycles with additional conditions/loops, this
commit just exposes these empty chunks to user space as PCM channels.
Additionally, 828mk3 has a non-negligible overhead to change its sampling
transfer frequency. When softwares send asynchronous transaction to
perform it, LED on the unit starts to blink. In a worst case, it continues
blink during several seconds; e.g. 10 seconds. When stopping blinking,
the unit seems to be prepared for the requested sampling transfer
frequency. To wait for the preparation, this commit forces the driver
to call task scheduler and applications sleeps for 4 seconds.
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-03-22 20:30:28 +08:00
|
|
|
* 828mk3
|
2018-10-12 15:08:59 +08:00
|
|
|
* Audio Express
|
2017-03-22 20:30:11 +08:00
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called snd-firewire-motu.
|
|
|
|
|
2017-03-31 21:05:59 +08:00
|
|
|
config SND_FIREFACE
|
|
|
|
tristate "RME Fireface series support"
|
|
|
|
select SND_FIREWIRE_LIB
|
2017-03-31 21:06:11 +08:00
|
|
|
select SND_HWDEP
|
2017-03-31 21:05:59 +08:00
|
|
|
help
|
|
|
|
Say Y here to include support for RME fireface series.
|
ALSA: fireface: add support for Fireface 400
Fireface 400 is a second model of RME Fireface series, released in 2006.
This commit adds support for this model.
This model supports 8 analog channels, 2 S/PDIF channels and 8 ADAT
channels in both of tx/rx packet. The number of ADAT channels differs
depending on each mode of sampling transmission frequency.
$ python2 linux-firewire-utils/src/crpp < /sys/bus/firewire/devices/fw1/config_rom
ROM header and bus information block
-----------------------------------------------------------------
400 04107768 bus_info_length 4, crc_length 16, crc 30568 (should be 61311)
404 31333934 bus_name "1394"
408 20009002 irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 0, max_rec 9 (1024)
40c 000a3501 company_id 000a35 |
410 1bd0862a device_id 011bd0862a | EUI-64 000a35011bd0862a
root directory
-----------------------------------------------------------------
414 000485ec directory_length 4, crc 34284
418 03000a35 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 000314c4 directory_length 3, crc 5316
42c 12000a35 specifier id
430 13000002 version
434 17101800 model
eui-64 leaf at 438
-----------------------------------------------------------------
438 000261a8 leaf_length 2, crc 25000
43c 000a3501 company_id 000a35 |
440 1bd0862a device_id 011bd0862a | EUI-64 000a35011bd0862a
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-03-31 21:06:12 +08:00
|
|
|
* Fireface 400
|
2018-12-11 18:17:35 +08:00
|
|
|
* Fireface 800
|
2020-05-10 15:43:01 +08:00
|
|
|
* Fireface UFX
|
2019-01-20 16:25:53 +08:00
|
|
|
* Fireface UCX
|
ALSA: fireface: add support for RME FireFace 802
Fireface 802 was shipped by RME GmbH in 2014. This model supports later
protocol for management of isochronous communication and synchronization
of sampling transmission frequency.
This model consists of below ICs:
* TI TSB41AB2
* Xilinx Spartan-6 FPGA XC6SLX16
* TI TMS320 C6747
* SMSC USB3250
Especially, this model just supports IEEE 1394a, against its name which
evokes Fireface 800.
This commit adds support for Fireface 802 (tested). Userspace applications
can transfer PCM frames and MIDI messages via ALSA PCM/Rawmidi interface.
I note that 4 channels for ADAt1 and ADAT2 are disabled at higher sampling
transfer frequency since isochronous resources reservation fails due to
bandwidth limitation of IEEE 1394a.
The value read from LATTER_SYNC_STATUS register is slightly different
from the one of Fireface UCX. The higher 4 bits and lower 4 bits are
swapped within the same byte.
Without any assist of userspace application, transmitted MIDI messages
from the device are not going to be processed. For detail, please refer
to my comment in code of latter protocol.
$ python crpp < /sys/bus/firewire/devices/fw1/config_rom
ROM header and bus information block
-----------------------------------------------------------------
400 0404ffff bus_info_length 4, crc_length 4, crc 65535 (should be 26805)
404 31333934 bus_name "1394"
408 20008000 irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 0, max_rec 8 (512)
40c 000a3504 company_id 000a35 |
410 38077423 device_id 0438077423 | EUI-64 000a350438077423
root directory
-----------------------------------------------------------------
414 0005ffff directory_length 5, crc 65535 (should be 9514)
418 0c0083c0 node capabilities per IEEE 1394
41c 03000a35 vendor
420 8100000b --> descriptor leaf at 44c
424 8d000007 --> eui-64 leaf at 440
428 d1000001 --> unit directory at 42c
unit directory at 42c
-----------------------------------------------------------------
42c 0004ffff directory_length 4, crc 65535 (should be 45134)
430 12000a35 specifier id
434 13000005 version
438 17101800 model
43c 81000008 --> descriptor leaf at 45c
eui-64 leaf at 440
-----------------------------------------------------------------
440 0002ffff leaf_length 2, crc 65535 (should be 60131)
444 000a3504 company_id 000a35 |
448 38077423 device_id 0438077423 | EUI-64 000a350438077423
descriptor leaf at 44c
-----------------------------------------------------------------
44c 0003ffff leaf_length 3, crc 65535 (should be 469)
450 00000000 textual descriptor
454 00000000 minimal ASCII
458 524d4521 "RME!"
descriptor leaf at 45c
-----------------------------------------------------------------
45c 0005ffff leaf_length 5, crc 65535 (should be 10561)
460 00000000 textual descriptor
464 00000000 minimal ASCII
468 46697265 "Fire"
46c 66616365 "face"
470 20383032 " 802"
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20200510074301.116224-6-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2020-05-10 15:43:00 +08:00
|
|
|
* Fireface 802
|
2017-03-31 21:05:59 +08:00
|
|
|
|
2011-03-15 14:53:21 +08:00
|
|
|
endif # SND_FIREWIRE
|