1# SPDX-License-Identifier: GPL-2.0-only
2config SND_MPU401_UART
3        tristate
4        select SND_RAWMIDI
5
6config SND_OPL3_LIB
7	tristate
8	select SND_TIMER
9	select SND_HWDEP
10	select SND_SEQ_DEVICE if SND_SEQUENCER != n
11
12config SND_OPL4_LIB
13	tristate
14	select SND_TIMER
15	select SND_HWDEP
16	select SND_SEQ_DEVICE if SND_SEQUENCER != n
17
18# select SEQ stuff to min(SND_SEQUENCER,SND_XXX)
19config SND_OPL3_LIB_SEQ
20	def_tristate SND_SEQUENCER && SND_OPL3_LIB
21	select SND_SEQ_MIDI_EMUL
22	select SND_SEQ_MIDI_EVENT
23
24config SND_OPL4_LIB_SEQ
25	def_tristate SND_SEQUENCER && SND_OPL4_LIB
26	select SND_SEQ_MIDI_EMUL
27	select SND_SEQ_MIDI_EVENT
28
29config SND_VX_LIB
30	tristate
31	select FW_LOADER
32	select SND_HWDEP
33	select SND_PCM
34
35config SND_AC97_CODEC
36	tristate
37	select SND_PCM
38	select AC97_BUS
39	select SND_VMASTER
40
41menuconfig SND_DRIVERS
42	bool "Generic sound devices"
43	default y
44	help
45	  Support for generic sound devices.
46
47if SND_DRIVERS
48
49config SND_PCSP
50	tristate "PC-Speaker support (READ HELP!)"
51	depends on PCSPKR_PLATFORM && X86 && HIGH_RES_TIMERS
52	depends on INPUT
53	select SND_PCM
54	help
55	  If you don't have a sound card in your computer, you can include a
56	  driver for the PC speaker which allows it to act like a primitive
57	  sound card.
58	  This driver also replaces the pcspkr driver for beeps.
59
60	  You can compile this as a module which will be called snd-pcsp.
61
62	  WARNING: if you already have a soundcard, enabling this
63	  driver may lead to a problem. Namely, it may get loaded
64	  before the other sound driver of yours, making the
65	  pc-speaker a default sound device. Which is likely not
66	  what you want. To make this driver play nicely with other
67	  sound driver, you can add this in a configuration file under
68	  /etc/modprobe.d/ directory:
69	  options snd-pcsp index=2
70
71	  You don't need this driver if you only want your pc-speaker to beep.
72	  You don't need this driver if you have a tablet piezo beeper
73	  in your PC instead of the real speaker.
74
75	  Say N if you have a sound card.
76	  Say M if you don't.
77	  Say Y only if you really know what you do.
78
79config SND_DUMMY
80	tristate "Dummy (/dev/null) soundcard"
81	select SND_PCM
82	help
83	  Say Y here to include the dummy driver.  This driver does
84	  nothing, but emulates various mixer controls and PCM devices.
85
86	  You don't need this unless you're testing the hardware support
87	  of programs using the ALSA API.
88
89	  To compile this driver as a module, choose M here: the module
90	  will be called snd-dummy.
91
92config SND_ALOOP
93        tristate "Generic loopback driver (PCM)"
94        select SND_PCM
95        help
96          Say 'Y' or 'M' to include support for the PCM loopback device.
97	  This module returns played samples back to the user space using
98	  the standard ALSA PCM device. The devices are routed 0->1 and
99          1->0, where first number is the playback PCM device and second
100	  number is the capture device. Module creates two PCM devices and
101	  configured number of substreams (see the pcm_substreams module
102          parameter).
103
104	  The loopback device allows time sychronization with an external
105	  timing source using the time shift universal control (+-20%
106	  of system time).
107
108	  To compile this driver as a module, choose M here: the module
109	  will be called snd-aloop.
110
111config SND_VIRMIDI
112	tristate "Virtual MIDI soundcard"
113	depends on SND_SEQUENCER
114	select SND_TIMER
115	select SND_RAWMIDI
116	select SND_SEQ_VIRMIDI
117	select SND_SEQ_MIDI_EVENT
118	help
119	  Say Y here to include the virtual MIDI driver.  This driver
120	  allows to connect applications using raw MIDI devices to
121	  sequencer clients.
122
123	  If you don't know what MIDI is, say N here.
124
125	  To compile this driver as a module, choose M here: the module
126	  will be called snd-virmidi.
127
128config SND_MTPAV
129	tristate "MOTU MidiTimePiece AV multiport MIDI"
130	select SND_RAWMIDI
131	help
132	  To use a MOTU MidiTimePiece AV multiport MIDI adapter
133	  connected to the parallel port, say Y here and make sure that
134	  the standard parallel port driver isn't used for the port.
135
136	  To compile this driver as a module, choose M here: the module
137	  will be called snd-mtpav.
138
139config SND_MTS64
140	tristate "ESI Miditerminal 4140 driver"
141	depends on PARPORT
142	select SND_RAWMIDI
143	help
144	  The ESI Miditerminal 4140 is a 4 In 4 Out MIDI Interface with
145          additional SMPTE Timecode capabilities for the parallel port.
146
147	  Say 'Y' to include support for this device.
148
149	  To compile this driver as a module, chose 'M' here: the module
150          will be called snd-mts64.
151
152config SND_SERIAL_U16550
153	tristate "UART16550 serial MIDI driver"
154	select SND_RAWMIDI
155	help
156	  To include support for MIDI serial port interfaces, say Y here
157	  and read <file:Documentation/sound/cards/serial-u16550.rst>.
158	  This driver works with serial UARTs 16550 and better.
159
160	  This driver accesses the serial port hardware directly, so
161	  make sure that the standard serial driver isn't used or
162	  deactivated with setserial before loading this driver.
163
164	  To compile this driver as a module, choose M here: the module
165	  will be called snd-serial-u16550.
166
167config SND_MPU401
168	tristate "Generic MPU-401 UART driver"
169	select SND_MPU401_UART
170	help
171	  Say Y here to include support for MIDI ports compatible with
172	  the Roland MPU-401 interface in UART mode.
173
174	  To compile this driver as a module, choose M here: the module
175	  will be called snd-mpu401.
176
177config SND_PORTMAN2X4
178	tristate "Portman 2x4 driver"
179	depends on PARPORT
180	select SND_RAWMIDI
181	help
182	  Say Y here to include support for Midiman Portman 2x4 parallel
183	  port MIDI device.
184
185	  To compile this driver as a module, choose M here: the module
186	  will be called snd-portman2x4.
187
188config SND_ML403_AC97CR
189	tristate "Xilinx ML403 AC97 Controller Reference"
190	depends on XILINX_VIRTEX
191	select SND_AC97_CODEC
192	help
193	  Say Y here to include support for the
194	  opb_ac97_controller_ref_v1_00_a ip core found in Xilinx's ML403
195	  reference design.
196
197	  To compile this driver as a module, choose M here: the module
198	  will be called snd-ml403_ac97cr.
199
200config SND_AC97_POWER_SAVE
201	bool "AC97 Power-Saving Mode"
202	depends on SND_AC97_CODEC
203	default n
204	help
205	  Say Y here to enable the aggressive power-saving support of
206	  AC97 codecs.  In this mode, the power-mode is dynamically
207	  controlled at each open/close.
208
209	  The mode is activated by passing 'power_save=X' to the
210	  snd-ac97-codec driver module, where 'X' is the time-out
211	  value, a nonnegative integer that specifies how many
212	  seconds of idle time the driver must count before it may
213	  put the AC97 into power-save mode;  a value of 0 (zero)
214	  disables the use of this power-save mode.
215
216	  After the snd-ac97-codec driver module has been loaded,
217	  the 'power_save' parameter can be set via sysfs as follows:
218
219	    echo 10 > /sys/module/snd_ac97_codec/parameters/power_save
220
221	  In this case, the time-out is set to 10 seconds; setting
222	  the time-out to 1 second (the minimum activation value)
223	  isn't recommended because many applications try to reopen
224	  the device frequently.  A value of 10 seconds would be a
225	  good choice for normal operations.
226
227	  See Documentation/sound/designs/powersave.rst for more details.
228
229config SND_AC97_POWER_SAVE_DEFAULT
230	int "Default time-out for AC97 power-save mode"
231	depends on SND_AC97_POWER_SAVE
232	default 0
233	help
234	  The default time-out value in seconds for AC97 automatic
235	  power-save mode.  0 means to disable the power-save mode.
236
237	  See SND_AC97_POWER_SAVE for more details.
238
239endif	# SND_DRIVERS
240