mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 18:30:06 +00:00
![Takashi Iwai](/assets/img/avatar_default.png)
Many drivers bind the sequencer stuff in off-load by another driver module, so that it's loaded only on demand. In the current code, this mechanism doesn't work when the driver is built-in while the sequencer is module. We check with IS_REACHABLE() and enable only when the sequencer is in the same level of build. However, this is basically a overshoot. The binder code (snd-seq-device) is an individual module from the sequencer core (snd-seq), and we just have to make the former a built-in while keeping the latter a module for allowing the scenario like the above. This patch achieves that by rewriting Kconfig slightly. Now, a driver that provides the manual sequencer device binding should select CONFIG_SND_SEQ_DEVICE in a way as select SND_SEQ_DEVICE if SND_SEQUENCER != n Note that the "!=n" is needed here to avoid the influence of the sequencer core is module while the driver is built-in. Also, since rawmidi.o may be linked with snd_seq_device.o when built-in, we have to shuffle the code to make the linker happy. (the kernel linker isn't smart enough yet to handle such a case.) That is, snd_seq_device.c is moved to sound/core from sound/core/seq, as well as Makefile. Last but not least, the patch replaces the code using IS_REACHABLE() with IS_ENABLED(), since now the condition meets always when enabled. Signed-off-by: Takashi Iwai <tiwai@suse.de>
238 lines
7.2 KiB
Text
238 lines
7.2 KiB
Text
config SND_MPU401_UART
|
|
tristate
|
|
select SND_RAWMIDI
|
|
|
|
config SND_OPL3_LIB
|
|
tristate
|
|
select SND_TIMER
|
|
select SND_HWDEP
|
|
select SND_SEQ_DEVICE if SND_SEQUENCER != n
|
|
|
|
config SND_OPL4_LIB
|
|
tristate
|
|
select SND_TIMER
|
|
select SND_HWDEP
|
|
select SND_SEQ_DEVICE if SND_SEQUENCER != n
|
|
|
|
# select SEQ stuff to min(SND_SEQUENCER,SND_XXX)
|
|
config SND_OPL3_LIB_SEQ
|
|
def_tristate SND_SEQUENCER && SND_OPL3_LIB
|
|
select SND_SEQ_MIDI_EMUL
|
|
select SND_SEQ_MIDI_EVENT
|
|
|
|
config SND_OPL4_LIB_SEQ
|
|
def_tristate SND_SEQUENCER && SND_OPL4_LIB
|
|
select SND_SEQ_MIDI_EMUL
|
|
select SND_SEQ_MIDI_EVENT
|
|
|
|
config SND_VX_LIB
|
|
tristate
|
|
select FW_LOADER
|
|
select SND_HWDEP
|
|
select SND_PCM
|
|
|
|
config SND_AC97_CODEC
|
|
tristate
|
|
select SND_PCM
|
|
select AC97_BUS
|
|
select SND_VMASTER
|
|
|
|
menuconfig SND_DRIVERS
|
|
bool "Generic sound devices"
|
|
default y
|
|
help
|
|
Support for generic sound devices.
|
|
|
|
if SND_DRIVERS
|
|
|
|
config SND_PCSP
|
|
tristate "PC-Speaker support (READ HELP!)"
|
|
depends on PCSPKR_PLATFORM && X86 && HIGH_RES_TIMERS
|
|
depends on INPUT
|
|
select SND_PCM
|
|
help
|
|
If you don't have a sound card in your computer, you can include a
|
|
driver for the PC speaker which allows it to act like a primitive
|
|
sound card.
|
|
This driver also replaces the pcspkr driver for beeps.
|
|
|
|
You can compile this as a module which will be called snd-pcsp.
|
|
|
|
WARNING: if you already have a soundcard, enabling this
|
|
driver may lead to a problem. Namely, it may get loaded
|
|
before the other sound driver of yours, making the
|
|
pc-speaker a default sound device. Which is likely not
|
|
what you want. To make this driver play nicely with other
|
|
sound driver, you can add this in a configuration file under
|
|
/etc/modprobe.d/ directory:
|
|
options snd-pcsp index=2
|
|
|
|
You don't need this driver if you only want your pc-speaker to beep.
|
|
You don't need this driver if you have a tablet piezo beeper
|
|
in your PC instead of the real speaker.
|
|
|
|
Say N if you have a sound card.
|
|
Say M if you don't.
|
|
Say Y only if you really know what you do.
|
|
|
|
config SND_DUMMY
|
|
tristate "Dummy (/dev/null) soundcard"
|
|
select SND_PCM
|
|
help
|
|
Say Y here to include the dummy driver. This driver does
|
|
nothing, but emulates various mixer controls and PCM devices.
|
|
|
|
You don't need this unless you're testing the hardware support
|
|
of programs using the ALSA API.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-dummy.
|
|
|
|
config SND_ALOOP
|
|
tristate "Generic loopback driver (PCM)"
|
|
select SND_PCM
|
|
help
|
|
Say 'Y' or 'M' to include support for the PCM loopback device.
|
|
This module returns played samples back to the user space using
|
|
the standard ALSA PCM device. The devices are routed 0->1 and
|
|
1->0, where first number is the playback PCM device and second
|
|
number is the capture device. Module creates two PCM devices and
|
|
configured number of substreams (see the pcm_substreams module
|
|
parameter).
|
|
|
|
The loopback device allows time sychronization with an external
|
|
timing source using the time shift universal control (+-20%
|
|
of system time).
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-aloop.
|
|
|
|
config SND_VIRMIDI
|
|
tristate "Virtual MIDI soundcard"
|
|
depends on SND_SEQUENCER
|
|
select SND_TIMER
|
|
select SND_RAWMIDI
|
|
select SND_SEQ_VIRMIDI
|
|
select SND_SEQ_MIDI_EVENT
|
|
help
|
|
Say Y here to include the virtual MIDI driver. This driver
|
|
allows to connect applications using raw MIDI devices to
|
|
sequencer clients.
|
|
|
|
If you don't know what MIDI is, say N here.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-virmidi.
|
|
|
|
config SND_MTPAV
|
|
tristate "MOTU MidiTimePiece AV multiport MIDI"
|
|
select SND_RAWMIDI
|
|
help
|
|
To use a MOTU MidiTimePiece AV multiport MIDI adapter
|
|
connected to the parallel port, say Y here and make sure that
|
|
the standard parallel port driver isn't used for the port.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-mtpav.
|
|
|
|
config SND_MTS64
|
|
tristate "ESI Miditerminal 4140 driver"
|
|
depends on PARPORT
|
|
select SND_RAWMIDI
|
|
help
|
|
The ESI Miditerminal 4140 is a 4 In 4 Out MIDI Interface with
|
|
additional SMPTE Timecode capabilities for the parallel port.
|
|
|
|
Say 'Y' to include support for this device.
|
|
|
|
To compile this driver as a module, chose 'M' here: the module
|
|
will be called snd-mts64.
|
|
|
|
config SND_SERIAL_U16550
|
|
tristate "UART16550 serial MIDI driver"
|
|
select SND_RAWMIDI
|
|
help
|
|
To include support for MIDI serial port interfaces, say Y here
|
|
and read <file:Documentation/sound/alsa/serial-u16550.txt>.
|
|
This driver works with serial UARTs 16550 and better.
|
|
|
|
This driver accesses the serial port hardware directly, so
|
|
make sure that the standard serial driver isn't used or
|
|
deactivated with setserial before loading this driver.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-serial-u16550.
|
|
|
|
config SND_MPU401
|
|
tristate "Generic MPU-401 UART driver"
|
|
select SND_MPU401_UART
|
|
help
|
|
Say Y here to include support for MIDI ports compatible with
|
|
the Roland MPU-401 interface in UART mode.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-mpu401.
|
|
|
|
config SND_PORTMAN2X4
|
|
tristate "Portman 2x4 driver"
|
|
depends on PARPORT
|
|
select SND_RAWMIDI
|
|
help
|
|
Say Y here to include support for Midiman Portman 2x4 parallel
|
|
port MIDI device.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-portman2x4.
|
|
|
|
config SND_ML403_AC97CR
|
|
tristate "Xilinx ML403 AC97 Controller Reference"
|
|
depends on XILINX_VIRTEX
|
|
select SND_AC97_CODEC
|
|
help
|
|
Say Y here to include support for the
|
|
opb_ac97_controller_ref_v1_00_a ip core found in Xilinx's ML403
|
|
reference design.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called snd-ml403_ac97cr.
|
|
|
|
config SND_AC97_POWER_SAVE
|
|
bool "AC97 Power-Saving Mode"
|
|
depends on SND_AC97_CODEC
|
|
default n
|
|
help
|
|
Say Y here to enable the aggressive power-saving support of
|
|
AC97 codecs. In this mode, the power-mode is dynamically
|
|
controlled at each open/close.
|
|
|
|
The mode is activated by passing 'power_save=X' to the
|
|
snd-ac97-codec driver module, where 'X' is the time-out
|
|
value, a nonnegative integer that specifies how many
|
|
seconds of idle time the driver must count before it may
|
|
put the AC97 into power-save mode; a value of 0 (zero)
|
|
disables the use of this power-save mode.
|
|
|
|
After the snd-ac97-codec driver module has been loaded,
|
|
the 'power_save' parameter can be set via sysfs as follows:
|
|
|
|
echo 10 > /sys/module/snd_ac97_codec/parameters/power_save
|
|
|
|
In this case, the time-out is set to 10 seconds; setting
|
|
the time-out to 1 second (the minimum activation value)
|
|
isn't recommended because many applications try to reopen
|
|
the device frequently. A value of 10 seconds would be a
|
|
good choice for normal operations.
|
|
|
|
See Documentation/sound/alsa/powersave.txt for more details.
|
|
|
|
config SND_AC97_POWER_SAVE_DEFAULT
|
|
int "Default time-out for AC97 power-save mode"
|
|
depends on SND_AC97_POWER_SAVE
|
|
default 0
|
|
help
|
|
The default time-out value in seconds for AC97 automatic
|
|
power-save mode. 0 means to disable the power-save mode.
|
|
|
|
See SND_AC97_POWER_SAVE for more details.
|
|
|
|
endif # SND_DRIVERS
|