mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-11 21:14:07 +08:00
5992e30034
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>
156 lines
4.5 KiB
Plaintext
156 lines
4.5 KiB
Plaintext
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
|
|
select SND_PCM
|
|
select SND_RAWMIDI
|
|
|
|
config SND_DICE
|
|
tristate "DICE-based DACs support"
|
|
select SND_HWDEP
|
|
select SND_FIREWIRE_LIB
|
|
help
|
|
Say Y here to include support for many DACs based on the DICE
|
|
chip family (DICE-II/Jr/Mini) which TC Applied Technologies produces.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-dice.
|
|
|
|
config SND_OXFW
|
|
tristate "Oxford Semiconductor FW970/971 chipset support"
|
|
select SND_FIREWIRE_LIB
|
|
select SND_HWDEP
|
|
help
|
|
Say Y here to include support for FireWire devices based on
|
|
Oxford Semiconductor FW970/971 chipset.
|
|
* Griffin Firewave
|
|
* LaCie Firewire Speakers
|
|
* Behringer F-Control Audio 202
|
|
* Mackie(Loud) Onyx-i series (former models)
|
|
* Mackie(Loud) Onyx 1640i (former model)
|
|
* Mackie(Loud) Onyx Satellite
|
|
* Mackie(Loud) Tapco Link.Firewire
|
|
* Mackie(Loud) d.2 pro/d.4 pro
|
|
* Mackie(Loud) U.420/U.420d
|
|
* TASCAM FireOne
|
|
* Stanton Controllers & Systems 1 Deck/Mixer
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-oxfw.
|
|
|
|
config SND_ISIGHT
|
|
tristate "Apple iSight microphone"
|
|
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.
|
|
|
|
config SND_FIREWORKS
|
|
tristate "Echo Fireworks board module support"
|
|
select SND_FIREWIRE_LIB
|
|
select SND_HWDEP
|
|
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.
|
|
|
|
config SND_BEBOB
|
|
tristate "BridgeCo DM1000/DM1100/DM1500 with BeBoB firmware"
|
|
select SND_FIREWIRE_LIB
|
|
select SND_HWDEP
|
|
help
|
|
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
|
|
* Mackie Onyx 1220/1620/1640 (FireWire I/O Card)
|
|
* Mackie d.2 (FireWire Option)
|
|
* Stanton FinalScratch 2 (ScratchAmp)
|
|
* Tascam IF-FW/DM
|
|
* Behringer XENIX UFX 1204/1604
|
|
* Behringer Digital Mixer X32 series (X-UF Card)
|
|
* Behringer FCA610/1616
|
|
* Apogee Rosetta 200/400 (X-FireWire card)
|
|
* Apogee DA/AD/DD-16X (X-FireWire card)
|
|
* Apogee Ensemble
|
|
* ESI QuataFire 610
|
|
* 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
|
|
* TerraTec PHASE 24 FW/PHASE X24 FW/PHASE 88 Rack FW
|
|
* TerraTec EWS MIC2/EWS MIC8
|
|
* TerraTec Aureon 7.1 FireWire
|
|
* Yamaha GO44/GO46
|
|
* Focusrite Saffire/Saffire LE/SaffirePro10 IO/SaffirePro26 IO
|
|
* M-Audio FireWire410/AudioPhile/Solo
|
|
* M-Audio Ozonic/NRV10/ProfireLightBridge
|
|
* M-Audio FireWire 1814/ProjectMix IO
|
|
* Digidesign Mbox 2 Pro
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-bebob.
|
|
|
|
config SND_FIREWIRE_DIGI00X
|
|
tristate "Digidesign Digi 002/003 family support"
|
|
select SND_FIREWIRE_LIB
|
|
select SND_HWDEP
|
|
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.
|
|
|
|
config SND_FIREWIRE_TASCAM
|
|
tristate "TASCAM FireWire series support"
|
|
select SND_FIREWIRE_LIB
|
|
select SND_HWDEP
|
|
help
|
|
Say Y here to include support for TASCAM.
|
|
* FW-1884
|
|
* FW-1082
|
|
* FW-1804
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-firewire-tascam.
|
|
|
|
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:
|
|
* 828mk2
|
|
* 828mk3
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-firewire-motu.
|
|
|
|
endif # SND_FIREWIRE
|