![Shuah Khan](/assets/img/avatar_default.png)
Media Device Allocator API to allows multiple drivers share a media device. This API solves a very common use-case for media devices where one physical device (an USB stick) provides both audio and video. When such media device exposes a standard USB Audio class, a proprietary Video class, two or more independent drivers will share a single physical USB bridge. In such cases, it is necessary to coordinate access to the shared resource. Using this API, drivers can allocate a media device with the shared struct device as the key. Once the media device is allocated by a driver, other drivers can get a reference to it. The media device is released when all the references are released. Change the ALSA driver to use the Media Controller API to share media resources with DVB, and V4L2 drivers on a AU0828 media device. The Media Controller specific initialization is done after sound card is registered. ALSA creates Media interface and entity function graph nodes for Control, Mixer, PCM Playback, and PCM Capture devices. snd_usb_hw_params() will call Media Controller enable source handler interface to request the media resource. If resource request is granted, it will release it from snd_usb_hw_free(). If resource is busy, -EBUSY is returned. Media specific cleanup is done in usb_audio_disconnect(). Reviewed-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Shuah Khan <shuah@kernel.org> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
171 lines
4.7 KiB
Plaintext
171 lines
4.7 KiB
Plaintext
# ALSA USB drivers
|
|
|
|
menuconfig SND_USB
|
|
bool "USB sound devices"
|
|
depends on USB
|
|
default y
|
|
help
|
|
Support for sound devices connected via the USB bus.
|
|
|
|
if SND_USB && USB
|
|
|
|
config SND_USB_AUDIO
|
|
tristate "USB Audio/MIDI driver"
|
|
select SND_HWDEP
|
|
select SND_RAWMIDI
|
|
select SND_PCM
|
|
select BITREVERSE
|
|
select SND_USB_AUDIO_USE_MEDIA_CONTROLLER if MEDIA_CONTROLLER && (MEDIA_SUPPORT=y || MEDIA_SUPPORT=SND_USB_AUDIO)
|
|
help
|
|
Say Y here to include support for USB audio and USB MIDI
|
|
devices.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-usb-audio.
|
|
|
|
config SND_USB_AUDIO_USE_MEDIA_CONTROLLER
|
|
bool
|
|
|
|
config SND_USB_UA101
|
|
tristate "Edirol UA-101/UA-1000 driver"
|
|
select SND_PCM
|
|
select SND_RAWMIDI
|
|
help
|
|
Say Y here to include support for the Edirol UA-101 and UA-1000
|
|
audio/MIDI interfaces.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-ua101.
|
|
|
|
config SND_USB_USX2Y
|
|
tristate "Tascam US-122, US-224 and US-428 USB driver"
|
|
depends on X86 || PPC || ALPHA
|
|
select SND_HWDEP
|
|
select SND_RAWMIDI
|
|
select SND_PCM
|
|
help
|
|
Say Y here to include support for Tascam USB Audio/MIDI
|
|
interfaces or controllers US-122, US-224 and US-428.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-usb-usx2y.
|
|
|
|
config SND_USB_CAIAQ
|
|
tristate "Native Instruments USB audio devices"
|
|
select SND_HWDEP
|
|
select SND_RAWMIDI
|
|
select SND_PCM
|
|
help
|
|
Say Y here to include support for caiaq USB audio interfaces,
|
|
namely:
|
|
|
|
* Native Instruments RigKontrol2
|
|
* Native Instruments RigKontrol3
|
|
* Native Instruments Kore Controller
|
|
* Native Instruments Kore Controller 2
|
|
* Native Instruments Audio Kontrol 1
|
|
* Native Instruments Audio 2 DJ
|
|
* Native Instruments Audio 4 DJ
|
|
* Native Instruments Audio 8 DJ
|
|
* Native Instruments Traktor Audio 2
|
|
* Native Instruments Guitar Rig Session I/O
|
|
* Native Instruments Guitar Rig mobile
|
|
* Native Instruments Traktor Kontrol X1
|
|
* Native Instruments Traktor Kontrol S4
|
|
* Native Instruments Maschine Controller
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-usb-caiaq.
|
|
|
|
config SND_USB_CAIAQ_INPUT
|
|
bool "enable input device for controllers"
|
|
depends on SND_USB_CAIAQ
|
|
depends on INPUT=y || INPUT=SND_USB_CAIAQ
|
|
help
|
|
Say Y here to support input controllers like buttons, knobs,
|
|
alpha dials and analog pedals on the following products:
|
|
|
|
* Native Instruments RigKontrol2
|
|
* Native Instruments RigKontrol3
|
|
* Native Instruments Kore Controller
|
|
* Native Instruments Kore Controller 2
|
|
* Native Instruments Audio Kontrol 1
|
|
* Native Instruments Traktor Kontrol S4
|
|
* Native Instruments Maschine Controller
|
|
|
|
config SND_USB_US122L
|
|
tristate "Tascam US-122L USB driver"
|
|
depends on X86 || COMPILE_TEST
|
|
select SND_HWDEP
|
|
select SND_RAWMIDI
|
|
help
|
|
Say Y here to include support for Tascam US-122L USB Audio/MIDI
|
|
interfaces.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-usb-us122l.
|
|
|
|
config SND_USB_6FIRE
|
|
tristate "TerraTec DMX 6Fire USB"
|
|
select FW_LOADER
|
|
select BITREVERSE
|
|
select SND_RAWMIDI
|
|
select SND_PCM
|
|
select SND_VMASTER
|
|
help
|
|
Say Y here to include support for TerraTec 6fire DMX USB interface.
|
|
|
|
You will need firmware files in order to be able to use the device
|
|
after it has been coldstarted. An install script for the firmware
|
|
and further help can be found at
|
|
http://sixfireusb.sourceforge.net
|
|
|
|
config SND_USB_HIFACE
|
|
tristate "M2Tech hiFace USB-SPDIF driver"
|
|
select SND_PCM
|
|
help
|
|
Select this option to include support for M2Tech hiFace USB-SPDIF
|
|
interface.
|
|
|
|
This driver supports the original M2Tech hiFace and some other
|
|
compatible devices. The supported products are:
|
|
|
|
* M2Tech Young
|
|
* M2Tech hiFace
|
|
* M2Tech North Star
|
|
* M2Tech W4S Young
|
|
* M2Tech Corrson
|
|
* M2Tech AUDIA
|
|
* M2Tech SL Audio
|
|
* M2Tech Empirical
|
|
* M2Tech Rockna
|
|
* M2Tech Pathos
|
|
* M2Tech Metronome
|
|
* M2Tech CAD
|
|
* M2Tech Audio Esclusive
|
|
* M2Tech Rotel
|
|
* M2Tech Eeaudio
|
|
* The Chord Company CHORD
|
|
* AVA Group A/S Vitus
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-usb-hiface.
|
|
|
|
config SND_BCD2000
|
|
tristate "Behringer BCD2000 MIDI driver"
|
|
select SND_RAWMIDI
|
|
help
|
|
Say Y here to include MIDI support for the Behringer BCD2000 DJ
|
|
controller.
|
|
|
|
Audio support is still work-in-progress at
|
|
https://github.com/anyc/snd-usb-bcd2000
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-bcd2000.
|
|
|
|
source "sound/usb/line6/Kconfig"
|
|
|
|
endif # SND_USB
|
|
|