1 # SPDX-License-Identifier: GPL-2.0-only
2 # ALSA soundcard-configuration
3 config SND_TIMER
4 	tristate
5 
6 config SND_PCM
7 	tristate
8 	select SND_TIMER if SND_PCM_TIMER
9 
10 config SND_PCM_ELD
11 	bool
12 
13 config SND_PCM_IEC958
14 	bool
15 
16 config SND_DMAENGINE_PCM
17 	tristate
18 
19 config SND_HWDEP
20 	tristate
21 
22 config SND_SEQ_DEVICE
23 	tristate
24 
25 config SND_RAWMIDI
26 	tristate
27 	select SND_SEQ_DEVICE if SND_SEQUENCER != n
28 
29 config SND_UMP
30 	tristate
31 	select SND_RAWMIDI
32 
33 config 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 
42 config 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 
59 config SND_COMPRESS_OFFLOAD
60 	tristate
61 
62 config SND_JACK
63 	bool
64 
65 # enable input device support in jack layer
66 config SND_JACK_INPUT_DEV
67 	bool
68 	depends on SND_JACK
69 	default y if INPUT=y || INPUT=SND
70 
71 config 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 
77 config 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 
89 config 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 
102 config 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 
111 config 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 
122 config 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 
134 config 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 
144 config 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 
153 config 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 
160 config 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 
169 config 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 
178 config 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 
188 config SND_DEBUG
189 	bool "Debug"
190 	help
191 	  Say Y here to enable ALSA debug code.
192 
193 config 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 
202 config 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 
212 config 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 
222 config 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 
236 config 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 
245 config 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 
255 config SND_VMASTER
256 	bool
257 
258 config SND_DMA_SGBUF
259 	def_bool y
260 	depends on X86
261 
262 config SND_CTL_LED
263 	tristate
264 	select NEW_LEDS if SND_CTL_LED
265 	select LEDS_TRIGGERS if SND_CTL_LED
266 
267 source "sound/core/seq/Kconfig"
268