xref: /linux/sound/core/Kconfig (revision 3fd6c59042dbba50391e30862beac979491145fe)
1# SPDX-License-Identifier: GPL-2.0-only
2# ALSA soundcard-configuration
3config SND_TIMER
4	tristate
5
6config SND_PCM
7	tristate
8	select SND_TIMER if SND_PCM_TIMER
9
10config SND_PCM_ELD
11	bool
12
13config SND_PCM_IEC958
14	bool
15
16config SND_DMAENGINE_PCM
17	tristate
18
19config SND_HWDEP
20	tristate
21
22config SND_SEQ_DEVICE
23	tristate
24
25config SND_RAWMIDI
26	tristate
27	select SND_SEQ_DEVICE if SND_SEQUENCER != n
28
29config SND_UMP
30	tristate
31	select SND_RAWMIDI
32
33config SND_UMP_LEGACY_RAWMIDI
34	bool "Legacy raw MIDI support for UMP streams"
35	depends on SND_UMP
36	help
37	  This option enables the legacy raw MIDI support for UMP streams.
38	  When this option is set, an additional rawmidi device for the
39	  legacy MIDI 1.0 byte streams is created for each UMP Endpoint.
40	  The device contains 16 substreams corresponding to UMP groups.
41
42config SND_CORE_TEST
43	tristate "Sound core KUnit test"
44	depends on KUNIT
45	select SND_PCM
46	default KUNIT_ALL_TESTS
47	help
48	  This options enables the sound core functions KUnit test.
49
50	  KUnit tests run during boot and output the results to the debug
51	  log in TAP format (https://testanything.org/). Only useful for
52	  kernel devs running KUnit test harness and are not for inclusion
53	  into a production build.
54
55	  For more information on KUnit and unit tests in general, refer
56	  to the KUnit documentation in Documentation/dev-tools/kunit/.
57
58
59config SND_COMPRESS_OFFLOAD
60	tristate
61
62config SND_COMPRESS_ACCEL
63	bool
64
65config SND_JACK
66	bool
67
68# enable input device support in jack layer
69config SND_JACK_INPUT_DEV
70	bool
71	depends on SND_JACK
72	default y if INPUT=y || INPUT=SND
73
74config SND_OSSEMUL
75	bool "Enable OSS Emulation"
76	select SOUND_OSS_CORE
77	help
78	  This option enables the build of OSS emulation layer.
79
80config SND_MIXER_OSS
81	tristate "OSS Mixer API"
82	depends on SND_OSSEMUL
83	help
84	  To enable OSS mixer API emulation (/dev/mixer*), say Y here
85	  and read <file:Documentation/sound/designs/oss-emulation.rst>.
86
87	  Many programs still use the OSS API, so say Y.
88
89	  To compile this driver as a module, choose M here: the module
90	  will be called snd-mixer-oss.
91
92config SND_PCM_OSS
93	tristate "OSS PCM (digital audio) API"
94	depends on SND_OSSEMUL
95	select SND_PCM
96	help
97	  To enable OSS digital audio (PCM) emulation (/dev/dsp*), say Y
98	  here and read <file:Documentation/sound/designs/oss-emulation.rst>.
99
100	  Many programs still use the OSS API, so say Y.
101
102	  To compile this driver as a module, choose M here: the module
103	  will be called snd-pcm-oss.
104
105config SND_PCM_OSS_PLUGINS
106	bool "OSS PCM (digital audio) API - Include plugin system"
107	depends on SND_PCM_OSS
108	default y
109	help
110	  If you disable this option, the ALSA's OSS PCM API will not
111	  support conversion of channels, formats and rates. It will
112	  behave like most of new OSS/Free drivers in 2.4/2.6 kernels.
113
114config SND_PCM_TIMER
115	bool "PCM timer interface" if EXPERT
116	default y
117	help
118	  If you disable this option, pcm timer will be unavailable, so
119	  those stubs that use pcm timer (e.g. dmix, dsnoop & co) may work
120	  incorrectly.
121
122	  For some embedded devices, we may disable it to reduce memory
123	  footprint, about 20KB on x86_64 platform.
124
125config SND_HRTIMER
126	tristate "HR-timer backend support"
127	depends on HIGH_RES_TIMERS
128	select SND_TIMER
129	help
130	  Say Y here to enable HR-timer backend for ALSA timer.  ALSA uses
131	  the hrtimer as a precise timing source. The ALSA sequencer code
132	  also can use this timing source.
133
134	  To compile this driver as a module, choose M here: the module
135	  will be called snd-hrtimer.
136
137config SND_DYNAMIC_MINORS
138	bool "Dynamic device file minor numbers"
139	help
140	  If you say Y here, the minor numbers of ALSA device files in
141	  /dev/snd/ are allocated dynamically.  This allows you to have
142	  more than 8 sound cards, but requires a dynamic device file
143	  system like udev.
144
145	  If you are unsure about this, say N here.
146
147config SND_MAX_CARDS
148	int "Max number of sound cards"
149	range 4 256
150	default 32
151	depends on SND_DYNAMIC_MINORS
152	help
153	  Specify the max number of sound cards that can be assigned
154	  on a single machine.
155
156config SND_SUPPORT_OLD_API
157	bool "Support old ALSA API"
158	default y
159	help
160	  Say Y here to support the obsolete ALSA PCM API (ver.0.9.0 rc3
161	  or older).
162
163config SND_PROC_FS
164	bool "Sound Proc FS Support" if EXPERT
165	depends on PROC_FS
166	default y
167	help
168	  Say 'N' to disable Sound proc FS, which may reduce code size about
169	  9KB on x86_64 platform.
170	  If unsure say Y.
171
172config SND_VERBOSE_PROCFS
173	bool "Verbose procfs contents"
174	depends on SND_PROC_FS
175	default y
176	help
177	  Say Y here to include code for verbose procfs contents (provides
178	  useful information to developers when a problem occurs).  On the
179	  other side, it makes the ALSA subsystem larger.
180
181config SND_CTL_FAST_LOOKUP
182	bool "Fast lookup of control elements" if EXPERT
183	default y
184	select XARRAY_MULTI
185	help
186	  This option enables the faster lookup of control elements.
187	  It will consume more memory because of the additional Xarray.
188	  If you want to choose the memory footprint over the performance
189	  inevitably, turn this off.
190
191config SND_DEBUG
192	bool "Debug"
193	help
194	  Say Y here to enable ALSA debug code.
195
196config SND_DEBUG_VERBOSE
197	bool "More verbose debug"
198	depends on SND_DEBUG
199	help
200	  Say Y here to enable extra-verbose debugging messages.
201
202	  Let me repeat: it enables EXTRA-VERBOSE DEBUGGING messages.
203	  So, say Y only if you are ready to be annoyed.
204
205config SND_PCM_XRUN_DEBUG
206	bool "Enable PCM ring buffer overrun/underrun debugging"
207	default n
208	depends on SND_DEBUG && SND_VERBOSE_PROCFS
209	help
210	  Say Y to enable the PCM ring buffer overrun/underrun debugging.
211	  It is usually not required, but if you have trouble with
212	  sound clicking when system is loaded, it may help to determine
213	  the process or driver which causes the scheduling gaps.
214
215config SND_CTL_INPUT_VALIDATION
216	bool "Validate input data to control API"
217	help
218	  Say Y to enable the additional validation for the input data to
219	  each control element, including the value range checks.
220	  An error is returned from ALSA core for invalid inputs without
221	  passing to the driver.  This is a kind of hardening for drivers
222	  that have no proper error checks, at the cost of a slight
223	  performance overhead.
224
225config SND_CTL_DEBUG
226	bool "Enable debugging feature for control API"
227	depends on SND_DEBUG
228	help
229	  Say Y to enable the debugging feature for ALSA control API.
230	  It performs the additional sanity-checks for each control element
231	  read access, such as whether the values returned from the driver
232	  are in the proper ranges or the check of the invalid access at
233	  out-of-array areas.  The error is printed when the driver gives
234	  such unexpected values.
235	  When you develop a driver that deals with control elements, it's
236	  strongly recommended to try this one once and verify whether you see
237	  any relevant errors or not.
238
239config SND_JACK_INJECTION_DEBUG
240	bool "Sound jack injection interface via debugfs"
241	depends on SND_JACK && SND_DEBUG && DEBUG_FS
242	help
243	  This option can be used to enable or disable sound jack
244	  software injection.
245	  Say Y if you are debugging via jack injection interface.
246	  If unsure select "N".
247
248config SND_UTIMER
249	bool "Enable support for userspace-controlled virtual timers"
250	depends on SND_TIMER
251	help
252	  Say Y to enable the support of userspace-controlled timers. These
253	  timers are purely virtual, and they are supposed to be triggered
254	  from userspace. They could be quite useful when synchronizing the
255	  sound timing with userspace applications (for instance, when sending
256	  data through snd-aloop).
257
258config SND_VMASTER
259	bool
260
261config SND_DMA_SGBUF
262	def_bool y
263	depends on X86
264
265config SND_CTL_LED
266	tristate
267	select NEW_LEDS if SND_CTL_LED
268	select LEDS_TRIGGERS if SND_CTL_LED
269
270source "sound/core/seq/Kconfig"
271