xref: /linux/sound/drivers/Kconfig (revision 315a3d57c64c55901d6fe5a5eef3b3e51d215381)
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
112*315a3d57SIvan Orlovconfig SND_PCMTEST
113*315a3d57SIvan Orlov	tristate "Virtual PCM test driver"
114*315a3d57SIvan Orlov	select SND_PCM
115*315a3d57SIvan Orlov	help
116*315a3d57SIvan Orlov	  Say 'Y' or 'M' to include support for the Virtual PCM test driver.
117*315a3d57SIvan Orlov	  This driver is aimed at extended testing of the userspace applications
118*315a3d57SIvan Orlov	  which use the ALSA API, as well as the PCM middle layer testing.
119*315a3d57SIvan Orlov
120*315a3d57SIvan Orlov	  It can generate random or pattern-based data into the capture stream,
121*315a3d57SIvan Orlov	  check the playback stream for containing the selected pattern, inject
122*315a3d57SIvan Orlov	  time delays during capture/playback, redefine the RESET ioctl operation
123*315a3d57SIvan Orlov	  to perform the PCM middle layer testing and inject errors during the
124*315a3d57SIvan Orlov	  PCM callbacks. It supports both interleaved and non-interleaved access
125*315a3d57SIvan Orlov	  modes. You can find the corresponding selftest in the 'alsa'
126*315a3d57SIvan Orlov	  selftests folder.
127*315a3d57SIvan Orlov
1281da177e4SLinus Torvaldsconfig SND_VIRMIDI
1291da177e4SLinus Torvalds	tristate "Virtual MIDI soundcard"
1301da177e4SLinus Torvalds	depends on SND_SEQUENCER
1311da177e4SLinus Torvalds	select SND_TIMER
1321da177e4SLinus Torvalds	select SND_RAWMIDI
1330181307aSTakashi Iwai	select SND_SEQ_VIRMIDI
1340181307aSTakashi Iwai	select SND_SEQ_MIDI_EVENT
1351da177e4SLinus Torvalds	help
1361da177e4SLinus Torvalds	  Say Y here to include the virtual MIDI driver.  This driver
1371da177e4SLinus Torvalds	  allows to connect applications using raw MIDI devices to
1381da177e4SLinus Torvalds	  sequencer clients.
1391da177e4SLinus Torvalds
1401da177e4SLinus Torvalds	  If you don't know what MIDI is, say N here.
1411da177e4SLinus Torvalds
1421da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
1431da177e4SLinus Torvalds	  will be called snd-virmidi.
1441da177e4SLinus Torvalds
1451da177e4SLinus Torvaldsconfig SND_MTPAV
1461da177e4SLinus Torvalds	tristate "MOTU MidiTimePiece AV multiport MIDI"
14736a52ae6SNiklas Schnelle	depends on HAS_IOPORT
1481da177e4SLinus Torvalds	select SND_RAWMIDI
1491da177e4SLinus Torvalds	help
1501da177e4SLinus Torvalds	  To use a MOTU MidiTimePiece AV multiport MIDI adapter
1511da177e4SLinus Torvalds	  connected to the parallel port, say Y here and make sure that
1521da177e4SLinus Torvalds	  the standard parallel port driver isn't used for the port.
1531da177e4SLinus Torvalds
1541da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
1551da177e4SLinus Torvalds	  will be called snd-mtpav.
1561da177e4SLinus Torvalds
15768ab801eSMatthias Koenigconfig SND_MTS64
15868ab801eSMatthias Koenig	tristate "ESI Miditerminal 4140 driver"
15989fe5117STakashi Iwai	depends on PARPORT
16068ab801eSMatthias Koenig	select SND_RAWMIDI
16168ab801eSMatthias Koenig	help
16268ab801eSMatthias Koenig	  The ESI Miditerminal 4140 is a 4 In 4 Out MIDI Interface with
16368ab801eSMatthias Koenig	  additional SMPTE Timecode capabilities for the parallel port.
16468ab801eSMatthias Koenig
16568ab801eSMatthias Koenig	  Say 'Y' to include support for this device.
16668ab801eSMatthias Koenig
16768ab801eSMatthias Koenig	  To compile this driver as a module, chose 'M' here: the module
16868ab801eSMatthias Koenig	  will be called snd-mts64.
16968ab801eSMatthias Koenig
1701da177e4SLinus Torvaldsconfig SND_SERIAL_U16550
1711da177e4SLinus Torvalds	tristate "UART16550 serial MIDI driver"
17236a52ae6SNiklas Schnelle	depends on HAS_IOPORT
1731da177e4SLinus Torvalds	select SND_RAWMIDI
1741da177e4SLinus Torvalds	help
1751da177e4SLinus Torvalds	  To include support for MIDI serial port interfaces, say Y here
1765fb94e9cSMauro Carvalho Chehab	  and read <file:Documentation/sound/cards/serial-u16550.rst>.
1771da177e4SLinus Torvalds	  This driver works with serial UARTs 16550 and better.
1781da177e4SLinus Torvalds
1791da177e4SLinus Torvalds	  This driver accesses the serial port hardware directly, so
1801da177e4SLinus Torvalds	  make sure that the standard serial driver isn't used or
1811da177e4SLinus Torvalds	  deactivated with setserial before loading this driver.
1821da177e4SLinus Torvalds
1831da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
1841da177e4SLinus Torvalds	  will be called snd-serial-u16550.
1851da177e4SLinus Torvalds
18654235050SDaniel Kaehnconfig SND_SERIAL_GENERIC
18754235050SDaniel Kaehn	tristate "Generic serial MIDI driver"
18854235050SDaniel Kaehn	depends on SERIAL_DEV_BUS
18954235050SDaniel Kaehn	depends on OF
19054235050SDaniel Kaehn	select SND_RAWMIDI
19154235050SDaniel Kaehn	help
19254235050SDaniel Kaehn	  To include support for mapping generic serial devices as raw
19354235050SDaniel Kaehn	  ALSA MIDI devices, say Y here. The driver only supports setting
19454235050SDaniel Kaehn	  the serial port to standard baudrates. To attain the standard MIDI
19554235050SDaniel Kaehn	  baudrate of 31.25 kBaud, configure the clock of the underlying serial
19654235050SDaniel Kaehn	  device so that a requested 38.4 kBaud will result in the standard speed.
19754235050SDaniel Kaehn
19854235050SDaniel Kaehn	  Use this devicetree binding to configure serial port mapping
19954235050SDaniel Kaehn	  <file:Documentation/devicetree/bindings/sound/serial-midi.yaml>
20054235050SDaniel Kaehn
20154235050SDaniel Kaehn	  To compile this driver as a module, choose M here: the module
20254235050SDaniel Kaehn	  will be called snd-serial-generic.
20354235050SDaniel Kaehn
2041da177e4SLinus Torvaldsconfig SND_MPU401
2051da177e4SLinus Torvalds	tristate "Generic MPU-401 UART driver"
20636a52ae6SNiklas Schnelle	depends on HAS_IOPORT
2071da177e4SLinus Torvalds	select SND_MPU401_UART
2081da177e4SLinus Torvalds	help
2091da177e4SLinus Torvalds	  Say Y here to include support for MIDI ports compatible with
2101da177e4SLinus Torvalds	  the Roland MPU-401 interface in UART mode.
2111da177e4SLinus Torvalds
2121da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
2131da177e4SLinus Torvalds	  will be called snd-mpu401.
2141da177e4SLinus Torvalds
215757e119bSMatthias Koenigconfig SND_PORTMAN2X4
216757e119bSMatthias Koenig	tristate "Portman 2x4 driver"
21789fe5117STakashi Iwai	depends on PARPORT
218757e119bSMatthias Koenig	select SND_RAWMIDI
219757e119bSMatthias Koenig	help
220757e119bSMatthias Koenig	  Say Y here to include support for Midiman Portman 2x4 parallel
221757e119bSMatthias Koenig	  port MIDI device.
222757e119bSMatthias Koenig
223757e119bSMatthias Koenig	  To compile this driver as a module, choose M here: the module
224757e119bSMatthias Koenig	  will be called snd-portman2x4.
225757e119bSMatthias Koenig
2266938d6b2STakashi Iwaiconfig SND_AC97_POWER_SAVE
2276938d6b2STakashi Iwai	bool "AC97 Power-Saving Mode"
22802834f11STakashi Iwai	depends on SND_AC97_CODEC
2296938d6b2STakashi Iwai	default n
2306938d6b2STakashi Iwai	help
2316938d6b2STakashi Iwai	  Say Y here to enable the aggressive power-saving support of
2326938d6b2STakashi Iwai	  AC97 codecs.  In this mode, the power-mode is dynamically
2336938d6b2STakashi Iwai	  controlled at each open/close.
2346938d6b2STakashi Iwai
2351d8c1100SMichael Witten	  The mode is activated by passing 'power_save=X' to the
2361d8c1100SMichael Witten	  snd-ac97-codec driver module, where 'X' is the time-out
2371d8c1100SMichael Witten	  value, a nonnegative integer that specifies how many
2381d8c1100SMichael Witten	  seconds of idle time the driver must count before it may
2391d8c1100SMichael Witten	  put the AC97 into power-save mode;  a value of 0 (zero)
2401d8c1100SMichael Witten	  disables the use of this power-save mode.
2411d8c1100SMichael Witten
2421d8c1100SMichael Witten	  After the snd-ac97-codec driver module has been loaded,
2431d8c1100SMichael Witten	  the 'power_save' parameter can be set via sysfs as follows:
2441d8c1100SMichael Witten
2451d8c1100SMichael Witten	    echo 10 > /sys/module/snd_ac97_codec/parameters/power_save
2461d8c1100SMichael Witten
2471d8c1100SMichael Witten	  In this case, the time-out is set to 10 seconds; setting
2481d8c1100SMichael Witten	  the time-out to 1 second (the minimum activation value)
2491d8c1100SMichael Witten	  isn't recommended because many applications try to reopen
2501d8c1100SMichael Witten	  the device frequently.  A value of 10 seconds would be a
2511d8c1100SMichael Witten	  good choice for normal operations.
2521d8c1100SMichael Witten
2535fb94e9cSMauro Carvalho Chehab	  See Documentation/sound/designs/powersave.rst for more details.
2546938d6b2STakashi Iwai
2556938d6b2STakashi Iwaiconfig SND_AC97_POWER_SAVE_DEFAULT
2566938d6b2STakashi Iwai	int "Default time-out for AC97 power-save mode"
2576938d6b2STakashi Iwai	depends on SND_AC97_POWER_SAVE
2586938d6b2STakashi Iwai	default 0
2596938d6b2STakashi Iwai	help
2606938d6b2STakashi Iwai	  The default time-out value in seconds for AC97 automatic
2616938d6b2STakashi Iwai	  power-save mode.  0 means to disable the power-save mode.
2626938d6b2STakashi Iwai
2631d8c1100SMichael Witten	  See SND_AC97_POWER_SAVE for more details.
2641d8c1100SMichael Witten
26589fe5117STakashi Iwaiendif	# SND_DRIVERS
266