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