Merge branch 'topic/seq-kconfig' into for-next

This commit is contained in:
Takashi Iwai 2017-06-13 07:50:09 +02:00
commit 7f8a01b77b
27 changed files with 138 additions and 110 deletions

View File

@ -25,9 +25,7 @@
#include <sound/seq_device.h> #include <sound/seq_device.h>
#include <sound/soundfont.h> #include <sound/soundfont.h>
#include <sound/seq_midi_emul.h> #include <sound/seq_midi_emul.h>
#ifdef CONFIG_SND_SEQUENCER_OSS
#include <sound/seq_oss.h> #include <sound/seq_oss.h>
#endif
#include <sound/emux_legacy.h> #include <sound/emux_legacy.h>
#include <sound/seq_virmidi.h> #include <sound/seq_virmidi.h>
@ -66,7 +64,7 @@ struct snd_emux_operators {
const void __user *data, long count); const void __user *data, long count);
void (*sysex)(struct snd_emux *emu, char *buf, int len, int parsed, void (*sysex)(struct snd_emux *emu, char *buf, int len, int parsed,
struct snd_midi_channel_set *chset); struct snd_midi_channel_set *chset);
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
int (*oss_ioctl)(struct snd_emux *emu, int cmd, int p1, int p2); int (*oss_ioctl)(struct snd_emux *emu, int cmd, int p1, int p2);
#endif #endif
}; };
@ -129,7 +127,7 @@ struct snd_emux {
struct snd_info_entry *proc; struct snd_info_entry *proc;
#endif #endif
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
struct snd_seq_device *oss_synth; struct snd_seq_device *oss_synth;
#endif #endif
}; };
@ -150,7 +148,7 @@ struct snd_emux_port {
#ifdef SNDRV_EMUX_USE_RAW_EFFECT #ifdef SNDRV_EMUX_USE_RAW_EFFECT
struct snd_emux_effect_table *effect; struct snd_emux_effect_table *effect;
#endif #endif
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
struct snd_seq_oss_arg *oss_arg; struct snd_seq_oss_arg *oss_arg;
#endif #endif
}; };

View File

@ -55,10 +55,8 @@
#include <sound/hwdep.h> #include <sound/hwdep.h>
#include <sound/timer.h> #include <sound/timer.h>
#include <sound/seq_midi_emul.h> #include <sound/seq_midi_emul.h>
#ifdef CONFIG_SND_SEQUENCER_OSS
#include <sound/seq_oss.h> #include <sound/seq_oss.h>
#include <sound/seq_oss_legacy.h> #include <sound/seq_oss_legacy.h>
#endif
#include <sound/seq_device.h> #include <sound/seq_device.h>
#include <sound/asound_fm.h> #include <sound/asound_fm.h>
@ -330,7 +328,7 @@ struct snd_opl3 {
struct snd_seq_device *seq_dev; /* sequencer device */ struct snd_seq_device *seq_dev; /* sequencer device */
struct snd_midi_channel_set * chset; struct snd_midi_channel_set * chset;
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
struct snd_seq_device *oss_seq_dev; /* OSS sequencer device */ struct snd_seq_device *oss_seq_dev; /* OSS sequencer device */
struct snd_midi_channel_set * oss_chset; struct snd_midi_channel_set * oss_chset;
#endif #endif

View File

@ -110,6 +110,8 @@ source "sound/soc/Kconfig"
source "sound/x86/Kconfig" source "sound/x86/Kconfig"
source "sound/synth/Kconfig"
endif # SND endif # SND
menuconfig SOUND_PRIME menuconfig SOUND_PRIME

View File

@ -18,8 +18,12 @@ config SND_DMAENGINE_PCM
config SND_HWDEP config SND_HWDEP
tristate tristate
config SND_SEQ_DEVICE
tristate
config SND_RAWMIDI config SND_RAWMIDI
tristate tristate
select SND_SEQ_DEVICE if SND_SEQUENCER != n
config SND_COMPRESS_OFFLOAD config SND_COMPRESS_OFFLOAD
tristate tristate
@ -33,38 +37,15 @@ 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"
select SOUND_OSS_CORE select SOUND_OSS_CORE
bool help
This option enables the build of OSS emulation layer.
config SND_MIXER_OSS config SND_MIXER_OSS
tristate "OSS Mixer API" tristate "OSS Mixer API"
select SND_OSSEMUL depends on SND_OSSEMUL
help help
To enable OSS mixer API emulation (/dev/mixer*), say Y here To enable OSS mixer API emulation (/dev/mixer*), say Y here
and read <file:Documentation/sound/alsa/OSS-Emulation.txt>. and read <file:Documentation/sound/alsa/OSS-Emulation.txt>.
@ -76,7 +57,7 @@ config SND_MIXER_OSS
config SND_PCM_OSS config SND_PCM_OSS
tristate "OSS PCM (digital audio) API" tristate "OSS PCM (digital audio) API"
select SND_OSSEMUL depends on SND_OSSEMUL
select SND_PCM select SND_PCM
help help
To enable OSS digital audio (PCM) emulation (/dev/dsp*), say Y To enable OSS digital audio (PCM) emulation (/dev/dsp*), say Y
@ -107,20 +88,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
bool "OSS Sequencer API"
depends on SND_SEQUENCER
select 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
@ -133,14 +100,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

@ -31,6 +31,7 @@ snd-timer-objs := timer.o
snd-hrtimer-objs := hrtimer.o snd-hrtimer-objs := hrtimer.o
snd-rtctimer-objs := rtctimer.o snd-rtctimer-objs := rtctimer.o
snd-hwdep-objs := hwdep.o snd-hwdep-objs := hwdep.o
snd-seq-device-objs := seq_device.o
snd-compress-objs := compress_offload.o snd-compress-objs := compress_offload.o
@ -40,6 +41,7 @@ obj-$(CONFIG_SND_TIMER) += snd-timer.o
obj-$(CONFIG_SND_HRTIMER) += snd-hrtimer.o obj-$(CONFIG_SND_HRTIMER) += snd-hrtimer.o
obj-$(CONFIG_SND_PCM) += snd-pcm.o obj-$(CONFIG_SND_PCM) += snd-pcm.o
obj-$(CONFIG_SND_DMAENGINE_PCM) += snd-pcm-dmaengine.o obj-$(CONFIG_SND_DMAENGINE_PCM) += snd-pcm-dmaengine.o
obj-$(CONFIG_SND_SEQ_DEVICE) += snd-seq-device.o
obj-$(CONFIG_SND_RAWMIDI) += snd-rawmidi.o obj-$(CONFIG_SND_RAWMIDI) += snd-rawmidi.o
obj-$(CONFIG_SND_OSSEMUL) += oss/ obj-$(CONFIG_SND_OSSEMUL) += oss/

View File

@ -1610,7 +1610,7 @@ static int snd_rawmidi_dev_free(struct snd_device *device)
return snd_rawmidi_free(rmidi); return snd_rawmidi_free(rmidi);
} }
#if IS_REACHABLE(CONFIG_SND_SEQUENCER) #if IS_ENABLED(CONFIG_SND_SEQUENCER)
static void snd_rawmidi_dev_seq_free(struct snd_seq_device *device) static void snd_rawmidi_dev_seq_free(struct snd_seq_device *device)
{ {
struct snd_rawmidi *rmidi = device->private_data; struct snd_rawmidi *rmidi = device->private_data;
@ -1691,7 +1691,7 @@ static int snd_rawmidi_dev_register(struct snd_device *device)
} }
} }
rmidi->proc_entry = entry; rmidi->proc_entry = entry;
#if IS_REACHABLE(CONFIG_SND_SEQUENCER) #if IS_ENABLED(CONFIG_SND_SEQUENCER)
if (!rmidi->ops || !rmidi->ops->dev_register) { /* own registration mechanism */ if (!rmidi->ops || !rmidi->ops->dev_register) { /* own registration mechanism */
if (snd_seq_device_new(rmidi->card, rmidi->device, SNDRV_SEQ_DEV_ID_MIDISYNTH, 0, &rmidi->seq_dev) >= 0) { if (snd_seq_device_new(rmidi->card, rmidi->device, SNDRV_SEQ_DEV_ID_MIDISYNTH, 0, &rmidi->seq_dev) >= 0) {
rmidi->seq_dev->private_data = rmidi; rmidi->seq_dev->private_data = rmidi;

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
select SND_SEQ_DEVICE
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.
config SND_EMU10K1_SEQ To compile this driver as a module, choose M here: the module
def_tristate SND_SEQUENCER && SND_EMU10K1 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

View File

@ -3,7 +3,6 @@
# Copyright (c) 1999 by Jaroslav Kysela <perex@perex.cz> # Copyright (c) 1999 by Jaroslav Kysela <perex@perex.cz>
# #
snd-seq-device-objs := seq_device.o
snd-seq-objs := seq.o seq_lock.o seq_clientmgr.o seq_memory.o seq_queue.o \ snd-seq-objs := seq.o seq_lock.o seq_clientmgr.o seq_memory.o seq_queue.o \
seq_fifo.o seq_prioq.o seq_timer.o \ seq_fifo.o seq_prioq.o seq_timer.o \
seq_system.o seq_ports.o seq_system.o seq_ports.o
@ -14,17 +13,11 @@ snd-seq-midi-event-objs := seq_midi_event.o
snd-seq-dummy-objs := seq_dummy.o 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
ifeq ($(CONFIG_SND_SEQUENCER_OSS),y) obj-$(CONFIG_SND_SEQUENCER_OSS) += oss/
obj-$(CONFIG_SND_SEQUENCER) += snd-seq-midi-event.o
obj-$(CONFIG_SND_SEQUENCER) += oss/
endif
obj-$(CONFIG_SND_SEQ_DUMMY) += snd-seq-dummy.o
# Toplevel Module Dependency obj-$(CONFIG_SND_SEQ_DUMMY) += snd-seq-dummy.o
obj-$(CONFIG_SND_VIRMIDI) += snd-seq-virmidi.o snd-seq-midi-event.o obj-$(CONFIG_SND_SEQ_MIDI) += snd-seq-midi.o
obj-$(CONFIG_SND_RAWMIDI_SEQ) += snd-seq-midi.o snd-seq-midi-event.o obj-$(CONFIG_SND_SEQ_MIDI_EMUL) += snd-seq-midi-emul.o
obj-$(CONFIG_SND_OPL3_LIB_SEQ) += snd-seq-midi-event.o snd-seq-midi-emul.o obj-$(CONFIG_SND_SEQ_MIDI_EVENT) += snd-seq-midi-event.o
obj-$(CONFIG_SND_OPL4_LIB_SEQ) += snd-seq-midi-event.o snd-seq-midi-emul.o obj-$(CONFIG_SND_SEQ_VIRMIDI) += snd-seq-virmidi.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

@ -7,4 +7,4 @@ snd-seq-oss-objs := seq_oss.o seq_oss_init.o seq_oss_timer.o seq_oss_ioctl.o \
seq_oss_event.o seq_oss_rw.o seq_oss_synth.o \ seq_oss_event.o seq_oss_rw.o seq_oss_synth.o \
seq_oss_midi.o seq_oss_readq.o seq_oss_writeq.o seq_oss_midi.o seq_oss_readq.o seq_oss_writeq.o
obj-$(CONFIG_SND_SEQUENCER) += snd-seq-oss.o obj-$(CONFIG_SND_SEQUENCER_OSS) += snd-seq-oss.o

View File

@ -6,11 +6,24 @@ config SND_OPL3_LIB
tristate tristate
select SND_TIMER select SND_TIMER
select SND_HWDEP select SND_HWDEP
select SND_SEQ_DEVICE if SND_SEQUENCER != n
config SND_OPL4_LIB config SND_OPL4_LIB
tristate tristate
select SND_TIMER select SND_TIMER
select SND_HWDEP 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 config SND_VX_LIB
tristate tristate
@ -99,6 +112,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

@ -528,7 +528,7 @@ int snd_opl3_hwdep_new(struct snd_opl3 * opl3,
opl3->hwdep = hw; opl3->hwdep = hw;
opl3->seq_dev_num = seq_device; opl3->seq_dev_num = seq_device;
#if IS_REACHABLE(CONFIG_SND_SEQUENCER) #if IS_ENABLED(CONFIG_SND_SEQUENCER)
if (snd_seq_device_new(card, seq_device, SNDRV_SEQ_DEV_ID_OPL3, if (snd_seq_device_new(card, seq_device, SNDRV_SEQ_DEV_ID_OPL3,
sizeof(struct snd_opl3 *), &opl3->seq_dev) >= 0) { sizeof(struct snd_opl3 *), &opl3->seq_dev) >= 0) {
strcpy(opl3->seq_dev->name, hw->name); strcpy(opl3->seq_dev->name, hw->name);

View File

@ -252,7 +252,7 @@ static int snd_opl3_seq_probe(struct device *_dev)
spin_lock_init(&opl3->sys_timer_lock); spin_lock_init(&opl3->sys_timer_lock);
opl3->sys_timer_status = 0; opl3->sys_timer_status = 0;
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
snd_opl3_init_seq_oss(opl3, name); snd_opl3_init_seq_oss(opl3, name);
#endif #endif
return 0; return 0;
@ -267,7 +267,7 @@ static int snd_opl3_seq_remove(struct device *_dev)
if (opl3 == NULL) if (opl3 == NULL)
return -EINVAL; return -EINVAL;
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
snd_opl3_free_seq_oss(opl3); snd_opl3_free_seq_oss(opl3);
#endif #endif
if (opl3->seq_client >= 0) { if (opl3->seq_client >= 0) {

View File

@ -44,9 +44,12 @@ void snd_opl3_load_drums(struct snd_opl3 *opl3);
void snd_opl3_drum_switch(struct snd_opl3 *opl3, int note, int on_off, int vel, struct snd_midi_channel *chan); void snd_opl3_drum_switch(struct snd_opl3 *opl3, int note, int on_off, int vel, struct snd_midi_channel *chan);
/* Prototypes for opl3_oss.c */ /* Prototypes for opl3_oss.c */
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
void snd_opl3_init_seq_oss(struct snd_opl3 *opl3, char *name); void snd_opl3_init_seq_oss(struct snd_opl3 *opl3, char *name);
void snd_opl3_free_seq_oss(struct snd_opl3 *opl3); void snd_opl3_free_seq_oss(struct snd_opl3 *opl3);
#else
#define snd_opl3_init_seq_oss(opl3, name) /* NOP */
#define snd_opl3_free_seq_oss(opl3) /* NOP */
#endif #endif
#endif #endif

View File

@ -153,7 +153,7 @@ static int snd_opl4_detect(struct snd_opl4 *opl4)
return 0; return 0;
} }
#if IS_REACHABLE(CONFIG_SND_SEQUENCER) #if IS_ENABLED(CONFIG_SND_SEQUENCER)
static void snd_opl4_seq_dev_free(struct snd_seq_device *seq_dev) static void snd_opl4_seq_dev_free(struct snd_seq_device *seq_dev)
{ {
struct snd_opl4 *opl4 = seq_dev->private_data; struct snd_opl4 *opl4 = seq_dev->private_data;
@ -249,7 +249,7 @@ int snd_opl4_create(struct snd_card *card,
snd_opl4_create_mixer(opl4); snd_opl4_create_mixer(opl4);
snd_opl4_create_proc(opl4); snd_opl4_create_proc(opl4);
#if IS_REACHABLE(CONFIG_SND_SEQUENCER) #if IS_ENABLED(CONFIG_SND_SEQUENCER)
opl4->seq_client = -1; opl4->seq_client = -1;
if (opl4->hardware < OPL3_HW_OPL4_ML) if (opl4->hardware < OPL3_HW_OPL4_ML)
snd_opl4_create_seq_dev(opl4, seq_device); snd_opl4_create_seq_dev(opl4, seq_device);

View File

@ -184,7 +184,7 @@ struct snd_opl4 {
#endif #endif
struct mutex access_mutex; struct mutex access_mutex;
#if IS_REACHABLE(CONFIG_SND_SEQUENCER) #if IS_ENABLED(CONFIG_SND_SEQUENCER)
int used; int used;
int seq_dev_num; int seq_dev_num;

View File

@ -377,6 +377,7 @@ config SND_SBAWE
select SND_OPL3_LIB select SND_OPL3_LIB
select SND_MPU401_UART select SND_MPU401_UART
select SND_SB16_DSP select SND_SB16_DSP
select SND_SEQ_DEVICE if SND_SEQUENCER != n
help help
Say Y here to include support for Sound Blaster AWE soundcards Say Y here to include support for Sound Blaster AWE soundcards
(including the Plug and Play version). (including the Plug and Play version).
@ -384,6 +385,13 @@ 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
select SND_SYNTH_EMUX
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

@ -1138,7 +1138,7 @@ snd_emu8000_new(struct snd_card *card, int index, long port, int seq_ports,
snd_emu8000_free(hw); snd_emu8000_free(hw);
return err; return err;
} }
#if IS_REACHABLE(CONFIG_SND_SEQUENCER) #if IS_ENABLED(CONFIG_SND_SEQUENCER)
if (snd_seq_device_new(card, index, SNDRV_SEQ_DEV_ID_EMU8000, if (snd_seq_device_new(card, index, SNDRV_SEQ_DEV_ID_EMU8000,
sizeof(struct snd_emu8000*), &awe) >= 0) { sizeof(struct snd_emu8000*), &awe) >= 0) {
strcpy(awe->name, "EMU-8000"); strcpy(awe->name, "EMU-8000");

View File

@ -36,7 +36,7 @@ static void reset_voice(struct snd_emux *emu, int ch);
static void terminate_voice(struct snd_emux_voice *vp); static void terminate_voice(struct snd_emux_voice *vp);
static void sysex(struct snd_emux *emu, char *buf, int len, int parsed, static void sysex(struct snd_emux *emu, char *buf, int len, int parsed,
struct snd_midi_channel_set *chset); struct snd_midi_channel_set *chset);
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
static int oss_ioctl(struct snd_emux *emu, int cmd, int p1, int p2); static int oss_ioctl(struct snd_emux *emu, int cmd, int p1, int p2);
#endif #endif
static int load_fx(struct snd_emux *emu, int type, int mode, static int load_fx(struct snd_emux *emu, int type, int mode,
@ -76,7 +76,7 @@ static struct snd_emux_operators emu8000_ops = {
.sample_reset = snd_emu8000_sample_reset, .sample_reset = snd_emu8000_sample_reset,
.load_fx = load_fx, .load_fx = load_fx,
.sysex = sysex, .sysex = sysex,
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
.oss_ioctl = oss_ioctl, .oss_ioctl = oss_ioctl,
#endif #endif
}; };
@ -477,7 +477,7 @@ sysex(struct snd_emux *emu, char *buf, int len, int parsed, struct snd_midi_chan
} }
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
/* /*
* OSS ioctl callback * OSS ioctl callback
*/ */

View File

@ -62,7 +62,7 @@ MODULE_SUPPORTED_DEVICE("{{Creative Labs,SB AWE 32},"
#define SNDRV_DEBUG_IRQ #define SNDRV_DEBUG_IRQ
#endif #endif
#if defined(SNDRV_SBAWE) && IS_REACHABLE(CONFIG_SND_SEQUENCER) #if defined(SNDRV_SBAWE) && IS_ENABLED(CONFIG_SND_SEQUENCER)
#define SNDRV_SBAWE_EMU8000 #define SNDRV_SBAWE_EMU8000
#endif #endif

View File

@ -465,6 +465,7 @@ config SND_EMU10K1
select SND_RAWMIDI select SND_RAWMIDI
select SND_AC97_CODEC select SND_AC97_CODEC
select SND_TIMER select SND_TIMER
select SND_SEQ_DEVICE if SND_SEQUENCER != n
depends on ZONE_DMA depends on ZONE_DMA
help help
Say Y to include support for Sound Blaster PCI 512, Live!, Say Y to include support for Sound Blaster PCI 512, Live!,
@ -477,6 +478,13 @@ 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
select SND_SYNTH_EMUX
config SND_EMU10K1X config SND_EMU10K1X
tristate "Emu10k1X (Dell OEM Version)" tristate "Emu10k1X (Dell OEM Version)"
select SND_AC97_CODEC select SND_AC97_CODEC

View File

@ -37,7 +37,7 @@ MODULE_LICENSE("GPL");
MODULE_SUPPORTED_DEVICE("{{Creative Labs,SB Live!/PCI512/E-mu APS}," MODULE_SUPPORTED_DEVICE("{{Creative Labs,SB Live!/PCI512/E-mu APS},"
"{Creative Labs,SB Audigy}}"); "{Creative Labs,SB Audigy}}");
#if IS_REACHABLE(CONFIG_SND_SEQUENCER) #if IS_ENABLED(CONFIG_SND_SEQUENCER)
#define ENABLE_SYNTH #define ENABLE_SYNTH
#include <sound/emu10k1_synth.h> #include <sound/emu10k1_synth.h>
#endif #endif

2
sound/synth/Kconfig Normal file
View File

@ -0,0 +1,2 @@
config SND_SYNTH_EMUX
tristate

View File

@ -8,6 +8,4 @@ snd-emux-synth-objs := emux.o emux_synth.o emux_seq.o emux_nrpn.o \
snd-emux-synth-$(CONFIG_SND_PROC_FS) += emux_proc.o snd-emux-synth-$(CONFIG_SND_PROC_FS) += emux_proc.o
snd-emux-synth-$(CONFIG_SND_SEQUENCER_OSS) += emux_oss.o snd-emux-synth-$(CONFIG_SND_SEQUENCER_OSS) += emux_oss.o
# Toplevel Module Dependencies obj-$(CONFIG_SND_SYNTH_EMUX) += snd-emux-synth.o
obj-$(CONFIG_SND_SBAWE_SEQ) += snd-emux-synth.o
obj-$(CONFIG_SND_EMU10K1_SEQ) += snd-emux-synth.o

View File

@ -47,7 +47,7 @@ int snd_emux_new(struct snd_emux **remu)
mutex_init(&emu->register_mutex); mutex_init(&emu->register_mutex);
emu->client = -1; emu->client = -1;
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
emu->oss_synth = NULL; emu->oss_synth = NULL;
#endif #endif
emu->max_voices = 0; emu->max_voices = 0;
@ -123,7 +123,7 @@ int snd_emux_register(struct snd_emux *emu, struct snd_card *card, int index, ch
snd_emux_init_voices(emu); snd_emux_init_voices(emu);
snd_emux_init_seq(emu, card, index); snd_emux_init_seq(emu, card, index);
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
snd_emux_init_seq_oss(emu); snd_emux_init_seq_oss(emu);
#endif #endif
snd_emux_init_virmidi(emu, card); snd_emux_init_virmidi(emu, card);
@ -150,7 +150,7 @@ int snd_emux_free(struct snd_emux *emu)
snd_emux_proc_free(emu); snd_emux_proc_free(emu);
snd_emux_delete_virmidi(emu); snd_emux_delete_virmidi(emu);
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
snd_emux_detach_seq_oss(emu); snd_emux_detach_seq_oss(emu);
#endif #endif
snd_emux_detach_seq(emu); snd_emux_detach_seq(emu);

View File

@ -150,7 +150,7 @@ effect_get_offset(struct snd_midi_channel *chan, int lo, int hi, int mode)
return addr; return addr;
} }
#ifdef CONFIG_SND_SEQUENCER_OSS #if IS_ENABLED(CONFIG_SND_SEQUENCER_OSS)
/* change effects - for OSS sequencer compatibility */ /* change effects - for OSS sequencer compatibility */
void void
snd_emux_send_effect_oss(struct snd_emux_port *port, snd_emux_send_effect_oss(struct snd_emux_port *port,

View File

@ -23,8 +23,6 @@
*/ */
#ifdef CONFIG_SND_SEQUENCER_OSS
#include <linux/export.h> #include <linux/export.h>
#include <linux/uaccess.h> #include <linux/uaccess.h>
#include <sound/core.h> #include <sound/core.h>
@ -505,5 +503,3 @@ fake_event(struct snd_emux *emu, struct snd_emux_port *port, int ch, int param,
ev.data.control.value = val; ev.data.control.value = val;
snd_emux_event_input(&ev, 0, port, atomic, hop); snd_emux_event_input(&ev, 0, port, atomic, hop);
} }
#endif /* CONFIG_SND_SEQUENCER_OSS */