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