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