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_VERBOSE_PRINTK
179	bool "Verbose printk"
180	help
181	  Say Y here to enable verbose log messages.  These messages
182	  will help to identify source file and position containing
183	  printed messages.
184
185	  You don't need this unless you're debugging ALSA.
186
187config SND_CTL_FAST_LOOKUP
188	bool "Fast lookup of control elements" if EXPERT
189	default y
190	select XARRAY_MULTI
191	help
192	  This option enables the faster lookup of control elements.
193	  It will consume more memory because of the additional Xarray.
194	  If you want to choose the memory footprint over the performance
195	  inevitably, turn this off.
196
197config SND_DEBUG
198	bool "Debug"
199	help
200	  Say Y here to enable ALSA debug code.
201
202config SND_DEBUG_VERBOSE
203	bool "More verbose debug"
204	depends on SND_DEBUG
205	help
206	  Say Y here to enable extra-verbose debugging messages.
207
208	  Let me repeat: it enables EXTRA-VERBOSE DEBUGGING messages.
209	  So, say Y only if you are ready to be annoyed.
210
211config SND_PCM_XRUN_DEBUG
212	bool "Enable PCM ring buffer overrun/underrun debugging"
213	default n
214	depends on SND_DEBUG && SND_VERBOSE_PROCFS
215	help
216	  Say Y to enable the PCM ring buffer overrun/underrun debugging.
217	  It is usually not required, but if you have trouble with
218	  sound clicking when system is loaded, it may help to determine
219	  the process or driver which causes the scheduling gaps.
220
221config SND_CTL_INPUT_VALIDATION
222	bool "Validate input data to control API"
223	help
224	  Say Y to enable the additional validation for the input data to
225	  each control element, including the value range checks.
226	  An error is returned from ALSA core for invalid inputs without
227	  passing to the driver.  This is a kind of hardening for drivers
228	  that have no proper error checks, at the cost of a slight
229	  performance overhead.
230
231config SND_CTL_DEBUG
232	bool "Enable debugging feature for control API"
233	depends on SND_DEBUG
234	help
235	  Say Y to enable the debugging feature for ALSA control API.
236	  It performs the additional sanity-checks for each control element
237	  read access, such as whether the values returned from the driver
238	  are in the proper ranges or the check of the invalid access at
239	  out-of-array areas.  The error is printed when the driver gives
240	  such unexpected values.
241	  When you develop a driver that deals with control elements, it's
242	  strongly recommended to try this one once and verify whether you see
243	  any relevant errors or not.
244
245config SND_JACK_INJECTION_DEBUG
246	bool "Sound jack injection interface via debugfs"
247	depends on SND_JACK && SND_DEBUG && DEBUG_FS
248	help
249	  This option can be used to enable or disable sound jack
250	  software injection.
251	  Say Y if you are debugging via jack injection interface.
252	  If unsure select "N".
253
254config SND_VMASTER
255	bool
256
257config SND_DMA_SGBUF
258	def_bool y
259	depends on X86
260
261config SND_CTL_LED
262	tristate
263	select NEW_LEDS if SND_CTL_LED
264	select LEDS_TRIGGERS if SND_CTL_LED
265	select LEDS_TRIGGER_AUDIO if SND_CTL_LED
266
267source "sound/core/seq/Kconfig"
268