162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci# ALSA soundcard-configuration
362306a36Sopenharmony_ciconfig SND_TIMER
462306a36Sopenharmony_ci	tristate
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig SND_PCM
762306a36Sopenharmony_ci	tristate
862306a36Sopenharmony_ci	select SND_TIMER if SND_PCM_TIMER
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciconfig SND_PCM_ELD
1162306a36Sopenharmony_ci	bool
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciconfig SND_PCM_IEC958
1462306a36Sopenharmony_ci	bool
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciconfig SND_DMAENGINE_PCM
1762306a36Sopenharmony_ci	tristate
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciconfig SND_HWDEP
2062306a36Sopenharmony_ci	tristate
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciconfig SND_SEQ_DEVICE
2362306a36Sopenharmony_ci	tristate
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciconfig SND_RAWMIDI
2662306a36Sopenharmony_ci	tristate
2762306a36Sopenharmony_ci	select SND_SEQ_DEVICE if SND_SEQUENCER != n
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciconfig SND_UMP
3062306a36Sopenharmony_ci	tristate
3162306a36Sopenharmony_ci	select SND_RAWMIDI
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciconfig SND_UMP_LEGACY_RAWMIDI
3462306a36Sopenharmony_ci	bool "Legacy raw MIDI support for UMP streams"
3562306a36Sopenharmony_ci	depends on SND_UMP
3662306a36Sopenharmony_ci	help
3762306a36Sopenharmony_ci	  This option enables the legacy raw MIDI support for UMP streams.
3862306a36Sopenharmony_ci	  When this option is set, an additional rawmidi device for the
3962306a36Sopenharmony_ci	  legacy MIDI 1.0 byte streams is created for each UMP Endpoint.
4062306a36Sopenharmony_ci	  The device contains 16 substreams corresponding to UMP groups.
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciconfig SND_COMPRESS_OFFLOAD
4362306a36Sopenharmony_ci	tristate
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciconfig SND_JACK
4662306a36Sopenharmony_ci	bool
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci# enable input device support in jack layer
4962306a36Sopenharmony_ciconfig SND_JACK_INPUT_DEV
5062306a36Sopenharmony_ci	bool
5162306a36Sopenharmony_ci	depends on SND_JACK
5262306a36Sopenharmony_ci	default y if INPUT=y || INPUT=SND
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciconfig SND_OSSEMUL
5562306a36Sopenharmony_ci	bool "Enable OSS Emulation"
5662306a36Sopenharmony_ci	select SOUND_OSS_CORE
5762306a36Sopenharmony_ci	help
5862306a36Sopenharmony_ci	  This option enables the build of OSS emulation layer.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciconfig SND_MIXER_OSS
6162306a36Sopenharmony_ci	tristate "OSS Mixer API"
6262306a36Sopenharmony_ci	depends on SND_OSSEMUL
6362306a36Sopenharmony_ci	help
6462306a36Sopenharmony_ci	  To enable OSS mixer API emulation (/dev/mixer*), say Y here
6562306a36Sopenharmony_ci	  and read <file:Documentation/sound/designs/oss-emulation.rst>.
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	  Many programs still use the OSS API, so say Y.
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
7062306a36Sopenharmony_ci	  will be called snd-mixer-oss.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciconfig SND_PCM_OSS
7362306a36Sopenharmony_ci	tristate "OSS PCM (digital audio) API"
7462306a36Sopenharmony_ci	depends on SND_OSSEMUL
7562306a36Sopenharmony_ci	select SND_PCM
7662306a36Sopenharmony_ci	help
7762306a36Sopenharmony_ci	  To enable OSS digital audio (PCM) emulation (/dev/dsp*), say Y
7862306a36Sopenharmony_ci	  here and read <file:Documentation/sound/designs/oss-emulation.rst>.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci	  Many programs still use the OSS API, so say Y.
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
8362306a36Sopenharmony_ci	  will be called snd-pcm-oss.
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ciconfig SND_PCM_OSS_PLUGINS
8662306a36Sopenharmony_ci	bool "OSS PCM (digital audio) API - Include plugin system"
8762306a36Sopenharmony_ci	depends on SND_PCM_OSS
8862306a36Sopenharmony_ci	default y
8962306a36Sopenharmony_ci	help
9062306a36Sopenharmony_ci	  If you disable this option, the ALSA's OSS PCM API will not
9162306a36Sopenharmony_ci	  support conversion of channels, formats and rates. It will
9262306a36Sopenharmony_ci	  behave like most of new OSS/Free drivers in 2.4/2.6 kernels.
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ciconfig SND_PCM_TIMER
9562306a36Sopenharmony_ci	bool "PCM timer interface" if EXPERT
9662306a36Sopenharmony_ci	default y
9762306a36Sopenharmony_ci	help
9862306a36Sopenharmony_ci	  If you disable this option, pcm timer will be unavailable, so
9962306a36Sopenharmony_ci	  those stubs that use pcm timer (e.g. dmix, dsnoop & co) may work
10062306a36Sopenharmony_ci	  incorrectly.
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci	  For some embedded devices, we may disable it to reduce memory
10362306a36Sopenharmony_ci	  footprint, about 20KB on x86_64 platform.
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ciconfig SND_HRTIMER
10662306a36Sopenharmony_ci	tristate "HR-timer backend support"
10762306a36Sopenharmony_ci	depends on HIGH_RES_TIMERS
10862306a36Sopenharmony_ci	select SND_TIMER
10962306a36Sopenharmony_ci	help
11062306a36Sopenharmony_ci	  Say Y here to enable HR-timer backend for ALSA timer.  ALSA uses
11162306a36Sopenharmony_ci	  the hrtimer as a precise timing source. The ALSA sequencer code
11262306a36Sopenharmony_ci	  also can use this timing source.
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
11562306a36Sopenharmony_ci	  will be called snd-hrtimer.
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ciconfig SND_DYNAMIC_MINORS
11862306a36Sopenharmony_ci	bool "Dynamic device file minor numbers"
11962306a36Sopenharmony_ci	help
12062306a36Sopenharmony_ci	  If you say Y here, the minor numbers of ALSA device files in
12162306a36Sopenharmony_ci	  /dev/snd/ are allocated dynamically.  This allows you to have
12262306a36Sopenharmony_ci	  more than 8 sound cards, but requires a dynamic device file
12362306a36Sopenharmony_ci	  system like udev.
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci	  If you are unsure about this, say N here.
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ciconfig SND_MAX_CARDS
12862306a36Sopenharmony_ci	int "Max number of sound cards"
12962306a36Sopenharmony_ci	range 4 256
13062306a36Sopenharmony_ci	default 32
13162306a36Sopenharmony_ci	depends on SND_DYNAMIC_MINORS
13262306a36Sopenharmony_ci	help
13362306a36Sopenharmony_ci	  Specify the max number of sound cards that can be assigned
13462306a36Sopenharmony_ci	  on a single machine.
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ciconfig SND_SUPPORT_OLD_API
13762306a36Sopenharmony_ci	bool "Support old ALSA API"
13862306a36Sopenharmony_ci	default y
13962306a36Sopenharmony_ci	help
14062306a36Sopenharmony_ci	  Say Y here to support the obsolete ALSA PCM API (ver.0.9.0 rc3
14162306a36Sopenharmony_ci	  or older).
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ciconfig SND_PROC_FS
14462306a36Sopenharmony_ci	bool "Sound Proc FS Support" if EXPERT
14562306a36Sopenharmony_ci	depends on PROC_FS
14662306a36Sopenharmony_ci	default y
14762306a36Sopenharmony_ci	help
14862306a36Sopenharmony_ci	  Say 'N' to disable Sound proc FS, which may reduce code size about
14962306a36Sopenharmony_ci	  9KB on x86_64 platform.
15062306a36Sopenharmony_ci	  If unsure say Y.
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ciconfig SND_VERBOSE_PROCFS
15362306a36Sopenharmony_ci	bool "Verbose procfs contents"
15462306a36Sopenharmony_ci	depends on SND_PROC_FS
15562306a36Sopenharmony_ci	default y
15662306a36Sopenharmony_ci	help
15762306a36Sopenharmony_ci	  Say Y here to include code for verbose procfs contents (provides
15862306a36Sopenharmony_ci	  useful information to developers when a problem occurs).  On the
15962306a36Sopenharmony_ci	  other side, it makes the ALSA subsystem larger.
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ciconfig SND_VERBOSE_PRINTK
16262306a36Sopenharmony_ci	bool "Verbose printk"
16362306a36Sopenharmony_ci	help
16462306a36Sopenharmony_ci	  Say Y here to enable verbose log messages.  These messages
16562306a36Sopenharmony_ci	  will help to identify source file and position containing
16662306a36Sopenharmony_ci	  printed messages.
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci	  You don't need this unless you're debugging ALSA.
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ciconfig SND_CTL_FAST_LOOKUP
17162306a36Sopenharmony_ci	bool "Fast lookup of control elements" if EXPERT
17262306a36Sopenharmony_ci	default y
17362306a36Sopenharmony_ci	select XARRAY_MULTI
17462306a36Sopenharmony_ci	help
17562306a36Sopenharmony_ci	  This option enables the faster lookup of control elements.
17662306a36Sopenharmony_ci	  It will consume more memory because of the additional Xarray.
17762306a36Sopenharmony_ci	  If you want to choose the memory footprint over the performance
17862306a36Sopenharmony_ci	  inevitably, turn this off.
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ciconfig SND_DEBUG
18162306a36Sopenharmony_ci	bool "Debug"
18262306a36Sopenharmony_ci	help
18362306a36Sopenharmony_ci	  Say Y here to enable ALSA debug code.
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ciconfig SND_DEBUG_VERBOSE
18662306a36Sopenharmony_ci	bool "More verbose debug"
18762306a36Sopenharmony_ci	depends on SND_DEBUG
18862306a36Sopenharmony_ci	help
18962306a36Sopenharmony_ci	  Say Y here to enable extra-verbose debugging messages.
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci	  Let me repeat: it enables EXTRA-VERBOSE DEBUGGING messages.
19262306a36Sopenharmony_ci	  So, say Y only if you are ready to be annoyed.
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ciconfig SND_PCM_XRUN_DEBUG
19562306a36Sopenharmony_ci	bool "Enable PCM ring buffer overrun/underrun debugging"
19662306a36Sopenharmony_ci	default n
19762306a36Sopenharmony_ci	depends on SND_DEBUG && SND_VERBOSE_PROCFS
19862306a36Sopenharmony_ci	help
19962306a36Sopenharmony_ci	  Say Y to enable the PCM ring buffer overrun/underrun debugging.
20062306a36Sopenharmony_ci	  It is usually not required, but if you have trouble with
20162306a36Sopenharmony_ci	  sound clicking when system is loaded, it may help to determine
20262306a36Sopenharmony_ci	  the process or driver which causes the scheduling gaps.
20362306a36Sopenharmony_ci
20462306a36Sopenharmony_ciconfig SND_CTL_INPUT_VALIDATION
20562306a36Sopenharmony_ci	bool "Validate input data to control API"
20662306a36Sopenharmony_ci	help
20762306a36Sopenharmony_ci	  Say Y to enable the additional validation for the input data to
20862306a36Sopenharmony_ci	  each control element, including the value range checks.
20962306a36Sopenharmony_ci	  An error is returned from ALSA core for invalid inputs without
21062306a36Sopenharmony_ci	  passing to the driver.  This is a kind of hardening for drivers
21162306a36Sopenharmony_ci	  that have no proper error checks, at the cost of a slight
21262306a36Sopenharmony_ci	  performance overhead.
21362306a36Sopenharmony_ci
21462306a36Sopenharmony_ciconfig SND_CTL_DEBUG
21562306a36Sopenharmony_ci	bool "Enable debugging feature for control API"
21662306a36Sopenharmony_ci	depends on SND_DEBUG
21762306a36Sopenharmony_ci	help
21862306a36Sopenharmony_ci	  Say Y to enable the debugging feature for ALSA control API.
21962306a36Sopenharmony_ci	  It performs the additional sanity-checks for each control element
22062306a36Sopenharmony_ci	  read access, such as whether the values returned from the driver
22162306a36Sopenharmony_ci	  are in the proper ranges or the check of the invalid access at
22262306a36Sopenharmony_ci	  out-of-array areas.  The error is printed when the driver gives
22362306a36Sopenharmony_ci	  such unexpected values.
22462306a36Sopenharmony_ci	  When you develop a driver that deals with control elements, it's
22562306a36Sopenharmony_ci	  strongly recommended to try this one once and verify whether you see
22662306a36Sopenharmony_ci	  any relevant errors or not.
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_ciconfig SND_JACK_INJECTION_DEBUG
22962306a36Sopenharmony_ci	bool "Sound jack injection interface via debugfs"
23062306a36Sopenharmony_ci	depends on SND_JACK && SND_DEBUG && DEBUG_FS
23162306a36Sopenharmony_ci	help
23262306a36Sopenharmony_ci	  This option can be used to enable or disable sound jack
23362306a36Sopenharmony_ci	  software injection.
23462306a36Sopenharmony_ci	  Say Y if you are debugging via jack injection interface.
23562306a36Sopenharmony_ci	  If unsure select "N".
23662306a36Sopenharmony_ci
23762306a36Sopenharmony_ciconfig SND_VMASTER
23862306a36Sopenharmony_ci	bool
23962306a36Sopenharmony_ci
24062306a36Sopenharmony_ciconfig SND_DMA_SGBUF
24162306a36Sopenharmony_ci	def_bool y
24262306a36Sopenharmony_ci	depends on X86
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ciconfig SND_CTL_LED
24562306a36Sopenharmony_ci	tristate
24662306a36Sopenharmony_ci	select NEW_LEDS if SND_CTL_LED
24762306a36Sopenharmony_ci	select LEDS_TRIGGERS if SND_CTL_LED
24862306a36Sopenharmony_ci	select LEDS_TRIGGER_AUDIO if SND_CTL_LED
24962306a36Sopenharmony_ci
25062306a36Sopenharmony_cisource "sound/core/seq/Kconfig"
251