xref: /linux/sound/drivers/Kconfig (revision a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvaldsconfig SND_MPU401_UART
31da177e4SLinus Torvalds	tristate
41da177e4SLinus Torvalds	select SND_RAWMIDI
51da177e4SLinus Torvalds
61da177e4SLinus Torvaldsconfig SND_OPL3_LIB
71da177e4SLinus Torvalds	tristate
81da177e4SLinus Torvalds	select SND_TIMER
91da177e4SLinus Torvalds	select SND_HWDEP
10111b0cdbSTakashi Iwai	select SND_SEQ_DEVICE if SND_SEQUENCER != n
111da177e4SLinus Torvalds
121da177e4SLinus Torvaldsconfig SND_OPL4_LIB
131da177e4SLinus Torvalds	tristate
141da177e4SLinus Torvalds	select SND_TIMER
151da177e4SLinus Torvalds	select SND_HWDEP
16111b0cdbSTakashi Iwai	select SND_SEQ_DEVICE if SND_SEQUENCER != n
171da177e4SLinus Torvalds
180181307aSTakashi Iwai# select SEQ stuff to min(SND_SEQUENCER,SND_XXX)
190181307aSTakashi Iwaiconfig SND_OPL3_LIB_SEQ
200181307aSTakashi Iwai	def_tristate SND_SEQUENCER && SND_OPL3_LIB
210181307aSTakashi Iwai	select SND_SEQ_MIDI_EMUL
220181307aSTakashi Iwai	select SND_SEQ_MIDI_EVENT
230181307aSTakashi Iwai
240181307aSTakashi Iwaiconfig SND_OPL4_LIB_SEQ
250181307aSTakashi Iwai	def_tristate SND_SEQUENCER && SND_OPL4_LIB
260181307aSTakashi Iwai	select SND_SEQ_MIDI_EMUL
270181307aSTakashi Iwai	select SND_SEQ_MIDI_EVENT
280181307aSTakashi Iwai
291da177e4SLinus Torvaldsconfig SND_VX_LIB
301da177e4SLinus Torvalds	tristate
310d144de9STakashi Iwai	select FW_LOADER
321da177e4SLinus Torvalds	select SND_HWDEP
331da177e4SLinus Torvalds	select SND_PCM
341da177e4SLinus Torvalds
359056412fSRandy Dunlapconfig SND_AC97_CODEC
369056412fSRandy Dunlap	tristate
379056412fSRandy Dunlap	select SND_PCM
38e1036502SNicolas Pitre	select AC97_BUS
3987af38daSDaniel Jacobowitz	select SND_VMASTER
401da177e4SLinus Torvalds
4189fe5117STakashi Iwaimenuconfig SND_DRIVERS
4289fe5117STakashi Iwai	bool "Generic sound devices"
4389fe5117STakashi Iwai	default y
4489fe5117STakashi Iwai	help
4589fe5117STakashi Iwai	  Support for generic sound devices.
4689fe5117STakashi Iwai
4789fe5117STakashi Iwaiif SND_DRIVERS
4889fe5117STakashi Iwai
4989fe5117STakashi Iwaiconfig SND_PCSP
5089fe5117STakashi Iwai	tristate "PC-Speaker support (READ HELP!)"
514272ebfbSYinghai Lu	depends on PCSPKR_PLATFORM && X86 && HIGH_RES_TIMERS
5289fe5117STakashi Iwai	depends on INPUT
5389fe5117STakashi Iwai	select SND_PCM
5489fe5117STakashi Iwai	help
5589fe5117STakashi Iwai	  If you don't have a sound card in your computer, you can include a
5689fe5117STakashi Iwai	  driver for the PC speaker which allows it to act like a primitive
5789fe5117STakashi Iwai	  sound card.
5889fe5117STakashi Iwai	  This driver also replaces the pcspkr driver for beeps.
5989fe5117STakashi Iwai
6089fe5117STakashi Iwai	  You can compile this as a module which will be called snd-pcsp.
6189fe5117STakashi Iwai
6289fe5117STakashi Iwai	  WARNING: if you already have a soundcard, enabling this
6389fe5117STakashi Iwai	  driver may lead to a problem. Namely, it may get loaded
6489fe5117STakashi Iwai	  before the other sound driver of yours, making the
6589fe5117STakashi Iwai	  pc-speaker a default sound device. Which is likely not
6689fe5117STakashi Iwai	  what you want. To make this driver play nicely with other
67970e2486SLucas De Marchi	  sound driver, you can add this in a configuration file under
68970e2486SLucas De Marchi	  /etc/modprobe.d/ directory:
6989fe5117STakashi Iwai	  options snd-pcsp index=2
7089fe5117STakashi Iwai
7189fe5117STakashi Iwai	  You don't need this driver if you only want your pc-speaker to beep.
7289fe5117STakashi Iwai	  You don't need this driver if you have a tablet piezo beeper
7389fe5117STakashi Iwai	  in your PC instead of the real speaker.
7489fe5117STakashi Iwai
7589fe5117STakashi Iwai	  Say N if you have a sound card.
7689fe5117STakashi Iwai	  Say M if you don't.
7789fe5117STakashi Iwai	  Say Y only if you really know what you do.
7889fe5117STakashi Iwai
791da177e4SLinus Torvaldsconfig SND_DUMMY
801da177e4SLinus Torvalds	tristate "Dummy (/dev/null) soundcard"
811da177e4SLinus Torvalds	select SND_PCM
821da177e4SLinus Torvalds	help
831da177e4SLinus Torvalds	  Say Y here to include the dummy driver.  This driver does
841da177e4SLinus Torvalds	  nothing, but emulates various mixer controls and PCM devices.
851da177e4SLinus Torvalds
861da177e4SLinus Torvalds	  You don't need this unless you're testing the hardware support
871da177e4SLinus Torvalds	  of programs using the ALSA API.
881da177e4SLinus Torvalds
891da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
901da177e4SLinus Torvalds	  will be called snd-dummy.
911da177e4SLinus Torvalds
92597603d6SJaroslav Kyselaconfig SND_ALOOP
93597603d6SJaroslav Kysela	tristate "Generic loopback driver (PCM)"
94597603d6SJaroslav Kysela	select SND_PCM
95c6b6fc20STakashi Iwai	select SND_TIMER
96597603d6SJaroslav Kysela	help
97597603d6SJaroslav Kysela	  Say 'Y' or 'M' to include support for the PCM loopback device.
98597603d6SJaroslav Kysela	  This module returns played samples back to the user space using
99597603d6SJaroslav Kysela	  the standard ALSA PCM device. The devices are routed 0->1 and
100597603d6SJaroslav Kysela	  1->0, where first number is the playback PCM device and second
101597603d6SJaroslav Kysela	  number is the capture device. Module creates two PCM devices and
102597603d6SJaroslav Kysela	  configured number of substreams (see the pcm_substreams module
103597603d6SJaroslav Kysela	  parameter).
104597603d6SJaroslav Kysela
105e6c0a088SColin Ian King	  The loopback device allows time synchronization with an external
106597603d6SJaroslav Kysela	  timing source using the time shift universal control (+-20%
107597603d6SJaroslav Kysela	  of system time).
108597603d6SJaroslav Kysela
109597603d6SJaroslav Kysela	  To compile this driver as a module, choose M here: the module
110597603d6SJaroslav Kysela	  will be called snd-aloop.
111597603d6SJaroslav Kysela
112315a3d57SIvan Orlovconfig SND_PCMTEST
113315a3d57SIvan Orlov	tristate "Virtual PCM test driver"
114*828b871aSRuan Jinjie	depends on DEBUG_FS
115315a3d57SIvan Orlov	select SND_PCM
116315a3d57SIvan Orlov	help
117315a3d57SIvan Orlov	  Say 'Y' or 'M' to include support for the Virtual PCM test driver.
118315a3d57SIvan Orlov	  This driver is aimed at extended testing of the userspace applications
119315a3d57SIvan Orlov	  which use the ALSA API, as well as the PCM middle layer testing.
120315a3d57SIvan Orlov
121315a3d57SIvan Orlov	  It can generate random or pattern-based data into the capture stream,
122315a3d57SIvan Orlov	  check the playback stream for containing the selected pattern, inject
123315a3d57SIvan Orlov	  time delays during capture/playback, redefine the RESET ioctl operation
124315a3d57SIvan Orlov	  to perform the PCM middle layer testing and inject errors during the
125315a3d57SIvan Orlov	  PCM callbacks. It supports both interleaved and non-interleaved access
126315a3d57SIvan Orlov	  modes. You can find the corresponding selftest in the 'alsa'
127315a3d57SIvan Orlov	  selftests folder.
128315a3d57SIvan Orlov
1291da177e4SLinus Torvaldsconfig SND_VIRMIDI
1301da177e4SLinus Torvalds	tristate "Virtual MIDI soundcard"
1311da177e4SLinus Torvalds	depends on SND_SEQUENCER
1321da177e4SLinus Torvalds	select SND_TIMER
1331da177e4SLinus Torvalds	select SND_RAWMIDI
1340181307aSTakashi Iwai	select SND_SEQ_VIRMIDI
1350181307aSTakashi Iwai	select SND_SEQ_MIDI_EVENT
1361da177e4SLinus Torvalds	help
1371da177e4SLinus Torvalds	  Say Y here to include the virtual MIDI driver.  This driver
1381da177e4SLinus Torvalds	  allows to connect applications using raw MIDI devices to
1391da177e4SLinus Torvalds	  sequencer clients.
1401da177e4SLinus Torvalds
1411da177e4SLinus Torvalds	  If you don't know what MIDI is, say N here.
1421da177e4SLinus Torvalds
1431da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
1441da177e4SLinus Torvalds	  will be called snd-virmidi.
1451da177e4SLinus Torvalds
1461da177e4SLinus Torvaldsconfig SND_MTPAV
1471da177e4SLinus Torvalds	tristate "MOTU MidiTimePiece AV multiport MIDI"
14836a52ae6SNiklas Schnelle	depends on HAS_IOPORT
1491da177e4SLinus Torvalds	select SND_RAWMIDI
1501da177e4SLinus Torvalds	help
1511da177e4SLinus Torvalds	  To use a MOTU MidiTimePiece AV multiport MIDI adapter
1521da177e4SLinus Torvalds	  connected to the parallel port, say Y here and make sure that
1531da177e4SLinus Torvalds	  the standard parallel port driver isn't used for the port.
1541da177e4SLinus Torvalds
1551da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
1561da177e4SLinus Torvalds	  will be called snd-mtpav.
1571da177e4SLinus Torvalds
15868ab801eSMatthias Koenigconfig SND_MTS64
15968ab801eSMatthias Koenig	tristate "ESI Miditerminal 4140 driver"
16089fe5117STakashi Iwai	depends on PARPORT
16168ab801eSMatthias Koenig	select SND_RAWMIDI
16268ab801eSMatthias Koenig	help
16368ab801eSMatthias Koenig	  The ESI Miditerminal 4140 is a 4 In 4 Out MIDI Interface with
16468ab801eSMatthias Koenig	  additional SMPTE Timecode capabilities for the parallel port.
16568ab801eSMatthias Koenig
16668ab801eSMatthias Koenig	  Say 'Y' to include support for this device.
16768ab801eSMatthias Koenig
16868ab801eSMatthias Koenig	  To compile this driver as a module, chose 'M' here: the module
16968ab801eSMatthias Koenig	  will be called snd-mts64.
17068ab801eSMatthias Koenig
1711da177e4SLinus Torvaldsconfig SND_SERIAL_U16550
1721da177e4SLinus Torvalds	tristate "UART16550 serial MIDI driver"
17336a52ae6SNiklas Schnelle	depends on HAS_IOPORT
1741da177e4SLinus Torvalds	select SND_RAWMIDI
1751da177e4SLinus Torvalds	help
1761da177e4SLinus Torvalds	  To include support for MIDI serial port interfaces, say Y here
1775fb94e9cSMauro Carvalho Chehab	  and read <file:Documentation/sound/cards/serial-u16550.rst>.
1781da177e4SLinus Torvalds	  This driver works with serial UARTs 16550 and better.
1791da177e4SLinus Torvalds
1801da177e4SLinus Torvalds	  This driver accesses the serial port hardware directly, so
1811da177e4SLinus Torvalds	  make sure that the standard serial driver isn't used or
1821da177e4SLinus Torvalds	  deactivated with setserial before loading this driver.
1831da177e4SLinus Torvalds
1841da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
1851da177e4SLinus Torvalds	  will be called snd-serial-u16550.
1861da177e4SLinus Torvalds
18754235050SDaniel Kaehnconfig SND_SERIAL_GENERIC
18854235050SDaniel Kaehn	tristate "Generic serial MIDI driver"
18954235050SDaniel Kaehn	depends on SERIAL_DEV_BUS
19054235050SDaniel Kaehn	depends on OF
19154235050SDaniel Kaehn	select SND_RAWMIDI
19254235050SDaniel Kaehn	help
19354235050SDaniel Kaehn	  To include support for mapping generic serial devices as raw
19454235050SDaniel Kaehn	  ALSA MIDI devices, say Y here. The driver only supports setting
19554235050SDaniel Kaehn	  the serial port to standard baudrates. To attain the standard MIDI
19654235050SDaniel Kaehn	  baudrate of 31.25 kBaud, configure the clock of the underlying serial
19754235050SDaniel Kaehn	  device so that a requested 38.4 kBaud will result in the standard speed.
19854235050SDaniel Kaehn
19954235050SDaniel Kaehn	  Use this devicetree binding to configure serial port mapping
20054235050SDaniel Kaehn	  <file:Documentation/devicetree/bindings/sound/serial-midi.yaml>
20154235050SDaniel Kaehn
20254235050SDaniel Kaehn	  To compile this driver as a module, choose M here: the module
20354235050SDaniel Kaehn	  will be called snd-serial-generic.
20454235050SDaniel Kaehn
2051da177e4SLinus Torvaldsconfig SND_MPU401
2061da177e4SLinus Torvalds	tristate "Generic MPU-401 UART driver"
20736a52ae6SNiklas Schnelle	depends on HAS_IOPORT
2081da177e4SLinus Torvalds	select SND_MPU401_UART
2091da177e4SLinus Torvalds	help
2101da177e4SLinus Torvalds	  Say Y here to include support for MIDI ports compatible with
2111da177e4SLinus Torvalds	  the Roland MPU-401 interface in UART mode.
2121da177e4SLinus Torvalds
2131da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
2141da177e4SLinus Torvalds	  will be called snd-mpu401.
2151da177e4SLinus Torvalds
216757e119bSMatthias Koenigconfig SND_PORTMAN2X4
217757e119bSMatthias Koenig	tristate "Portman 2x4 driver"
21889fe5117STakashi Iwai	depends on PARPORT
219757e119bSMatthias Koenig	select SND_RAWMIDI
220757e119bSMatthias Koenig	help
221757e119bSMatthias Koenig	  Say Y here to include support for Midiman Portman 2x4 parallel
222757e119bSMatthias Koenig	  port MIDI device.
223757e119bSMatthias Koenig
224757e119bSMatthias Koenig	  To compile this driver as a module, choose M here: the module
225757e119bSMatthias Koenig	  will be called snd-portman2x4.
226757e119bSMatthias Koenig
2276938d6b2STakashi Iwaiconfig SND_AC97_POWER_SAVE
2286938d6b2STakashi Iwai	bool "AC97 Power-Saving Mode"
22902834f11STakashi Iwai	depends on SND_AC97_CODEC
2306938d6b2STakashi Iwai	default n
2316938d6b2STakashi Iwai	help
2326938d6b2STakashi Iwai	  Say Y here to enable the aggressive power-saving support of
2336938d6b2STakashi Iwai	  AC97 codecs.  In this mode, the power-mode is dynamically
2346938d6b2STakashi Iwai	  controlled at each open/close.
2356938d6b2STakashi Iwai
2361d8c1100SMichael Witten	  The mode is activated by passing 'power_save=X' to the
2371d8c1100SMichael Witten	  snd-ac97-codec driver module, where 'X' is the time-out
2381d8c1100SMichael Witten	  value, a nonnegative integer that specifies how many
2391d8c1100SMichael Witten	  seconds of idle time the driver must count before it may
2401d8c1100SMichael Witten	  put the AC97 into power-save mode;  a value of 0 (zero)
2411d8c1100SMichael Witten	  disables the use of this power-save mode.
2421d8c1100SMichael Witten
2431d8c1100SMichael Witten	  After the snd-ac97-codec driver module has been loaded,
2441d8c1100SMichael Witten	  the 'power_save' parameter can be set via sysfs as follows:
2451d8c1100SMichael Witten
2461d8c1100SMichael Witten	    echo 10 > /sys/module/snd_ac97_codec/parameters/power_save
2471d8c1100SMichael Witten
2481d8c1100SMichael Witten	  In this case, the time-out is set to 10 seconds; setting
2491d8c1100SMichael Witten	  the time-out to 1 second (the minimum activation value)
2501d8c1100SMichael Witten	  isn't recommended because many applications try to reopen
2511d8c1100SMichael Witten	  the device frequently.  A value of 10 seconds would be a
2521d8c1100SMichael Witten	  good choice for normal operations.
2531d8c1100SMichael Witten
2545fb94e9cSMauro Carvalho Chehab	  See Documentation/sound/designs/powersave.rst for more details.
2556938d6b2STakashi Iwai
2566938d6b2STakashi Iwaiconfig SND_AC97_POWER_SAVE_DEFAULT
2576938d6b2STakashi Iwai	int "Default time-out for AC97 power-save mode"
2586938d6b2STakashi Iwai	depends on SND_AC97_POWER_SAVE
2596938d6b2STakashi Iwai	default 0
2606938d6b2STakashi Iwai	help
2616938d6b2STakashi Iwai	  The default time-out value in seconds for AC97 automatic
2626938d6b2STakashi Iwai	  power-save mode.  0 means to disable the power-save mode.
2636938d6b2STakashi Iwai
2641d8c1100SMichael Witten	  See SND_AC97_POWER_SAVE for more details.
2651d8c1100SMichael Witten
26689fe5117STakashi Iwaiendif	# SND_DRIVERS
267