ALSA: seq: Reorganize kconfig and build

This is a slightly intensive rewrite of Kconfig and Makefile about
ALSA sequencer stuff.

The first major change is that the kconfig items for the sequencer are
moved to sound/core/seq/Kconfig.  OK, that's easy.

The substantial change is that, instead of hackish top-level module
selection in Makefile, we define a Kconfig item for each sequencer
module.  The driver that requires such sequencer components select
exclusively the kconfig items.  This is more straightforward and
standard way.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Takashi Iwai 2017-06-09 14:40:18 +02:00
parent 3d774d5ef0
commit 0181307abc
6 changed files with 86 additions and 67 deletions

View File

@ -33,31 +33,6 @@ config SND_JACK_INPUT_DEV
depends on SND_JACK depends on SND_JACK
default y if INPUT=y || INPUT=SND default y if INPUT=y || INPUT=SND
config SND_SEQUENCER
tristate "Sequencer support"
select SND_TIMER
help
Say Y or M to enable MIDI sequencer and router support. This
feature allows routing and enqueueing of MIDI events. Events
can be processed at a given time.
Many programs require this feature, so you should enable it
unless you know what you're doing.
config SND_SEQ_DUMMY
tristate "Sequencer dummy client"
depends on SND_SEQUENCER
help
Say Y here to enable the dummy sequencer client. This client
is a simple MIDI-through client: all normal input events are
redirected to the output port immediately.
You don't need this unless you want to connect many MIDI
devices or applications together.
To compile this driver as a module, choose M here: the module
will be called snd-seq-dummy.
config SND_OSSEMUL config SND_OSSEMUL
bool "Enable OSS Emulation" bool "Enable OSS Emulation"
select SOUND_OSS_CORE select SOUND_OSS_CORE
@ -109,20 +84,6 @@ config SND_PCM_TIMER
For some embedded devices, we may disable it to reduce memory For some embedded devices, we may disable it to reduce memory
footprint, about 20KB on x86_64 platform. footprint, about 20KB on x86_64 platform.
config SND_SEQUENCER_OSS
tristate "OSS Sequencer API"
depends on SND_SEQUENCER
depends on SND_OSSEMUL
help
Say Y here to enable OSS sequencer emulation (both
/dev/sequencer and /dev/music interfaces).
Many programs still use the OSS API, so say Y.
If you choose M in "Sequencer support" (SND_SEQUENCER),
this will be compiled as a module. The module will be called
snd-seq-oss.
config SND_HRTIMER config SND_HRTIMER
tristate "HR-timer backend support" tristate "HR-timer backend support"
depends on HIGH_RES_TIMERS depends on HIGH_RES_TIMERS
@ -135,14 +96,6 @@ config SND_HRTIMER
To compile this driver as a module, choose M here: the module To compile this driver as a module, choose M here: the module
will be called snd-hrtimer. will be called snd-hrtimer.
config SND_SEQ_HRTIMER_DEFAULT
bool "Use HR-timer as default sequencer timer"
depends on SND_HRTIMER && SND_SEQUENCER
default y
help
Say Y here to use the HR-timer backend as the default sequencer
timer.
config SND_DYNAMIC_MINORS config SND_DYNAMIC_MINORS
bool "Dynamic device file minor numbers" bool "Dynamic device file minor numbers"
help help

View File

@ -1,16 +1,62 @@
# define SND_XXX_SEQ to min(SND_SEQUENCER,SND_XXX) config SND_SEQUENCER
tristate "Sequencer support"
select SND_TIMER
help
Say Y or M to enable MIDI sequencer and router support. This
feature allows routing and enqueueing of MIDI events. Events
can be processed at a given time.
config SND_RAWMIDI_SEQ Many programs require this feature, so you should enable it
def_tristate SND_SEQUENCER && SND_RAWMIDI unless you know what you're doing.
config SND_OPL3_LIB_SEQ if SND_SEQUENCER
def_tristate SND_SEQUENCER && SND_OPL3_LIB
config SND_OPL4_LIB_SEQ config SND_SEQ_DUMMY
def_tristate SND_SEQUENCER && SND_OPL4_LIB tristate "Sequencer dummy client"
help
Say Y here to enable the dummy sequencer client. This client
is a simple MIDI-through client: all normal input events are
redirected to the output port immediately.
config SND_SBAWE_SEQ You don't need this unless you want to connect many MIDI
def_tristate SND_SEQUENCER && SND_SBAWE devices or applications together.
To compile this driver as a module, choose M here: the module
will be called snd-seq-dummy.
config SND_SEQUENCER_OSS
tristate "OSS Sequencer API"
depends on SND_OSSEMUL
select SND_SEQ_MIDI_EVENT
help
Say Y here to enable OSS sequencer emulation (both
/dev/sequencer and /dev/music interfaces).
Many programs still use the OSS API, so say Y.
To compile this driver as a module, choose M here: the module
will be called snd-seq-oss.
config SND_SEQ_HRTIMER_DEFAULT
bool "Use HR-timer as default sequencer timer"
depends on SND_HRTIMER
default y
help
Say Y here to use the HR-timer backend as the default sequencer
timer.
config SND_SEQ_MIDI_EVENT
def_tristate SND_RAWMIDI
config SND_SEQ_MIDI
tristate
select SND_SEQ_MIDI_EVENT
config SND_SEQ_MIDI_EMUL
tristate
config SND_SEQ_VIRMIDI
tristate
endif # SND_SEQUENCER
config SND_EMU10K1_SEQ
def_tristate SND_SEQUENCER && SND_EMU10K1

View File

@ -15,15 +15,10 @@ snd-seq-dummy-objs := seq_dummy.o
snd-seq-virmidi-objs := seq_virmidi.o snd-seq-virmidi-objs := seq_virmidi.o
obj-$(CONFIG_SND_SEQUENCER) += snd-seq.o snd-seq-device.o obj-$(CONFIG_SND_SEQUENCER) += snd-seq.o snd-seq-device.o
obj-$(CONFIG_SND_SEQUENCER_OSS) += snd-seq-midi-event.o
obj-$(CONFIG_SND_SEQUENCER_OSS) += oss/ obj-$(CONFIG_SND_SEQUENCER_OSS) += oss/
obj-$(CONFIG_SND_SEQ_DUMMY) += snd-seq-dummy.o obj-$(CONFIG_SND_SEQ_DUMMY) += snd-seq-dummy.o
obj-$(CONFIG_SND_SEQ_MIDI) += snd-seq-midi.o
# Toplevel Module Dependency obj-$(CONFIG_SND_SEQ_MIDI_EMUL) += snd-seq-midi-emul.o
obj-$(CONFIG_SND_VIRMIDI) += snd-seq-virmidi.o snd-seq-midi-event.o obj-$(CONFIG_SND_SEQ_MIDI_EVENT) += snd-seq-midi-event.o
obj-$(CONFIG_SND_RAWMIDI_SEQ) += snd-seq-midi.o snd-seq-midi-event.o obj-$(CONFIG_SND_SEQ_VIRMIDI) += snd-seq-virmidi.o
obj-$(CONFIG_SND_OPL3_LIB_SEQ) += snd-seq-midi-event.o snd-seq-midi-emul.o
obj-$(CONFIG_SND_OPL4_LIB_SEQ) += snd-seq-midi-event.o snd-seq-midi-emul.o
obj-$(CONFIG_SND_SBAWE_SEQ) += snd-seq-midi-emul.o snd-seq-virmidi.o
obj-$(CONFIG_SND_EMU10K1_SEQ) += snd-seq-midi-emul.o snd-seq-virmidi.o

View File

@ -12,6 +12,17 @@ config SND_OPL4_LIB
select SND_TIMER select SND_TIMER
select SND_HWDEP select SND_HWDEP
# 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 config SND_VX_LIB
tristate tristate
select FW_LOADER select FW_LOADER
@ -99,6 +110,8 @@ config SND_VIRMIDI
depends on SND_SEQUENCER depends on SND_SEQUENCER
select SND_TIMER select SND_TIMER
select SND_RAWMIDI select SND_RAWMIDI
select SND_SEQ_VIRMIDI
select SND_SEQ_MIDI_EVENT
help help
Say Y here to include the virtual MIDI driver. This driver Say Y here to include the virtual MIDI driver. This driver
allows to connect applications using raw MIDI devices to allows to connect applications using raw MIDI devices to

View File

@ -384,6 +384,12 @@ config SND_SBAWE
To compile this driver as a module, choose M here: the module To compile this driver as a module, choose M here: the module
will be called snd-sbawe. will be called snd-sbawe.
# select SEQ stuff to min(SND_SEQUENCER,SND_XXX)
config SND_SBAWE_SEQ
def_tristate SND_SEQUENCER && SND_SBAWE
select SND_SEQ_MIDI_EMUL
select SND_SEQ_VIRMIDI
config SND_SB16_CSP config SND_SB16_CSP
bool "Sound Blaster 16/AWE CSP support" bool "Sound Blaster 16/AWE CSP support"
depends on (SND_SB16 || SND_SBAWE) && (BROKEN || !PPC) depends on (SND_SB16 || SND_SBAWE) && (BROKEN || !PPC)

View File

@ -477,6 +477,12 @@ config SND_EMU10K1
To compile this driver as a module, choose M here: the module To compile this driver as a module, choose M here: the module
will be called snd-emu10k1. will be called snd-emu10k1.
# select SEQ stuff to min(SND_SEQUENCER,SND_XXX)
config SND_EMU10K1_SEQ
def_tristate SND_SEQUENCER && SND_EMU10K1
select SND_SEQ_MIDI_EMUL
select SND_SEQ_VIRMIDI
config SND_EMU10K1X config SND_EMU10K1X
tristate "Emu10k1X (Dell OEM Version)" tristate "Emu10k1X (Dell OEM Version)"
select SND_AC97_CODEC select SND_AC97_CODEC