162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciconfig SND_MPU401_UART
362306a36Sopenharmony_ci	tristate
462306a36Sopenharmony_ci	select SND_RAWMIDI
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig SND_OPL3_LIB
762306a36Sopenharmony_ci	tristate
862306a36Sopenharmony_ci	select SND_TIMER
962306a36Sopenharmony_ci	select SND_HWDEP
1062306a36Sopenharmony_ci	select SND_SEQ_DEVICE if SND_SEQUENCER != n
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciconfig SND_OPL4_LIB
1362306a36Sopenharmony_ci	tristate
1462306a36Sopenharmony_ci	select SND_TIMER
1562306a36Sopenharmony_ci	select SND_HWDEP
1662306a36Sopenharmony_ci	select SND_SEQ_DEVICE if SND_SEQUENCER != n
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci# select SEQ stuff to min(SND_SEQUENCER,SND_XXX)
1962306a36Sopenharmony_ciconfig SND_OPL3_LIB_SEQ
2062306a36Sopenharmony_ci	def_tristate SND_SEQUENCER && SND_OPL3_LIB
2162306a36Sopenharmony_ci	select SND_SEQ_MIDI_EMUL
2262306a36Sopenharmony_ci	select SND_SEQ_MIDI_EVENT
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciconfig SND_OPL4_LIB_SEQ
2562306a36Sopenharmony_ci	def_tristate SND_SEQUENCER && SND_OPL4_LIB
2662306a36Sopenharmony_ci	select SND_SEQ_MIDI_EMUL
2762306a36Sopenharmony_ci	select SND_SEQ_MIDI_EVENT
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciconfig SND_VX_LIB
3062306a36Sopenharmony_ci	tristate
3162306a36Sopenharmony_ci	select FW_LOADER
3262306a36Sopenharmony_ci	select SND_HWDEP
3362306a36Sopenharmony_ci	select SND_PCM
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ciconfig SND_AC97_CODEC
3662306a36Sopenharmony_ci	tristate
3762306a36Sopenharmony_ci	select SND_PCM
3862306a36Sopenharmony_ci	select AC97_BUS
3962306a36Sopenharmony_ci	select SND_VMASTER
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_cimenuconfig SND_DRIVERS
4262306a36Sopenharmony_ci	bool "Generic sound devices"
4362306a36Sopenharmony_ci	default y
4462306a36Sopenharmony_ci	help
4562306a36Sopenharmony_ci	  Support for generic sound devices.
4662306a36Sopenharmony_ci  
4762306a36Sopenharmony_ciif SND_DRIVERS
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciconfig SND_PCSP
5062306a36Sopenharmony_ci	tristate "PC-Speaker support (READ HELP!)"
5162306a36Sopenharmony_ci	depends on PCSPKR_PLATFORM && X86 && HIGH_RES_TIMERS
5262306a36Sopenharmony_ci	depends on INPUT
5362306a36Sopenharmony_ci	select SND_PCM
5462306a36Sopenharmony_ci	help
5562306a36Sopenharmony_ci	  If you don't have a sound card in your computer, you can include a
5662306a36Sopenharmony_ci	  driver for the PC speaker which allows it to act like a primitive
5762306a36Sopenharmony_ci	  sound card.
5862306a36Sopenharmony_ci	  This driver also replaces the pcspkr driver for beeps.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci	  You can compile this as a module which will be called snd-pcsp.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci	  WARNING: if you already have a soundcard, enabling this
6362306a36Sopenharmony_ci	  driver may lead to a problem. Namely, it may get loaded
6462306a36Sopenharmony_ci	  before the other sound driver of yours, making the
6562306a36Sopenharmony_ci	  pc-speaker a default sound device. Which is likely not
6662306a36Sopenharmony_ci	  what you want. To make this driver play nicely with other
6762306a36Sopenharmony_ci	  sound driver, you can add this in a configuration file under
6862306a36Sopenharmony_ci	  /etc/modprobe.d/ directory:
6962306a36Sopenharmony_ci	  options snd-pcsp index=2
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci	  You don't need this driver if you only want your pc-speaker to beep.
7262306a36Sopenharmony_ci	  You don't need this driver if you have a tablet piezo beeper
7362306a36Sopenharmony_ci	  in your PC instead of the real speaker.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci	  Say N if you have a sound card.
7662306a36Sopenharmony_ci	  Say M if you don't.
7762306a36Sopenharmony_ci	  Say Y only if you really know what you do.
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciconfig SND_DUMMY
8062306a36Sopenharmony_ci	tristate "Dummy (/dev/null) soundcard"
8162306a36Sopenharmony_ci	select SND_PCM
8262306a36Sopenharmony_ci	help
8362306a36Sopenharmony_ci	  Say Y here to include the dummy driver.  This driver does
8462306a36Sopenharmony_ci	  nothing, but emulates various mixer controls and PCM devices.
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci	  You don't need this unless you're testing the hardware support
8762306a36Sopenharmony_ci	  of programs using the ALSA API.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
9062306a36Sopenharmony_ci	  will be called snd-dummy.
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ciconfig SND_ALOOP
9362306a36Sopenharmony_ci	tristate "Generic loopback driver (PCM)"
9462306a36Sopenharmony_ci	select SND_PCM
9562306a36Sopenharmony_ci	select SND_TIMER
9662306a36Sopenharmony_ci	help
9762306a36Sopenharmony_ci	  Say 'Y' or 'M' to include support for the PCM loopback device.
9862306a36Sopenharmony_ci	  This module returns played samples back to the user space using
9962306a36Sopenharmony_ci	  the standard ALSA PCM device. The devices are routed 0->1 and
10062306a36Sopenharmony_ci	  1->0, where first number is the playback PCM device and second
10162306a36Sopenharmony_ci	  number is the capture device. Module creates two PCM devices and
10262306a36Sopenharmony_ci	  configured number of substreams (see the pcm_substreams module
10362306a36Sopenharmony_ci	  parameter).
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci	  The loopback device allows time synchronization with an external
10662306a36Sopenharmony_ci	  timing source using the time shift universal control (+-20%
10762306a36Sopenharmony_ci	  of system time).
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
11062306a36Sopenharmony_ci	  will be called snd-aloop.
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ciconfig SND_PCMTEST
11362306a36Sopenharmony_ci	tristate "Virtual PCM test driver"
11462306a36Sopenharmony_ci	depends on DEBUG_FS
11562306a36Sopenharmony_ci	select SND_PCM
11662306a36Sopenharmony_ci	help
11762306a36Sopenharmony_ci	  Say 'Y' or 'M' to include support for the Virtual PCM test driver.
11862306a36Sopenharmony_ci	  This driver is aimed at extended testing of the userspace applications
11962306a36Sopenharmony_ci	  which use the ALSA API, as well as the PCM middle layer testing.
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci	  It can generate random or pattern-based data into the capture stream,
12262306a36Sopenharmony_ci	  check the playback stream for containing the selected pattern, inject
12362306a36Sopenharmony_ci	  time delays during capture/playback, redefine the RESET ioctl operation
12462306a36Sopenharmony_ci	  to perform the PCM middle layer testing and inject errors during the
12562306a36Sopenharmony_ci	  PCM callbacks. It supports both interleaved and non-interleaved access
12662306a36Sopenharmony_ci	  modes. You can find the corresponding selftest in the 'alsa'
12762306a36Sopenharmony_ci	  selftests folder.
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ciconfig SND_VIRMIDI
13062306a36Sopenharmony_ci	tristate "Virtual MIDI soundcard"
13162306a36Sopenharmony_ci	depends on SND_SEQUENCER
13262306a36Sopenharmony_ci	select SND_TIMER
13362306a36Sopenharmony_ci	select SND_RAWMIDI
13462306a36Sopenharmony_ci	select SND_SEQ_VIRMIDI
13562306a36Sopenharmony_ci	select SND_SEQ_MIDI_EVENT
13662306a36Sopenharmony_ci	help
13762306a36Sopenharmony_ci	  Say Y here to include the virtual MIDI driver.  This driver
13862306a36Sopenharmony_ci	  allows to connect applications using raw MIDI devices to
13962306a36Sopenharmony_ci	  sequencer clients.
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci	  If you don't know what MIDI is, say N here.
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
14462306a36Sopenharmony_ci	  will be called snd-virmidi.
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ciconfig SND_MTPAV
14762306a36Sopenharmony_ci	tristate "MOTU MidiTimePiece AV multiport MIDI"
14862306a36Sopenharmony_ci	depends on HAS_IOPORT
14962306a36Sopenharmony_ci	select SND_RAWMIDI
15062306a36Sopenharmony_ci	help
15162306a36Sopenharmony_ci	  To use a MOTU MidiTimePiece AV multiport MIDI adapter
15262306a36Sopenharmony_ci	  connected to the parallel port, say Y here and make sure that
15362306a36Sopenharmony_ci	  the standard parallel port driver isn't used for the port.
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
15662306a36Sopenharmony_ci	  will be called snd-mtpav.
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ciconfig SND_MTS64
15962306a36Sopenharmony_ci	tristate "ESI Miditerminal 4140 driver"
16062306a36Sopenharmony_ci	depends on PARPORT
16162306a36Sopenharmony_ci	select SND_RAWMIDI
16262306a36Sopenharmony_ci	help
16362306a36Sopenharmony_ci	  The ESI Miditerminal 4140 is a 4 In 4 Out MIDI Interface with 
16462306a36Sopenharmony_ci	  additional SMPTE Timecode capabilities for the parallel port.
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci	  Say 'Y' to include support for this device.
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci	  To compile this driver as a module, chose 'M' here: the module 
16962306a36Sopenharmony_ci	  will be called snd-mts64.
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ciconfig SND_SERIAL_U16550
17262306a36Sopenharmony_ci	tristate "UART16550 serial MIDI driver"
17362306a36Sopenharmony_ci	depends on HAS_IOPORT
17462306a36Sopenharmony_ci	select SND_RAWMIDI
17562306a36Sopenharmony_ci	help
17662306a36Sopenharmony_ci	  To include support for MIDI serial port interfaces, say Y here
17762306a36Sopenharmony_ci	  and read <file:Documentation/sound/cards/serial-u16550.rst>.
17862306a36Sopenharmony_ci	  This driver works with serial UARTs 16550 and better.
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci	  This driver accesses the serial port hardware directly, so
18162306a36Sopenharmony_ci	  make sure that the standard serial driver isn't used or
18262306a36Sopenharmony_ci	  deactivated with setserial before loading this driver.
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
18562306a36Sopenharmony_ci	  will be called snd-serial-u16550.
18662306a36Sopenharmony_ci
18762306a36Sopenharmony_ciconfig SND_SERIAL_GENERIC
18862306a36Sopenharmony_ci	tristate "Generic serial MIDI driver"
18962306a36Sopenharmony_ci	depends on SERIAL_DEV_BUS
19062306a36Sopenharmony_ci	depends on OF
19162306a36Sopenharmony_ci	select SND_RAWMIDI
19262306a36Sopenharmony_ci	help
19362306a36Sopenharmony_ci	  To include support for mapping generic serial devices as raw
19462306a36Sopenharmony_ci	  ALSA MIDI devices, say Y here. The driver only supports setting
19562306a36Sopenharmony_ci	  the serial port to standard baudrates. To attain the standard MIDI
19662306a36Sopenharmony_ci	  baudrate of 31.25 kBaud, configure the clock of the underlying serial
19762306a36Sopenharmony_ci	  device so that a requested 38.4 kBaud will result in the standard speed.
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ci	  Use this devicetree binding to configure serial port mapping
20062306a36Sopenharmony_ci	  <file:Documentation/devicetree/bindings/sound/serial-midi.yaml>
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
20362306a36Sopenharmony_ci	  will be called snd-serial-generic.
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ciconfig SND_MPU401
20662306a36Sopenharmony_ci	tristate "Generic MPU-401 UART driver"
20762306a36Sopenharmony_ci	depends on HAS_IOPORT
20862306a36Sopenharmony_ci	select SND_MPU401_UART
20962306a36Sopenharmony_ci	help
21062306a36Sopenharmony_ci	  Say Y here to include support for MIDI ports compatible with
21162306a36Sopenharmony_ci	  the Roland MPU-401 interface in UART mode.
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
21462306a36Sopenharmony_ci	  will be called snd-mpu401.
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ciconfig SND_PORTMAN2X4
21762306a36Sopenharmony_ci	tristate "Portman 2x4 driver"
21862306a36Sopenharmony_ci	depends on PARPORT
21962306a36Sopenharmony_ci	select SND_RAWMIDI
22062306a36Sopenharmony_ci	help
22162306a36Sopenharmony_ci	  Say Y here to include support for Midiman Portman 2x4 parallel
22262306a36Sopenharmony_ci	  port MIDI device.
22362306a36Sopenharmony_ci
22462306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the module
22562306a36Sopenharmony_ci	  will be called snd-portman2x4.
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ciconfig SND_AC97_POWER_SAVE
22862306a36Sopenharmony_ci	bool "AC97 Power-Saving Mode"
22962306a36Sopenharmony_ci	depends on SND_AC97_CODEC
23062306a36Sopenharmony_ci	default n
23162306a36Sopenharmony_ci	help
23262306a36Sopenharmony_ci	  Say Y here to enable the aggressive power-saving support of
23362306a36Sopenharmony_ci	  AC97 codecs.  In this mode, the power-mode is dynamically
23462306a36Sopenharmony_ci	  controlled at each open/close.
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci	  The mode is activated by passing 'power_save=X' to the
23762306a36Sopenharmony_ci	  snd-ac97-codec driver module, where 'X' is the time-out
23862306a36Sopenharmony_ci	  value, a nonnegative integer that specifies how many
23962306a36Sopenharmony_ci	  seconds of idle time the driver must count before it may
24062306a36Sopenharmony_ci	  put the AC97 into power-save mode;  a value of 0 (zero)
24162306a36Sopenharmony_ci	  disables the use of this power-save mode.
24262306a36Sopenharmony_ci
24362306a36Sopenharmony_ci	  After the snd-ac97-codec driver module has been loaded,
24462306a36Sopenharmony_ci	  the 'power_save' parameter can be set via sysfs as follows:
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci	    echo 10 > /sys/module/snd_ac97_codec/parameters/power_save
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_ci	  In this case, the time-out is set to 10 seconds; setting
24962306a36Sopenharmony_ci	  the time-out to 1 second (the minimum activation value)
25062306a36Sopenharmony_ci	  isn't recommended because many applications try to reopen
25162306a36Sopenharmony_ci	  the device frequently.  A value of 10 seconds would be a
25262306a36Sopenharmony_ci	  good choice for normal operations.
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ci	  See Documentation/sound/designs/powersave.rst for more details.
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_ciconfig SND_AC97_POWER_SAVE_DEFAULT
25762306a36Sopenharmony_ci	int "Default time-out for AC97 power-save mode"
25862306a36Sopenharmony_ci	depends on SND_AC97_POWER_SAVE
25962306a36Sopenharmony_ci	default 0
26062306a36Sopenharmony_ci	help
26162306a36Sopenharmony_ci	  The default time-out value in seconds for AC97 automatic
26262306a36Sopenharmony_ci	  power-save mode.  0 means to disable the power-save mode.
26362306a36Sopenharmony_ci
26462306a36Sopenharmony_ci	  See SND_AC97_POWER_SAVE for more details.
26562306a36Sopenharmony_ci
26662306a36Sopenharmony_ciendif	# SND_DRIVERS
267