xref: /linux/sound/core/Kconfig (revision 7f3c8f9191254654e6a88cd757ff079dafbd2f0b)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvalds# ALSA soundcard-configuration
31da177e4SLinus Torvaldsconfig SND_TIMER
41da177e4SLinus Torvalds	tristate
51da177e4SLinus Torvalds
61da177e4SLinus Torvaldsconfig SND_PCM
71da177e4SLinus Torvalds	tristate
890bbaf66SJie Yang	select SND_TIMER if SND_PCM_TIMER
91da177e4SLinus Torvalds
10838d1631SRussell Kingconfig SND_PCM_ELD
11838d1631SRussell King	bool
12838d1631SRussell King
139203dd01SRussell Kingconfig SND_PCM_IEC958
149203dd01SRussell King	bool
159203dd01SRussell King
16b7ae6f31SDaniel Mackconfig SND_DMAENGINE_PCM
17903eb318SDaniel Mack	tristate
18b7ae6f31SDaniel Mack
191da177e4SLinus Torvaldsconfig SND_HWDEP
201da177e4SLinus Torvalds	tristate
211da177e4SLinus Torvalds
22111b0cdbSTakashi Iwaiconfig SND_SEQ_DEVICE
23111b0cdbSTakashi Iwai	tristate
24111b0cdbSTakashi Iwai
251da177e4SLinus Torvaldsconfig SND_RAWMIDI
261da177e4SLinus Torvalds	tristate
27111b0cdbSTakashi Iwai	select SND_SEQ_DEVICE if SND_SEQUENCER != n
281da177e4SLinus Torvalds
29e3a8a5b7STakashi Iwaiconfig SND_UMP
30e3a8a5b7STakashi Iwai	tristate
31e3a8a5b7STakashi Iwai	select SND_RAWMIDI
32e3a8a5b7STakashi Iwai
330b5288f5STakashi Iwaiconfig SND_UMP_LEGACY_RAWMIDI
340b5288f5STakashi Iwai	bool "Legacy raw MIDI support for UMP streams"
350b5288f5STakashi Iwai	depends on SND_UMP
360b5288f5STakashi Iwai	help
370b5288f5STakashi Iwai	  This option enables the legacy raw MIDI support for UMP streams.
380b5288f5STakashi Iwai	  When this option is set, an additional rawmidi device for the
390b5288f5STakashi Iwai	  legacy MIDI 1.0 byte streams is created for each UMP Endpoint.
400b5288f5STakashi Iwai	  The device contains 16 substreams corresponding to UMP groups.
410b5288f5STakashi Iwai
423e39acf5SIvan Orlovconfig SND_CORE_TEST
433e39acf5SIvan Orlov	tristate "Sound core KUnit test"
443e39acf5SIvan Orlov	depends on KUNIT
456da404e7SIvan Orlov	select SND_PCM
463e39acf5SIvan Orlov	default KUNIT_ALL_TESTS
473e39acf5SIvan Orlov	help
483e39acf5SIvan Orlov	  This options enables the sound core functions KUnit test.
493e39acf5SIvan Orlov
503e39acf5SIvan Orlov	  KUnit tests run during boot and output the results to the debug
513e39acf5SIvan Orlov	  log in TAP format (https://testanything.org/). Only useful for
523e39acf5SIvan Orlov	  kernel devs running KUnit test harness and are not for inclusion
533e39acf5SIvan Orlov	  into a production build.
543e39acf5SIvan Orlov
553e39acf5SIvan Orlov	  For more information on KUnit and unit tests in general, refer
563e39acf5SIvan Orlov	  to the KUnit documentation in Documentation/dev-tools/kunit/.
573e39acf5SIvan Orlov
583e39acf5SIvan Orlov
595c845bebSTakashi Iwaiconfig SND_COMPRESS_OFFLOAD
605c845bebSTakashi Iwai	tristate
615c845bebSTakashi Iwai
6204177158SJaroslav Kyselaconfig SND_COMPRESS_ACCEL
6304177158SJaroslav Kysela	bool
6404177158SJaroslav Kysela
650d94e41aSMark Brownconfig SND_JACK
660d94e41aSMark Brown	bool
670d94e41aSMark Brown
68fe0d128cSTakashi Iwai# enable input device support in jack layer
69fe0d128cSTakashi Iwaiconfig SND_JACK_INPUT_DEV
70fe0d128cSTakashi Iwai	bool
71fe0d128cSTakashi Iwai	depends on SND_JACK
72fe0d128cSTakashi Iwai	default y if INPUT=y || INPUT=SND
73fe0d128cSTakashi Iwai
741da177e4SLinus Torvaldsconfig SND_OSSEMUL
75eb3b705aSTakashi Iwai	bool "Enable OSS Emulation"
76d886e87cSTejun Heo	select SOUND_OSS_CORE
77eb3b705aSTakashi Iwai	help
78eb3b705aSTakashi Iwai	  This option enables the build of OSS emulation layer.
791da177e4SLinus Torvalds
801da177e4SLinus Torvaldsconfig SND_MIXER_OSS
811da177e4SLinus Torvalds	tristate "OSS Mixer API"
82eb3b705aSTakashi Iwai	depends on SND_OSSEMUL
831da177e4SLinus Torvalds	help
841da177e4SLinus Torvalds	  To enable OSS mixer API emulation (/dev/mixer*), say Y here
855fb94e9cSMauro Carvalho Chehab	  and read <file:Documentation/sound/designs/oss-emulation.rst>.
861da177e4SLinus Torvalds
871da177e4SLinus Torvalds	  Many programs still use the OSS API, so say Y.
881da177e4SLinus Torvalds
891da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
901da177e4SLinus Torvalds	  will be called snd-mixer-oss.
911da177e4SLinus Torvalds
921da177e4SLinus Torvaldsconfig SND_PCM_OSS
931da177e4SLinus Torvalds	tristate "OSS PCM (digital audio) API"
94eb3b705aSTakashi Iwai	depends on SND_OSSEMUL
951da177e4SLinus Torvalds	select SND_PCM
961da177e4SLinus Torvalds	help
971da177e4SLinus Torvalds	  To enable OSS digital audio (PCM) emulation (/dev/dsp*), say Y
985fb94e9cSMauro Carvalho Chehab	  here and read <file:Documentation/sound/designs/oss-emulation.rst>.
991da177e4SLinus Torvalds
1001da177e4SLinus Torvalds	  Many programs still use the OSS API, so say Y.
1011da177e4SLinus Torvalds
1021da177e4SLinus Torvalds	  To compile this driver as a module, choose M here: the module
1031da177e4SLinus Torvalds	  will be called snd-pcm-oss.
1041da177e4SLinus Torvalds
10521a3479aSJaroslav Kyselaconfig SND_PCM_OSS_PLUGINS
10621a3479aSJaroslav Kysela	bool "OSS PCM (digital audio) API - Include plugin system"
10721a3479aSJaroslav Kysela	depends on SND_PCM_OSS
10821a3479aSJaroslav Kysela	default y
10921a3479aSJaroslav Kysela	help
11021a3479aSJaroslav Kysela	  If you disable this option, the ALSA's OSS PCM API will not
11121a3479aSJaroslav Kysela	  support conversion of channels, formats and rates. It will
11221a3479aSJaroslav Kysela	  behave like most of new OSS/Free drivers in 2.4/2.6 kernels.
11321a3479aSJaroslav Kysela
11490bbaf66SJie Yangconfig SND_PCM_TIMER
11590bbaf66SJie Yang	bool "PCM timer interface" if EXPERT
11690bbaf66SJie Yang	default y
11790bbaf66SJie Yang	help
118ac1efcfbSRandy Dunlap	  If you disable this option, pcm timer will be unavailable, so
119ac1efcfbSRandy Dunlap	  those stubs that use pcm timer (e.g. dmix, dsnoop & co) may work
120a893b7fcSElijah Harding	  incorrectly.
12190bbaf66SJie Yang
122ac1efcfbSRandy Dunlap	  For some embedded devices, we may disable it to reduce memory
12390bbaf66SJie Yang	  footprint, about 20KB on x86_64 platform.
12490bbaf66SJie Yang
125bbaf5e97STakashi Iwaiconfig SND_HRTIMER
126bbaf5e97STakashi Iwai	tristate "HR-timer backend support"
127bbaf5e97STakashi Iwai	depends on HIGH_RES_TIMERS
128bbaf5e97STakashi Iwai	select SND_TIMER
129bbaf5e97STakashi Iwai	help
130bbaf5e97STakashi Iwai	  Say Y here to enable HR-timer backend for ALSA timer.  ALSA uses
131bbaf5e97STakashi Iwai	  the hrtimer as a precise timing source. The ALSA sequencer code
132bbaf5e97STakashi Iwai	  also can use this timing source.
133bbaf5e97STakashi Iwai
134bbaf5e97STakashi Iwai	  To compile this driver as a module, choose M here: the module
135bbaf5e97STakashi Iwai	  will be called snd-hrtimer.
136bbaf5e97STakashi Iwai
137332682b1SClemens Ladischconfig SND_DYNAMIC_MINORS
138b10e5391SClemens Ladisch	bool "Dynamic device file minor numbers"
139332682b1SClemens Ladisch	help
140332682b1SClemens Ladisch	  If you say Y here, the minor numbers of ALSA device files in
141332682b1SClemens Ladisch	  /dev/snd/ are allocated dynamically.  This allows you to have
142332682b1SClemens Ladisch	  more than 8 sound cards, but requires a dynamic device file
143332682b1SClemens Ladisch	  system like udev.
144332682b1SClemens Ladisch
145332682b1SClemens Ladisch	  If you are unsure about this, say N here.
146332682b1SClemens Ladisch
1477bb2491bSTakashi Iwaiconfig SND_MAX_CARDS
1487bb2491bSTakashi Iwai	int "Max number of sound cards"
1497bb2491bSTakashi Iwai	range 4 256
1507bb2491bSTakashi Iwai	default 32
1517bb2491bSTakashi Iwai	depends on SND_DYNAMIC_MINORS
1527bb2491bSTakashi Iwai	help
1537bb2491bSTakashi Iwai	  Specify the max number of sound cards that can be assigned
1547bb2491bSTakashi Iwai	  on a single machine.
1557bb2491bSTakashi Iwai
15659d48582STakashi Iwaiconfig SND_SUPPORT_OLD_API
15759d48582STakashi Iwai	bool "Support old ALSA API"
158*74ac7558SDavid Heidelberg	default n
15959d48582STakashi Iwai	help
16059d48582STakashi Iwai	  Say Y here to support the obsolete ALSA PCM API (ver.0.9.0 rc3
16159d48582STakashi Iwai	  or older).
16259d48582STakashi Iwai
163e0ecb05aSJie Yangconfig SND_PROC_FS
164e0ecb05aSJie Yang	bool "Sound Proc FS Support" if EXPERT
165e0ecb05aSJie Yang	depends on PROC_FS
166e0ecb05aSJie Yang	default y
167e0ecb05aSJie Yang	help
168e0ecb05aSJie Yang	  Say 'N' to disable Sound proc FS, which may reduce code size about
169e0ecb05aSJie Yang	  9KB on x86_64 platform.
170e0ecb05aSJie Yang	  If unsure say Y.
171e0ecb05aSJie Yang
17221a3479aSJaroslav Kyselaconfig SND_VERBOSE_PROCFS
17321a3479aSJaroslav Kysela	bool "Verbose procfs contents"
174e0ecb05aSJie Yang	depends on SND_PROC_FS
17521a3479aSJaroslav Kysela	default y
17621a3479aSJaroslav Kysela	help
17721a3479aSJaroslav Kysela	  Say Y here to include code for verbose procfs contents (provides
178a982ac06SMatt LaPlante	  useful information to developers when a problem occurs).  On the
17921a3479aSJaroslav Kysela	  other side, it makes the ALSA subsystem larger.
18021a3479aSJaroslav Kysela
181c27e1efbSTakashi Iwaiconfig SND_CTL_FAST_LOOKUP
182c27e1efbSTakashi Iwai	bool "Fast lookup of control elements" if EXPERT
183c27e1efbSTakashi Iwai	default y
184c27e1efbSTakashi Iwai	select XARRAY_MULTI
185c27e1efbSTakashi Iwai	help
186c27e1efbSTakashi Iwai	  This option enables the faster lookup of control elements.
187c27e1efbSTakashi Iwai	  It will consume more memory because of the additional Xarray.
188c27e1efbSTakashi Iwai	  If you want to choose the memory footprint over the performance
189c27e1efbSTakashi Iwai	  inevitably, turn this off.
190c27e1efbSTakashi Iwai
1911da177e4SLinus Torvaldsconfig SND_DEBUG
1921da177e4SLinus Torvalds	bool "Debug"
1931da177e4SLinus Torvalds	help
1941da177e4SLinus Torvalds	  Say Y here to enable ALSA debug code.
1951da177e4SLinus Torvalds
19662cf872aSTakashi Iwaiconfig SND_DEBUG_VERBOSE
19762cf872aSTakashi Iwai	bool "More verbose debug"
1981da177e4SLinus Torvalds	depends on SND_DEBUG
1991da177e4SLinus Torvalds	help
20062cf872aSTakashi Iwai	  Say Y here to enable extra-verbose debugging messages.
20162cf872aSTakashi Iwai
20262cf872aSTakashi Iwai	  Let me repeat: it enables EXTRA-VERBOSE DEBUGGING messages.
20362cf872aSTakashi Iwai	  So, say Y only if you are ready to be annoyed.
20461fb63c0SJaroslav Kysela
20561fb63c0SJaroslav Kyselaconfig SND_PCM_XRUN_DEBUG
20661fb63c0SJaroslav Kysela	bool "Enable PCM ring buffer overrun/underrun debugging"
20761fb63c0SJaroslav Kysela	default n
208b7d90a35STakashi Iwai	depends on SND_DEBUG && SND_VERBOSE_PROCFS
20961fb63c0SJaroslav Kysela	help
21061fb63c0SJaroslav Kysela	  Say Y to enable the PCM ring buffer overrun/underrun debugging.
21161fb63c0SJaroslav Kysela	  It is usually not required, but if you have trouble with
21261fb63c0SJaroslav Kysela	  sound clicking when system is loaded, it may help to determine
21361fb63c0SJaroslav Kysela	  the process or driver which causes the scheduling gaps.
214e922b002STakashi Iwai
215f5e829f9STakashi Iwaiconfig SND_CTL_INPUT_VALIDATION
216f5e829f9STakashi Iwai	bool "Validate input data to control API"
217f5e829f9STakashi Iwai	help
218f5e829f9STakashi Iwai	  Say Y to enable the additional validation for the input data to
219f5e829f9STakashi Iwai	  each control element, including the value range checks.
220f5e829f9STakashi Iwai	  An error is returned from ALSA core for invalid inputs without
221f5e829f9STakashi Iwai	  passing to the driver.  This is a kind of hardening for drivers
222f5e829f9STakashi Iwai	  that have no proper error checks, at the cost of a slight
223f5e829f9STakashi Iwai	  performance overhead.
224f5e829f9STakashi Iwai
2251b7ec514STakashi Iwaiconfig SND_CTL_DEBUG
2261b7ec514STakashi Iwai	bool "Enable debugging feature for control API"
227fbd3eb7fSTakashi Iwai	depends on SND_DEBUG
228fbd3eb7fSTakashi Iwai	help
2291b7ec514STakashi Iwai	  Say Y to enable the debugging feature for ALSA control API.
2301b7ec514STakashi Iwai	  It performs the additional sanity-checks for each control element
2311b7ec514STakashi Iwai	  read access, such as whether the values returned from the driver
2321b7ec514STakashi Iwai	  are in the proper ranges or the check of the invalid access at
2331b7ec514STakashi Iwai	  out-of-array areas.  The error is printed when the driver gives
2341b7ec514STakashi Iwai	  such unexpected values.
2351b7ec514STakashi Iwai	  When you develop a driver that deals with control elements, it's
2361b7ec514STakashi Iwai	  strongly recommended to try this one once and verify whether you see
2371b7ec514STakashi Iwai	  any relevant errors or not.
238fbd3eb7fSTakashi Iwai
2392d670ea2SHui Wangconfig SND_JACK_INJECTION_DEBUG
2402d670ea2SHui Wang	bool "Sound jack injection interface via debugfs"
2412d670ea2SHui Wang	depends on SND_JACK && SND_DEBUG && DEBUG_FS
2422d670ea2SHui Wang	help
2432d670ea2SHui Wang	  This option can be used to enable or disable sound jack
2442d670ea2SHui Wang	  software injection.
2452d670ea2SHui Wang	  Say Y if you are debugging via jack injection interface.
2462d670ea2SHui Wang	  If unsure select "N".
2472d670ea2SHui Wang
24837745918SIvan Orlovconfig SND_UTIMER
24937745918SIvan Orlov	bool "Enable support for userspace-controlled virtual timers"
25037745918SIvan Orlov	depends on SND_TIMER
25137745918SIvan Orlov	help
25237745918SIvan Orlov	  Say Y to enable the support of userspace-controlled timers. These
25337745918SIvan Orlov	  timers are purely virtual, and they are supposed to be triggered
25437745918SIvan Orlov	  from userspace. They could be quite useful when synchronizing the
25537745918SIvan Orlov	  sound timing with userspace applications (for instance, when sending
25637745918SIvan Orlov	  data through snd-aloop).
25737745918SIvan Orlov
258e922b002STakashi Iwaiconfig SND_VMASTER
259e922b002STakashi Iwai	bool
2600528c749SMichal Marek
261cc6a8acdSTakashi Iwaiconfig SND_DMA_SGBUF
262cc6a8acdSTakashi Iwai	def_bool y
263cc6a8acdSTakashi Iwai	depends on X86
264cc6a8acdSTakashi Iwai
26522d8de62SJaroslav Kyselaconfig SND_CTL_LED
26622d8de62SJaroslav Kysela	tristate
26722d8de62SJaroslav Kysela	select NEW_LEDS if SND_CTL_LED
26822d8de62SJaroslav Kysela	select LEDS_TRIGGERS if SND_CTL_LED
26922d8de62SJaroslav Kysela
2700528c749SMichal Mareksource "sound/core/seq/Kconfig"
271