Commit 387d4324 authored by Jaroslav Kysela's avatar Jaroslav Kysela

Merge http://linux.bkbits.net/linux-2.5

into suse.cz:/home/perex/bk/linux-sound/linux-sound
parents 2829a935 9d48ce93
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
#define AC97_BC_BASS_TREBLE 0x0004 /* Bass & Treble Control */ #define AC97_BC_BASS_TREBLE 0x0004 /* Bass & Treble Control */
#define AC97_BC_SIM_STEREO 0x0008 /* Simulated stereo */ #define AC97_BC_SIM_STEREO 0x0008 /* Simulated stereo */
#define AC97_BC_HEADPHONE 0x0010 /* Headphone Out Support */ #define AC97_BC_HEADPHONE 0x0010 /* Headphone Out Support */
#define AC97_BC_LOUDNESS 0x0020 /* Loudness (bass boost) Supporqt */ #define AC97_BC_LOUDNESS 0x0020 /* Loudness (bass boost) Support */
#define AC97_BC_16BIT_DAC 0x0000 /* 16-bit DAC resolution */ #define AC97_BC_16BIT_DAC 0x0000 /* 16-bit DAC resolution */
#define AC97_BC_18BIT_DAC 0x0040 /* 18-bit DAC resolution */ #define AC97_BC_18BIT_DAC 0x0040 /* 18-bit DAC resolution */
#define AC97_BC_20BIT_DAC 0x0080 /* 20-bit DAC resolution */ #define AC97_BC_20BIT_DAC 0x0080 /* 20-bit DAC resolution */
...@@ -195,6 +195,10 @@ ...@@ -195,6 +195,10 @@
#define AC97_CXR_SPDIF_PCM 0x0 #define AC97_CXR_SPDIF_PCM 0x0
#define AC97_CXR_SPDIF_AC3 0x2 #define AC97_CXR_SPDIF_AC3 0x2
/* specific - ALC */
#define AC97_ALC650_MULTICH 0x6a
#define AC97_ALC650_CLOCK 0x7a
/* ac97->scaps */ /* ac97->scaps */
#define AC97_SCAP_AUDIO (1<<0) /* audio AC'97 codec */ #define AC97_SCAP_AUDIO (1<<0) /* audio AC'97 codec */
#define AC97_SCAP_MODEM (1<<1) /* modem AC'97 codec */ #define AC97_SCAP_MODEM (1<<1) /* modem AC'97 codec */
......
...@@ -200,9 +200,9 @@ typedef struct _snd_minor snd_minor_t; ...@@ -200,9 +200,9 @@ typedef struct _snd_minor snd_minor_t;
/* sound.c */ /* sound.c */
extern int snd_ecards_limit; extern int snd_ecards_limit;
extern int snd_device_mode; extern int device_mode;
extern int snd_device_gid; extern int device_gid;
extern int snd_device_uid; extern int device_uid;
void snd_request_card(int card); void snd_request_card(int card);
......
...@@ -99,6 +99,7 @@ struct _snd_sb { ...@@ -99,6 +99,7 @@ struct _snd_sb {
snd_rawmidi_t *rmidi; snd_rawmidi_t *rmidi;
snd_rawmidi_substream_t *midi_substream_input; snd_rawmidi_substream_t *midi_substream_input;
snd_rawmidi_substream_t *midi_substream_output; snd_rawmidi_substream_t *midi_substream_output;
void (*rmidi_callback)(int irq, void *dev_id, struct pt_regs *regs);
spinlock_t reg_lock; spinlock_t reg_lock;
spinlock_t open_lock; spinlock_t open_lock;
......
/* include/version.h. Generated automatically by configure. */ /* include/version.h. Generated automatically by configure. */
#define CONFIG_SND_VERSION "0.9.0rc3" #define CONFIG_SND_VERSION "0.9.0rc3"
#define CONFIG_SND_DATE " (Mon Oct 14 16:41:26 2002 UTC)" #define CONFIG_SND_DATE " (Sun Oct 27 07:55:05 2002 UTC)"
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* 2002-04-04 Tomas Kasparek better rates handling (allow non-standard rates) * 2002-04-04 Tomas Kasparek better rates handling (allow non-standard rates)
*/ */
/* $Id: sa11xx-uda1341.c,v 1.4 2002/08/06 18:03:25 perex Exp $ */ /* $Id: sa11xx-uda1341.c,v 1.5 2002/10/21 18:28:19 perex Exp $ */
#include <sound/driver.h> #include <sound/driver.h>
#include <linux/module.h> #include <linux/module.h>
...@@ -46,10 +46,10 @@ MODULE_DESCRIPTION("SA1100/SA1111 + UDA1341TS driver for ALSA"); ...@@ -46,10 +46,10 @@ MODULE_DESCRIPTION("SA1100/SA1111 + UDA1341TS driver for ALSA");
MODULE_CLASSES("{sound}"); MODULE_CLASSES("{sound}");
MODULE_DEVICES("{{UDA1341,iPAQ H3600 UDA1341TS}}"); MODULE_DEVICES("{{UDA1341,iPAQ H3600 UDA1341TS}}");
static char *snd_id = NULL; /* ID for this card */ static char *id = NULL; /* ID for this card */
MODULE_PARM(snd_id, "s"); MODULE_PARM(id, "s");
MODULE_PARM_DESC(snd_id, "ID string for SA1100/SA1111 + UDA1341TS soundcard."); MODULE_PARM_DESC(id, "ID string for SA1100/SA1111 + UDA1341TS soundcard.");
#define chip_t sa11xx_uda1341_t #define chip_t sa11xx_uda1341_t
...@@ -884,7 +884,7 @@ static int __init sa11xx_uda1341_init(void) ...@@ -884,7 +884,7 @@ static int __init sa11xx_uda1341_init(void)
return -ENODEV; return -ENODEV;
/* register the soundcard */ /* register the soundcard */
card = snd_card_new(-1, snd_id, THIS_MODULE, 0); card = snd_card_new(-1, id, THIS_MODULE, 0);
if (card == NULL) if (card == NULL)
return -ENOMEM; return -ENOMEM;
sa11xx_uda1341 = snd_magic_kcalloc(sa11xx_uda1341_t, 0, GFP_KERNEL); sa11xx_uda1341 = snd_magic_kcalloc(sa11xx_uda1341_t, 0, GFP_KERNEL);
......
...@@ -91,7 +91,7 @@ obj-$(CONFIG_SND_EMU10K1) += snd-pcm.o snd-timer.o snd.o snd-rawmidi.o snd-hwdep ...@@ -91,7 +91,7 @@ obj-$(CONFIG_SND_EMU10K1) += snd-pcm.o snd-timer.o snd.o snd-rawmidi.o snd-hwdep
obj-$(CONFIG_SND_KORG1212) += snd-pcm.o snd-timer.o snd.o obj-$(CONFIG_SND_KORG1212) += snd-pcm.o snd-timer.o snd.o
obj-$(CONFIG_SND_NM256) += snd-pcm.o snd-timer.o snd.o obj-$(CONFIG_SND_NM256) += snd-pcm.o snd-timer.o snd.o
obj-$(CONFIG_SND_RME9652) += snd-pcm.o snd-timer.o snd.o obj-$(CONFIG_SND_RME9652) += snd-pcm.o snd-timer.o snd.o
obj-$(CONFIG_SND_HDSP) += snd-pcm.o snd-timer.o snd.o obj-$(CONFIG_SND_HDSP) += snd-pcm.o snd-timer.o snd.o snd-rawmidi.o
obj-$(CONFIG_SND_TRIDENT) += snd-pcm.o snd-timer.o snd.o snd-rawmidi.o obj-$(CONFIG_SND_TRIDENT) += snd-pcm.o snd-timer.o snd.o snd-rawmidi.o
obj-$(CONFIG_SND_YMFPCI) += snd-pcm.o snd-timer.o snd.o snd-rawmidi.o snd-hwdep.o obj-$(CONFIG_SND_YMFPCI) += snd-pcm.o snd-timer.o snd.o snd-rawmidi.o snd-hwdep.o
obj-$(CONFIG_SND_POWERMAC) += snd-pcm.o snd-timer.o snd.o obj-$(CONFIG_SND_POWERMAC) += snd-pcm.o snd-timer.o snd.o
...@@ -100,10 +100,7 @@ ifeq ($(CONFIG_SND_SB16_CSP),y) ...@@ -100,10 +100,7 @@ ifeq ($(CONFIG_SND_SB16_CSP),y)
obj-$(CONFIG_SND_SB16) += snd-hwdep.o obj-$(CONFIG_SND_SB16) += snd-hwdep.o
obj-$(CONFIG_SND_SBAWE) += snd-hwdep.o obj-$(CONFIG_SND_SBAWE) += snd-hwdep.o
endif endif
obj-$(CONFIG_SND_USB_AUDIO) += snd-pcm.o snd-timer.o snd.o obj-$(CONFIG_SND_USB_AUDIO) += snd-pcm.o snd-timer.o snd.o snd-rawmidi.o
ifeq ($(subst m,y,$(CONFIG_SND_SEQUENCER)),y)
obj-$(CONFIG_SND_USB_AUDIO) += snd-rawmidi.o
endif
obj-m := $(sort $(obj-m)) obj-m := $(sort $(obj-m))
......
...@@ -76,7 +76,7 @@ int snd_info_check_reserved_words(const char *str) ...@@ -76,7 +76,7 @@ int snd_info_check_reserved_words(const char *str)
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
extern int snd_major; extern int major;
extern struct file_operations snd_fops; extern struct file_operations snd_fops;
static DECLARE_MUTEX(info_mutex); static DECLARE_MUTEX(info_mutex);
...@@ -885,8 +885,8 @@ static void snd_info_device_fill_inode(struct inode *inode, int fill) ...@@ -885,8 +885,8 @@ static void snd_info_device_fill_inode(struct inode *inode, int fill)
entry = (snd_info_entry_t *) de->data; entry = (snd_info_entry_t *) de->data;
if (entry == NULL) if (entry == NULL)
return; return;
inode->i_gid = snd_device_gid; inode->i_gid = device_gid;
inode->i_uid = snd_device_uid; inode->i_uid = device_uid;
inode->i_rdev = MKDEV(entry->c.device.major, entry->c.device.minor); inode->i_rdev = MKDEV(entry->c.device.major, entry->c.device.minor);
} }
...@@ -907,16 +907,16 @@ snd_info_entry_t *snd_info_create_device(const char *name, unsigned int number, ...@@ -907,16 +907,16 @@ snd_info_entry_t *snd_info_create_device(const char *name, unsigned int number,
#ifdef CONFIG_DEVFS_FS #ifdef CONFIG_DEVFS_FS
char dname[32]; char dname[32];
#endif #endif
unsigned short major = number >> 16; unsigned short _major = number >> 16;
unsigned short minor = (unsigned short) number; unsigned short minor = (unsigned short) number;
snd_info_entry_t *entry; snd_info_entry_t *entry;
struct proc_dir_entry *p = NULL; struct proc_dir_entry *p = NULL;
if (!major) if (!_major)
major = snd_major; _major = major;
if (!mode) if (!mode)
mode = S_IFCHR | S_IRUGO | S_IWUGO; mode = S_IFCHR | S_IRUGO | S_IWUGO;
mode &= (snd_device_mode & (S_IRUGO | S_IWUGO)) | S_IFCHR | S_IFBLK; mode &= (device_mode & (S_IRUGO | S_IWUGO)) | S_IFCHR | S_IFBLK;
entry = snd_info_create_module_entry(THIS_MODULE, name, NULL); entry = snd_info_create_module_entry(THIS_MODULE, name, NULL);
if (entry == NULL) if (entry == NULL)
return NULL; return NULL;
...@@ -940,8 +940,8 @@ snd_info_entry_t *snd_info_create_device(const char *name, unsigned int number, ...@@ -940,8 +940,8 @@ snd_info_entry_t *snd_info_create_device(const char *name, unsigned int number,
snd_info_free_entry(entry); snd_info_free_entry(entry);
return NULL; return NULL;
} }
p->gid = snd_device_gid; p->gid = device_gid;
p->uid = snd_device_uid; p->uid = device_uid;
p->data = (void *) entry; p->data = (void *) entry;
entry->p = p; entry->p = p;
up(&info_mutex); up(&info_mutex);
......
...@@ -37,22 +37,22 @@ ...@@ -37,22 +37,22 @@
#include <linux/soundcard.h> #include <linux/soundcard.h>
#include <sound/initval.h> #include <sound/initval.h>
static int snd_dsp_map[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 0}; static int dsp_map[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 0};
static int snd_adsp_map[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 1}; static int adsp_map[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 1};
static int snd_nonblock_open; static int nonblock_open;
MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>, Abramo Bagnara <abramo@alsa-project.org>"); MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>, Abramo Bagnara <abramo@alsa-project.org>");
MODULE_DESCRIPTION("PCM OSS emulation for ALSA."); MODULE_DESCRIPTION("PCM OSS emulation for ALSA.");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_PARM(snd_dsp_map, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(dsp_map, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_dsp_map, "PCM device number assigned to 1st OSS device."); MODULE_PARM_DESC(dsp_map, "PCM device number assigned to 1st OSS device.");
MODULE_PARM_SYNTAX(snd_dsp_map, "default:0,skill:advanced"); MODULE_PARM_SYNTAX(dsp_map, "default:0,skill:advanced");
MODULE_PARM(snd_adsp_map, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(adsp_map, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_adsp_map, "PCM device number assigned to 2nd OSS device."); MODULE_PARM_DESC(adsp_map, "PCM device number assigned to 2nd OSS device.");
MODULE_PARM_SYNTAX(snd_adsp_map, "default:1,skill:advanced"); MODULE_PARM_SYNTAX(adsp_map, "default:1,skill:advanced");
MODULE_PARM(snd_nonblock_open, "i"); MODULE_PARM(nonblock_open, "i");
MODULE_PARM_DESC(snd_nonblock_open, "Don't block opening busy PCM devices."); MODULE_PARM_DESC(nonblock_open, "Don't block opening busy PCM devices.");
MODULE_PARM_SYNTAX(snd_nonblock_open, "default:0,skill:advanced"); MODULE_PARM_SYNTAX(nonblock_open, "default:0,skill:advanced");
extern int snd_mixer_oss_ioctl_card(snd_card_t *card, unsigned int cmd, unsigned long arg); extern int snd_mixer_oss_ioctl_card(snd_card_t *card, unsigned int cmd, unsigned long arg);
static int snd_pcm_oss_get_rate(snd_pcm_oss_file_t *pcm_oss_file); static int snd_pcm_oss_get_rate(snd_pcm_oss_file_t *pcm_oss_file);
...@@ -1536,7 +1536,7 @@ static int snd_pcm_oss_open(struct inode *inode, struct file *file) ...@@ -1536,7 +1536,7 @@ static int snd_pcm_oss_open(struct inode *inode, struct file *file)
snd_assert(cardnum >= 0 && cardnum < SNDRV_CARDS, return -ENXIO); snd_assert(cardnum >= 0 && cardnum < SNDRV_CARDS, return -ENXIO);
device = SNDRV_MINOR_OSS_DEVICE(minor) == SNDRV_MINOR_OSS_PCM1 ? device = SNDRV_MINOR_OSS_DEVICE(minor) == SNDRV_MINOR_OSS_PCM1 ?
snd_adsp_map[cardnum] : snd_dsp_map[cardnum]; adsp_map[cardnum] : dsp_map[cardnum];
#ifdef LINUX_2_2 #ifdef LINUX_2_2
MOD_INC_USE_COUNT; MOD_INC_USE_COUNT;
...@@ -1572,7 +1572,7 @@ static int snd_pcm_oss_open(struct inode *inode, struct file *file) ...@@ -1572,7 +1572,7 @@ static int snd_pcm_oss_open(struct inode *inode, struct file *file)
nonblock = 0; nonblock = 0;
} }
if (!nonblock) if (!nonblock)
nonblock = snd_nonblock_open; nonblock = nonblock_open;
init_waitqueue_entry(&wait, current); init_waitqueue_entry(&wait, current);
add_wait_queue(&pcm->open_wait, &wait); add_wait_queue(&pcm->open_wait, &wait);
...@@ -2115,7 +2115,7 @@ static int snd_pcm_oss_register_minor(unsigned short native_minor, ...@@ -2115,7 +2115,7 @@ static int snd_pcm_oss_register_minor(unsigned short native_minor,
snd_pcm_t * pcm) snd_pcm_t * pcm)
{ {
pcm->oss.reg = 0; pcm->oss.reg = 0;
if (snd_dsp_map[pcm->card->number] == pcm->device) { if (dsp_map[pcm->card->number] == pcm->device) {
char name[128]; char name[128];
int duplex; int duplex;
register_oss_dsp(native_minor, pcm, 0); register_oss_dsp(native_minor, pcm, 0);
...@@ -2130,7 +2130,7 @@ static int snd_pcm_oss_register_minor(unsigned short native_minor, ...@@ -2130,7 +2130,7 @@ static int snd_pcm_oss_register_minor(unsigned short native_minor,
#endif #endif
pcm->oss.reg++; pcm->oss.reg++;
} }
if (snd_adsp_map[pcm->card->number] == pcm->device) { if (adsp_map[pcm->card->number] == pcm->device) {
register_oss_dsp(native_minor, pcm, 1); register_oss_dsp(native_minor, pcm, 1);
pcm->oss.reg++; pcm->oss.reg++;
} }
...@@ -2145,14 +2145,14 @@ static int snd_pcm_oss_unregister_minor(unsigned short native_minor, ...@@ -2145,14 +2145,14 @@ static int snd_pcm_oss_unregister_minor(unsigned short native_minor,
snd_pcm_t * pcm) snd_pcm_t * pcm)
{ {
if (pcm->oss.reg) { if (pcm->oss.reg) {
if (snd_dsp_map[pcm->card->number] == pcm->device) { if (dsp_map[pcm->card->number] == pcm->device) {
snd_unregister_oss_device(SNDRV_OSS_DEVICE_TYPE_PCM, snd_unregister_oss_device(SNDRV_OSS_DEVICE_TYPE_PCM,
pcm->card, 0); pcm->card, 0);
#ifdef SNDRV_OSS_INFO_DEV_AUDIO #ifdef SNDRV_OSS_INFO_DEV_AUDIO
snd_oss_info_unregister(SNDRV_OSS_INFO_DEV_AUDIO, pcm->card->number); snd_oss_info_unregister(SNDRV_OSS_INFO_DEV_AUDIO, pcm->card->number);
#endif #endif
} }
if (snd_adsp_map[pcm->card->number] == pcm->device) if (adsp_map[pcm->card->number] == pcm->device)
snd_unregister_oss_device(SNDRV_OSS_DEVICE_TYPE_PCM, snd_unregister_oss_device(SNDRV_OSS_DEVICE_TYPE_PCM,
pcm->card, 1); pcm->card, 1);
pcm->oss.reg = 0; pcm->oss.reg = 0;
...@@ -2176,13 +2176,13 @@ static int __init alsa_pcm_oss_init(void) ...@@ -2176,13 +2176,13 @@ static int __init alsa_pcm_oss_init(void)
return err; return err;
/* check device map table */ /* check device map table */
for (i = 0; i < SNDRV_CARDS; i++) { for (i = 0; i < SNDRV_CARDS; i++) {
if (snd_dsp_map[i] < 0 || snd_dsp_map[i] >= SNDRV_PCM_DEVICES) { if (dsp_map[i] < 0 || dsp_map[i] >= SNDRV_PCM_DEVICES) {
snd_printk("invalid dsp_map[%d] = %d\n", i, snd_dsp_map[i]); snd_printk("invalid dsp_map[%d] = %d\n", i, dsp_map[i]);
snd_dsp_map[i] = 0; dsp_map[i] = 0;
} }
if (snd_adsp_map[i] < 0 || snd_adsp_map[i] >= SNDRV_PCM_DEVICES) { if (adsp_map[i] < 0 || adsp_map[i] >= SNDRV_PCM_DEVICES) {
snd_printk("invalid adsp_map[%d] = %d\n", i, snd_adsp_map[i]); snd_printk("invalid adsp_map[%d] = %d\n", i, adsp_map[i]);
snd_adsp_map[i] = 1; adsp_map[i] = 1;
} }
} }
return 0; return 0;
......
...@@ -27,15 +27,15 @@ ...@@ -27,15 +27,15 @@
#include <sound/info.h> #include <sound/info.h>
#include <sound/initval.h> #include <sound/initval.h>
static int snd_preallocate_dma = 1; static int preallocate_dma = 1;
MODULE_PARM(snd_preallocate_dma, "i"); MODULE_PARM(preallocate_dma, "i");
MODULE_PARM_DESC(snd_preallocate_dma, "Preallocate DMA memory when the PCM devices are initialized."); MODULE_PARM_DESC(preallocate_dma, "Preallocate DMA memory when the PCM devices are initialized.");
MODULE_PARM_SYNTAX(snd_preallocate_dma, SNDRV_BOOLEAN_TRUE_DESC); MODULE_PARM_SYNTAX(preallocate_dma, SNDRV_BOOLEAN_TRUE_DESC);
static int snd_maximum_substreams = 4; static int maximum_substreams = 4;
MODULE_PARM(snd_maximum_substreams, "i"); MODULE_PARM(maximum_substreams, "i");
MODULE_PARM_DESC(snd_maximum_substreams, "Maximum substreams with preallocated DMA memory."); MODULE_PARM_DESC(maximum_substreams, "Maximum substreams with preallocated DMA memory.");
MODULE_PARM_SYNTAX(snd_maximum_substreams, SNDRV_BOOLEAN_TRUE_DESC); MODULE_PARM_SYNTAX(maximum_substreams, SNDRV_BOOLEAN_TRUE_DESC);
static int snd_minimum_buffer = 16384; static int snd_minimum_buffer = 16384;
...@@ -168,7 +168,7 @@ static int snd_pcm_lib_preallocate_pages1(snd_pcm_substream_t *substream, ...@@ -168,7 +168,7 @@ static int snd_pcm_lib_preallocate_pages1(snd_pcm_substream_t *substream,
dma_addr_t dma_addr = 0UL; dma_addr_t dma_addr = 0UL;
snd_info_entry_t *entry; snd_info_entry_t *entry;
if (!size || !snd_preallocate_dma || substream->number >= snd_maximum_substreams) { if (!size || !preallocate_dma || substream->number >= maximum_substreams) {
size = 0; size = 0;
} else { } else {
switch (substream->dma_type) { switch (substream->dma_type) {
......
...@@ -38,14 +38,14 @@ MODULE_DESCRIPTION("Midlevel RawMidi code for ALSA."); ...@@ -38,14 +38,14 @@ MODULE_DESCRIPTION("Midlevel RawMidi code for ALSA.");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
#ifdef CONFIG_SND_OSSEMUL #ifdef CONFIG_SND_OSSEMUL
static int snd_midi_map[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 0}; static int midi_map[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 0};
static int snd_amidi_map[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 1}; static int amidi_map[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 1};
MODULE_PARM(snd_midi_map, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(midi_map, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_midi_map, "Raw MIDI device number assigned to 1st OSS device."); MODULE_PARM_DESC(midi_map, "Raw MIDI device number assigned to 1st OSS device.");
MODULE_PARM_SYNTAX(snd_midi_map, "default:0,skill:advanced"); MODULE_PARM_SYNTAX(midi_map, "default:0,skill:advanced");
MODULE_PARM(snd_amidi_map, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(amidi_map, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_amidi_map, "Raw MIDI device number assigned to 2nd OSS device."); MODULE_PARM_DESC(amidi_map, "Raw MIDI device number assigned to 2nd OSS device.");
MODULE_PARM_SYNTAX(snd_amidi_map, "default:1,skill:advanced"); MODULE_PARM_SYNTAX(amidi_map, "default:1,skill:advanced");
#endif /* CONFIG_SND_OSSEMUL */ #endif /* CONFIG_SND_OSSEMUL */
static int snd_rawmidi_free(snd_rawmidi_t *rawmidi); static int snd_rawmidi_free(snd_rawmidi_t *rawmidi);
...@@ -379,7 +379,7 @@ static int snd_rawmidi_open(struct inode *inode, struct file *file) ...@@ -379,7 +379,7 @@ static int snd_rawmidi_open(struct inode *inode, struct file *file)
cardnum = SNDRV_MINOR_OSS_CARD(minor(inode->i_rdev)); cardnum = SNDRV_MINOR_OSS_CARD(minor(inode->i_rdev));
cardnum %= SNDRV_CARDS; cardnum %= SNDRV_CARDS;
device = SNDRV_MINOR_OSS_DEVICE(minor(inode->i_rdev)) == SNDRV_MINOR_OSS_MIDI ? device = SNDRV_MINOR_OSS_DEVICE(minor(inode->i_rdev)) == SNDRV_MINOR_OSS_MIDI ?
snd_midi_map[cardnum] : snd_amidi_map[cardnum]; midi_map[cardnum] : amidi_map[cardnum];
break; break;
#endif #endif
default: default:
...@@ -518,7 +518,11 @@ static int snd_rawmidi_release(struct inode *inode, struct file *file) ...@@ -518,7 +518,11 @@ static int snd_rawmidi_release(struct inode *inode, struct file *file)
int snd_rawmidi_info(snd_rawmidi_substream_t *substream, snd_rawmidi_info_t *info) int snd_rawmidi_info(snd_rawmidi_substream_t *substream, snd_rawmidi_info_t *info)
{ {
snd_rawmidi_t *rmidi = substream->rmidi; snd_rawmidi_t *rmidi;
if (substream == NULL)
return -ENODEV;
rmidi = substream->rmidi;
memset(info, 0, sizeof(*info)); memset(info, 0, sizeof(*info));
info->card = rmidi->card->number; info->card = rmidi->card->number;
info->device = rmidi->device; info->device = rmidi->device;
...@@ -1419,7 +1423,7 @@ static int snd_rawmidi_dev_register(snd_device_t *device) ...@@ -1419,7 +1423,7 @@ static int snd_rawmidi_dev_register(snd_device_t *device)
} }
#ifdef CONFIG_SND_OSSEMUL #ifdef CONFIG_SND_OSSEMUL
rmidi->ossreg = 0; rmidi->ossreg = 0;
if (rmidi->device == snd_midi_map[rmidi->card->number]) { if (rmidi->device == midi_map[rmidi->card->number]) {
if (snd_register_oss_device(SNDRV_OSS_DEVICE_TYPE_MIDI, if (snd_register_oss_device(SNDRV_OSS_DEVICE_TYPE_MIDI,
rmidi->card, 0, &snd_rawmidi_reg, name) < 0) { rmidi->card, 0, &snd_rawmidi_reg, name) < 0) {
snd_printk(KERN_ERR "unable to register OSS rawmidi device %i:%i\n", rmidi->card->number, 0); snd_printk(KERN_ERR "unable to register OSS rawmidi device %i:%i\n", rmidi->card->number, 0);
...@@ -1430,7 +1434,7 @@ static int snd_rawmidi_dev_register(snd_device_t *device) ...@@ -1430,7 +1434,7 @@ static int snd_rawmidi_dev_register(snd_device_t *device)
#endif #endif
} }
} }
if (rmidi->device == snd_amidi_map[rmidi->card->number]) { if (rmidi->device == amidi_map[rmidi->card->number]) {
if (snd_register_oss_device(SNDRV_OSS_DEVICE_TYPE_MIDI, if (snd_register_oss_device(SNDRV_OSS_DEVICE_TYPE_MIDI,
rmidi->card, 1, &snd_rawmidi_reg, name) < 0) { rmidi->card, 1, &snd_rawmidi_reg, name) < 0) {
snd_printk(KERN_ERR "unable to register OSS rawmidi device %i:%i\n", rmidi->card->number, 1); snd_printk(KERN_ERR "unable to register OSS rawmidi device %i:%i\n", rmidi->card->number, 1);
...@@ -1484,13 +1488,13 @@ static int snd_rawmidi_dev_unregister(snd_device_t *device) ...@@ -1484,13 +1488,13 @@ static int snd_rawmidi_dev_unregister(snd_device_t *device)
} }
#ifdef CONFIG_SND_OSSEMUL #ifdef CONFIG_SND_OSSEMUL
if (rmidi->ossreg) { if (rmidi->ossreg) {
if (rmidi->device == snd_midi_map[rmidi->card->number]) { if (rmidi->device == midi_map[rmidi->card->number]) {
snd_unregister_oss_device(SNDRV_OSS_DEVICE_TYPE_MIDI, rmidi->card, 0); snd_unregister_oss_device(SNDRV_OSS_DEVICE_TYPE_MIDI, rmidi->card, 0);
#ifdef SNDRV_OSS_INFO_DEV_MIDI #ifdef SNDRV_OSS_INFO_DEV_MIDI
snd_oss_info_unregister(SNDRV_OSS_INFO_DEV_MIDI, rmidi->card->number); snd_oss_info_unregister(SNDRV_OSS_INFO_DEV_MIDI, rmidi->card->number);
#endif #endif
} }
if (rmidi->device == snd_amidi_map[rmidi->card->number]) if (rmidi->device == amidi_map[rmidi->card->number])
snd_unregister_oss_device(SNDRV_OSS_DEVICE_TYPE_MIDI, rmidi->card, 1); snd_unregister_oss_device(SNDRV_OSS_DEVICE_TYPE_MIDI, rmidi->card, 1);
rmidi->ossreg = 0; rmidi->ossreg = 0;
} }
...@@ -1532,13 +1536,13 @@ static int __init alsa_rawmidi_init(void) ...@@ -1532,13 +1536,13 @@ static int __init alsa_rawmidi_init(void)
#ifdef CONFIG_SND_OSSEMUL #ifdef CONFIG_SND_OSSEMUL
/* check device map table */ /* check device map table */
for (i = 0; i < SNDRV_CARDS; i++) { for (i = 0; i < SNDRV_CARDS; i++) {
if (snd_midi_map[i] < 0 || snd_midi_map[i] >= SNDRV_RAWMIDI_DEVICES) { if (midi_map[i] < 0 || midi_map[i] >= SNDRV_RAWMIDI_DEVICES) {
snd_printk(KERN_ERR "invalid midi_map[%d] = %d\n", i, snd_midi_map[i]); snd_printk(KERN_ERR "invalid midi_map[%d] = %d\n", i, midi_map[i]);
snd_midi_map[i] = 0; midi_map[i] = 0;
} }
if (snd_amidi_map[i] < 0 || snd_amidi_map[i] >= SNDRV_RAWMIDI_DEVICES) { if (amidi_map[i] < 0 || amidi_map[i] >= SNDRV_RAWMIDI_DEVICES) {
snd_printk(KERN_ERR "invalid amidi_map[%d] = %d\n", i, snd_amidi_map[i]); snd_printk(KERN_ERR "invalid amidi_map[%d] = %d\n", i, amidi_map[i]);
snd_amidi_map[i] = 1; amidi_map[i] = 1;
} }
} }
#endif /* CONFIG_SND_OSSEMUL */ #endif /* CONFIG_SND_OSSEMUL */
......
...@@ -73,7 +73,7 @@ obj-$(CONFIG_SND_CS46XX) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-mi ...@@ -73,7 +73,7 @@ obj-$(CONFIG_SND_CS46XX) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-mi
obj-$(CONFIG_SND_EMU10K1) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-midi-event.o snd-seq-midi-emul.o snd-seq-virmidi.o obj-$(CONFIG_SND_EMU10K1) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-midi-event.o snd-seq-midi-emul.o snd-seq-virmidi.o
obj-$(CONFIG_SND_TRIDENT) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-midi-event.o snd-seq-midi-emul.o snd-seq-instr.o obj-$(CONFIG_SND_TRIDENT) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-midi-event.o snd-seq-midi-emul.o snd-seq-instr.o
obj-$(CONFIG_SND_YMFPCI) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-midi-event.o snd-seq-midi-emul.o snd-seq-instr.o obj-$(CONFIG_SND_YMFPCI) += snd-seq-midi.o snd-seq.o snd-seq-device.o snd-seq-midi-event.o snd-seq-midi-emul.o snd-seq-instr.o
obj-$(CONFIG_SND_USB_AUDIO) += snd-seq.o snd-seq-device.o snd-seq-midi-event.o snd-seq-virmidi.o obj-$(CONFIG_SND_USB_AUDIO) += snd-seq.o snd-seq-device.o snd-seq-midi-event.o
obj-m := $(sort $(obj-m)) obj-m := $(sort $(obj-m))
......
...@@ -34,13 +34,13 @@ ...@@ -34,13 +34,13 @@
#include "seq_info.h" #include "seq_info.h"
#include <sound/seq_device.h> #include <sound/seq_device.h>
int snd_seq_client_load[64] = {[0 ... 63] = -1}; int seq_client_load[64] = {[0 ... 63] = -1};
int snd_seq_default_timer_class = SNDRV_TIMER_CLASS_GLOBAL; int seq_default_timer_class = SNDRV_TIMER_CLASS_GLOBAL;
int snd_seq_default_timer_sclass = SNDRV_TIMER_SCLASS_NONE; int seq_default_timer_sclass = SNDRV_TIMER_SCLASS_NONE;
int snd_seq_default_timer_card = -1; int seq_default_timer_card = -1;
int snd_seq_default_timer_device = SNDRV_TIMER_GLOBAL_SYSTEM; int seq_default_timer_device = SNDRV_TIMER_GLOBAL_SYSTEM;
int snd_seq_default_timer_subdevice = 0; int seq_default_timer_subdevice = 0;
int snd_seq_default_timer_resolution = 0; /* Hz */ int seq_default_timer_resolution = 0; /* Hz */
MODULE_AUTHOR("Frank van de Pol <fvdpol@home.nl>, Jaroslav Kysela <perex@suse.cz>"); MODULE_AUTHOR("Frank van de Pol <fvdpol@home.nl>, Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("Advanced Linux Sound Architecture sequencer."); MODULE_DESCRIPTION("Advanced Linux Sound Architecture sequencer.");
...@@ -48,20 +48,20 @@ MODULE_LICENSE("GPL"); ...@@ -48,20 +48,20 @@ MODULE_LICENSE("GPL");
MODULE_CLASSES("{sound}"); MODULE_CLASSES("{sound}");
MODULE_SUPPORTED_DEVICE("sound"); MODULE_SUPPORTED_DEVICE("sound");
MODULE_PARM(snd_seq_client_load, "1-64i"); MODULE_PARM(seq_client_load, "1-64i");
MODULE_PARM_DESC(snd_seq_client_load, "The numbers of global (system) clients to load through kmod."); MODULE_PARM_DESC(seq_client_load, "The numbers of global (system) clients to load through kmod.");
MODULE_PARM(snd_seq_default_timer_class, "i"); MODULE_PARM(seq_default_timer_class, "i");
MODULE_PARM_DESC(snd_seq_default_timer_class, "The default timer class."); MODULE_PARM_DESC(seq_default_timer_class, "The default timer class.");
MODULE_PARM(snd_seq_default_timer_sclass, "i"); MODULE_PARM(seq_default_timer_sclass, "i");
MODULE_PARM_DESC(snd_seq_default_timer_sclass, "The default timer slave class."); MODULE_PARM_DESC(seq_default_timer_sclass, "The default timer slave class.");
MODULE_PARM(snd_seq_default_timer_card, "i"); MODULE_PARM(seq_default_timer_card, "i");
MODULE_PARM_DESC(snd_seq_default_timer_card, "The default timer card number."); MODULE_PARM_DESC(seq_default_timer_card, "The default timer card number.");
MODULE_PARM(snd_seq_default_timer_device, "i"); MODULE_PARM(seq_default_timer_device, "i");
MODULE_PARM_DESC(snd_seq_default_timer_device, "The default timer device number."); MODULE_PARM_DESC(seq_default_timer_device, "The default timer device number.");
MODULE_PARM(snd_seq_default_timer_subdevice, "i"); MODULE_PARM(seq_default_timer_subdevice, "i");
MODULE_PARM_DESC(snd_seq_default_timer_subdevice, "The default timer subdevice number."); MODULE_PARM_DESC(seq_default_timer_subdevice, "The default timer subdevice number.");
MODULE_PARM(snd_seq_default_timer_resolution, "i"); MODULE_PARM(seq_default_timer_resolution, "i");
MODULE_PARM_DESC(snd_seq_default_timer_resolution, "The default timer resolution in Hz."); MODULE_PARM_DESC(seq_default_timer_resolution, "The default timer resolution in Hz.");
/* /*
* INIT PART * INIT PART
......
...@@ -110,7 +110,7 @@ static client_t *clientptr(int clientid) ...@@ -110,7 +110,7 @@ static client_t *clientptr(int clientid)
return clienttab[clientid]; return clienttab[clientid];
} }
extern int snd_seq_client_load[]; extern int seq_client_load[];
client_t *snd_seq_client_use_ptr(int clientid) client_t *snd_seq_client_use_ptr(int clientid)
{ {
...@@ -141,9 +141,9 @@ client_t *snd_seq_client_use_ptr(int clientid) ...@@ -141,9 +141,9 @@ client_t *snd_seq_client_use_ptr(int clientid)
if (! client_requested[clientid]) { if (! client_requested[clientid]) {
client_requested[clientid] = 1; client_requested[clientid] = 1;
for (idx = 0; idx < 64; idx++) { for (idx = 0; idx < 64; idx++) {
if (snd_seq_client_load[idx] < 0) if (seq_client_load[idx] < 0)
break; break;
if (snd_seq_client_load[idx] == clientid) { if (seq_client_load[idx] == clientid) {
sprintf(name, "snd-seq-client-%i", clientid); sprintf(name, "snd-seq-client-%i", clientid);
request_module(name); request_module(name);
break; break;
......
...@@ -27,12 +27,12 @@ ...@@ -27,12 +27,12 @@
#include "seq_queue.h" #include "seq_queue.h"
#include "seq_info.h" #include "seq_info.h"
extern int snd_seq_default_timer_class; extern int seq_default_timer_class;
extern int snd_seq_default_timer_sclass; extern int seq_default_timer_sclass;
extern int snd_seq_default_timer_card; extern int seq_default_timer_card;
extern int snd_seq_default_timer_device; extern int seq_default_timer_device;
extern int snd_seq_default_timer_subdevice; extern int seq_default_timer_subdevice;
extern int snd_seq_default_timer_resolution; extern int seq_default_timer_resolution;
#define SKEW_BASE 0x10000 /* 16bit shift */ #define SKEW_BASE 0x10000 /* 16bit shift */
...@@ -103,12 +103,12 @@ void snd_seq_timer_defaults(seq_timer_t * tmr) ...@@ -103,12 +103,12 @@ void snd_seq_timer_defaults(seq_timer_t * tmr)
tmr->running = 0; tmr->running = 0;
tmr->type = SNDRV_SEQ_TIMER_ALSA; tmr->type = SNDRV_SEQ_TIMER_ALSA;
tmr->alsa_id.dev_class = snd_seq_default_timer_class; tmr->alsa_id.dev_class = seq_default_timer_class;
tmr->alsa_id.dev_sclass = snd_seq_default_timer_sclass; tmr->alsa_id.dev_sclass = seq_default_timer_sclass;
tmr->alsa_id.card = snd_seq_default_timer_card; tmr->alsa_id.card = seq_default_timer_card;
tmr->alsa_id.device = snd_seq_default_timer_device; tmr->alsa_id.device = seq_default_timer_device;
tmr->alsa_id.subdevice = snd_seq_default_timer_subdevice; tmr->alsa_id.subdevice = seq_default_timer_subdevice;
tmr->preferred_resolution = snd_seq_default_timer_resolution; tmr->preferred_resolution = seq_default_timer_resolution;
tmr->skew = tmr->skew_base = SKEW_BASE; tmr->skew = tmr->skew_base = SKEW_BASE;
} }
......
...@@ -36,32 +36,32 @@ ...@@ -36,32 +36,32 @@
#define SNDRV_OS_MINORS 256 #define SNDRV_OS_MINORS 256
int snd_major = CONFIG_SND_MAJOR; int major = CONFIG_SND_MAJOR;
static int snd_cards_limit = SNDRV_CARDS; static int cards_limit = SNDRV_CARDS;
int snd_device_mode = S_IFCHR | S_IRUGO | S_IWUGO; int device_mode = S_IFCHR | S_IRUGO | S_IWUGO;
int snd_device_gid = 0; int device_gid = 0;
int snd_device_uid = 0; int device_uid = 0;
MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>"); MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
MODULE_DESCRIPTION("Advanced Linux Sound Architecture driver for soundcards."); MODULE_DESCRIPTION("Advanced Linux Sound Architecture driver for soundcards.");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_CLASSES("{sound}"); MODULE_CLASSES("{sound}");
MODULE_SUPPORTED_DEVICE("sound"); MODULE_SUPPORTED_DEVICE("sound");
MODULE_PARM(snd_major, "i"); MODULE_PARM(major, "i");
MODULE_PARM_DESC(snd_major, "Major # for sound driver."); MODULE_PARM_DESC(major, "Major # for sound driver.");
MODULE_PARM_SYNTAX(snd_major, "default:116,skill:devel"); MODULE_PARM_SYNTAX(major, "default:116,skill:devel");
MODULE_PARM(snd_cards_limit, "i"); MODULE_PARM(cards_limit, "i");
MODULE_PARM_DESC(snd_cards_limit, "Count of soundcards installed in the system."); MODULE_PARM_DESC(cards_limit, "Count of soundcards installed in the system.");
MODULE_PARM_SYNTAX(snd_cards_limit, "default:8,skill:advanced"); MODULE_PARM_SYNTAX(cards_limit, "default:8,skill:advanced");
MODULE_PARM(snd_device_mode, "i"); MODULE_PARM(device_mode, "i");
MODULE_PARM_DESC(snd_device_mode, "Device file permission mask for sound dynamic device filesystem."); MODULE_PARM_DESC(device_mode, "Device file permission mask for sound dynamic device filesystem.");
MODULE_PARM_SYNTAX(snd_device_mode, "default:0666,base:8"); MODULE_PARM_SYNTAX(device_mode, "default:0666,base:8");
MODULE_PARM(snd_device_gid, "i"); MODULE_PARM(device_gid, "i");
MODULE_PARM_DESC(snd_device_gid, "Device file GID for sound dynamic device filesystem."); MODULE_PARM_DESC(device_gid, "Device file GID for sound dynamic device filesystem.");
MODULE_PARM_SYNTAX(snd_device_gid, "default:0"); MODULE_PARM_SYNTAX(device_gid, "default:0");
MODULE_PARM(snd_device_uid, "i"); MODULE_PARM(device_uid, "i");
MODULE_PARM_DESC(snd_device_uid, "Device file UID for sound dynamic device filesystem."); MODULE_PARM_DESC(device_uid, "Device file UID for sound dynamic device filesystem.");
MODULE_PARM_SYNTAX(snd_device_uid, "default:0"); MODULE_PARM_SYNTAX(device_uid, "default:0");
int snd_ecards_limit; int snd_ecards_limit;
...@@ -302,7 +302,7 @@ static int __init alsa_sound_init(void) ...@@ -302,7 +302,7 @@ static int __init alsa_sound_init(void)
#endif #endif
int card; int card;
snd_ecards_limit = snd_cards_limit; snd_ecards_limit = cards_limit;
for (card = 0; card < SNDRV_CARDS; card++) for (card = 0; card < SNDRV_CARDS; card++)
INIT_LIST_HEAD(&snd_minors_hash[card]); INIT_LIST_HEAD(&snd_minors_hash[card]);
#ifdef CONFIG_SND_OSSEMUL #ifdef CONFIG_SND_OSSEMUL
...@@ -316,8 +316,8 @@ static int __init alsa_sound_init(void) ...@@ -316,8 +316,8 @@ static int __init alsa_sound_init(void)
devfs_handle = devfs_mk_dir(NULL, "snd", NULL); devfs_handle = devfs_mk_dir(NULL, "snd", NULL);
#endif #endif
#endif #endif
if (register_chrdev(snd_major, "alsa", &snd_fops)) { if (register_chrdev(major, "alsa", &snd_fops)) {
snd_printk(KERN_ERR "unable to register native major device number %d\n", snd_major); snd_printk(KERN_ERR "unable to register native major device number %d\n", major);
return -EIO; return -EIO;
} }
#ifdef CONFIG_SND_DEBUG_MEMORY #ifdef CONFIG_SND_DEBUG_MEMORY
...@@ -333,10 +333,10 @@ static int __init alsa_sound_init(void) ...@@ -333,10 +333,10 @@ static int __init alsa_sound_init(void)
snd_info_minor_register(); snd_info_minor_register();
#endif #endif
#ifdef CONFIG_DEVFS_FS #ifdef CONFIG_DEVFS_FS
for (controlnum = 0; controlnum < snd_cards_limit; controlnum++) { for (controlnum = 0; controlnum < cards_limit; controlnum++) {
sprintf(controlname, "snd/controlC%d", controlnum); sprintf(controlname, "snd/controlC%d", controlnum);
devfs_register(NULL, controlname, DEVFS_FL_DEFAULT, devfs_register(NULL, controlname, DEVFS_FL_DEFAULT,
snd_major, controlnum<<5, snd_device_mode | S_IFCHR, major, controlnum<<5, device_mode | S_IFCHR,
&snd_fops, NULL); &snd_fops, NULL);
} }
#endif #endif
...@@ -355,7 +355,7 @@ static void __exit alsa_sound_exit(void) ...@@ -355,7 +355,7 @@ static void __exit alsa_sound_exit(void)
char controlname[24]; char controlname[24];
short controlnum; short controlnum;
for (controlnum = 0; controlnum < snd_cards_limit; controlnum++) { for (controlnum = 0; controlnum < cards_limit; controlnum++) {
sprintf(controlname, "snd/controlC%d", controlnum); sprintf(controlname, "snd/controlC%d", controlnum);
devfs_find_and_unregister(NULL, controlname, 0, 0, DEVFS_SPECIAL_CHR, 0); devfs_find_and_unregister(NULL, controlname, 0, 0, DEVFS_SPECIAL_CHR, 0);
} }
...@@ -371,8 +371,8 @@ static void __exit alsa_sound_exit(void) ...@@ -371,8 +371,8 @@ static void __exit alsa_sound_exit(void)
#ifdef CONFIG_SND_DEBUG_MEMORY #ifdef CONFIG_SND_DEBUG_MEMORY
snd_memory_done(); snd_memory_done();
#endif #endif
if (unregister_chrdev(snd_major, "alsa") != 0) if (unregister_chrdev(major, "alsa") != 0)
snd_printk(KERN_ERR "unable to unregister major device number %d\n", snd_major); snd_printk(KERN_ERR "unable to unregister major device number %d\n", major);
#ifdef CONFIG_DEVFS_FS #ifdef CONFIG_DEVFS_FS
devfs_unregister(devfs_handle); devfs_unregister(devfs_handle);
#endif #endif
......
...@@ -41,13 +41,13 @@ ...@@ -41,13 +41,13 @@
#define DEFAULT_TIMER_LIMIT 2 #define DEFAULT_TIMER_LIMIT 2
#endif #endif
int snd_timer_limit = DEFAULT_TIMER_LIMIT; int timer_limit = DEFAULT_TIMER_LIMIT;
MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>, Takashi Iwai <tiwai@suse.de>"); MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>, Takashi Iwai <tiwai@suse.de>");
MODULE_DESCRIPTION("ALSA timer interface"); MODULE_DESCRIPTION("ALSA timer interface");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_CLASSES("{sound}"); MODULE_CLASSES("{sound}");
MODULE_PARM(snd_timer_limit, "i"); MODULE_PARM(timer_limit, "i");
MODULE_PARM_DESC(snd_timer_limit, "Maximum global timers in system."); MODULE_PARM_DESC(timer_limit, "Maximum global timers in system.");
typedef struct { typedef struct {
snd_timer_instance_t *timeri; snd_timer_instance_t *timeri;
...@@ -152,7 +152,7 @@ static void snd_timer_request(snd_timer_id_t *tid) ...@@ -152,7 +152,7 @@ static void snd_timer_request(snd_timer_id_t *tid)
switch (tid->dev_class) { switch (tid->dev_class) {
case SNDRV_TIMER_CLASS_GLOBAL: case SNDRV_TIMER_CLASS_GLOBAL:
if (tid->device >= snd_timer_limit) if (tid->device >= timer_limit)
return; return;
sprintf(str, "snd-timer-%i", tid->device); sprintf(str, "snd-timer-%i", tid->device);
break; break;
......
...@@ -19,19 +19,8 @@ ...@@ -19,19 +19,8 @@
* *
*/ */
#ifdef ALSA_BUILD
#include "config.h"
#endif
#include <linux/version.h> #include <linux/version.h>
#include <linux/config.h> #include <linux/config.h>
#ifdef ALSA_BUILD
#if defined(CONFIG_MODVERSIONS) && !defined(__GENKSYMS__) && !defined(__DEPEND__)
#define MODVERSIONS
#include <linux/modversions.h>
#include "sndversions.h"
#endif
#endif
#include <linux/module.h> #include <linux/module.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/ioport.h> #include <linux/ioport.h>
......
...@@ -84,31 +84,31 @@ MODULE_DEVICES("{{ALSA,Dummy soundcard}}"); ...@@ -84,31 +84,31 @@ MODULE_DEVICES("{{ALSA,Dummy soundcard}}");
#define USE_PERIODS_MAX 1024 #define USE_PERIODS_MAX 1024
#endif #endif
static int snd_index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
static char *snd_id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */
static int snd_enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 0}; static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 0};
static int snd_pcm_devs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; static int pcm_devs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1};
static int snd_pcm_substreams[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 8}; static int pcm_substreams[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 8};
//static int snd_midi_devs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 2}; //static int midi_devs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 2};
MODULE_PARM(snd_index, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_index, "Index value for dummy soundcard."); MODULE_PARM_DESC(index, "Index value for dummy soundcard.");
MODULE_PARM_SYNTAX(snd_index, SNDRV_INDEX_DESC); MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
MODULE_PARM(snd_id, "1-" __MODULE_STRING(SNDRV_CARDS) "s"); MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
MODULE_PARM_DESC(snd_id, "ID string for dummy soundcard."); MODULE_PARM_DESC(id, "ID string for dummy soundcard.");
MODULE_PARM_SYNTAX(snd_id, SNDRV_ID_DESC); MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
MODULE_PARM(snd_enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_enable, "Enable this dummy soundcard."); MODULE_PARM_DESC(enable, "Enable this dummy soundcard.");
MODULE_PARM_SYNTAX(snd_enable, SNDRV_ENABLE_DESC); MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
MODULE_PARM(snd_pcm_devs, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(pcm_devs, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_pcm_devs, "PCM devices # (0-4) for dummy driver."); MODULE_PARM_DESC(pcm_devs, "PCM devices # (0-4) for dummy driver.");
MODULE_PARM_SYNTAX(snd_pcm_devs, SNDRV_ENABLED ",allows:{{0,4}},default:1,dialog:list"); MODULE_PARM_SYNTAX(pcm_devs, SNDRV_ENABLED ",allows:{{0,4}},default:1,dialog:list");
MODULE_PARM(snd_pcm_substreams, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(pcm_substreams, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_pcm_substreams, "PCM substreams # (1-16) for dummy driver."); MODULE_PARM_DESC(pcm_substreams, "PCM substreams # (1-16) for dummy driver.");
MODULE_PARM_SYNTAX(snd_pcm_substreams, SNDRV_ENABLED ",allows:{{1,16}},default:8,dialog:list"); MODULE_PARM_SYNTAX(pcm_substreams, SNDRV_ENABLED ",allows:{{1,16}},default:8,dialog:list");
//MODULE_PARM(snd_midi_devs, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); //MODULE_PARM(midi_devs, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
//MODULE_PARM_DESC(snd_midi_devs, "MIDI devices # (0-2) for dummy driver."); //MODULE_PARM_DESC(midi_devs, "MIDI devices # (0-2) for dummy driver.");
//MODULE_PARM_SYNTAX(snd_midi_devs, SNDRV_ENABLED ",allows:{{0,2}},default:8,dialog:list"); //MODULE_PARM_SYNTAX(midi_devs, SNDRV_ENABLED ",allows:{{0,2}},default:8,dialog:list");
#define MIXER_ADDR_MASTER 0 #define MIXER_ADDR_MASTER 0
#define MIXER_ADDR_LINE 1 #define MIXER_ADDR_LINE 1
...@@ -537,20 +537,20 @@ static int __init snd_card_dummy_probe(int dev) ...@@ -537,20 +537,20 @@ static int __init snd_card_dummy_probe(int dev)
struct snd_card_dummy *dummy; struct snd_card_dummy *dummy;
int idx, err; int idx, err;
if (!snd_enable[dev]) if (!enable[dev])
return -ENODEV; return -ENODEV;
card = snd_card_new(snd_index[dev], snd_id[dev], THIS_MODULE, card = snd_card_new(index[dev], id[dev], THIS_MODULE,
sizeof(struct snd_card_dummy)); sizeof(struct snd_card_dummy));
if (card == NULL) if (card == NULL)
return -ENOMEM; return -ENOMEM;
dummy = (struct snd_card_dummy *)card->private_data; dummy = (struct snd_card_dummy *)card->private_data;
dummy->card = card; dummy->card = card;
for (idx = 0; idx < MAX_PCM_DEVICES && idx < snd_pcm_devs[dev]; idx++) { for (idx = 0; idx < MAX_PCM_DEVICES && idx < pcm_devs[dev]; idx++) {
if (snd_pcm_substreams[dev] < 1) if (pcm_substreams[dev] < 1)
snd_pcm_substreams[dev] = 1; pcm_substreams[dev] = 1;
if (snd_pcm_substreams[dev] > MAX_PCM_SUBSTREAMS) if (pcm_substreams[dev] > MAX_PCM_SUBSTREAMS)
snd_pcm_substreams[dev] = MAX_PCM_SUBSTREAMS; pcm_substreams[dev] = MAX_PCM_SUBSTREAMS;
if ((err = snd_card_dummy_pcm(dummy, idx, snd_pcm_substreams[dev])) < 0) if ((err = snd_card_dummy_pcm(dummy, idx, pcm_substreams[dev])) < 0)
goto __nodev; goto __nodev;
} }
if ((err = snd_card_dummy_new_mixer(dummy)) < 0) if ((err = snd_card_dummy_new_mixer(dummy)) < 0)
...@@ -571,7 +571,7 @@ static int __init alsa_card_dummy_init(void) ...@@ -571,7 +571,7 @@ static int __init alsa_card_dummy_init(void)
{ {
int dev, cards; int dev, cards;
for (dev = cards = 0; dev < SNDRV_CARDS && snd_enable[dev]; dev++) { for (dev = cards = 0; dev < SNDRV_CARDS && enable[dev]; dev++) {
if (snd_card_dummy_probe(dev) < 0) { if (snd_card_dummy_probe(dev) < 0) {
#ifdef MODULE #ifdef MODULE
printk(KERN_ERR "Dummy soundcard #%i not found or device busy\n", dev + 1); printk(KERN_ERR "Dummy soundcard #%i not found or device busy\n", dev + 1);
...@@ -602,8 +602,8 @@ module_exit(alsa_card_dummy_exit) ...@@ -602,8 +602,8 @@ module_exit(alsa_card_dummy_exit)
#ifndef MODULE #ifndef MODULE
/* format is: snd-dummy=snd_enable,snd_index,snd_id, /* format is: snd-dummy=enable,index,id,
snd_pcm_devs,snd_pcm_substreams */ pcm_devs,pcm_substreams */
static int __init alsa_card_dummy_setup(char *str) static int __init alsa_card_dummy_setup(char *str)
{ {
...@@ -611,11 +611,11 @@ static int __init alsa_card_dummy_setup(char *str) ...@@ -611,11 +611,11 @@ static int __init alsa_card_dummy_setup(char *str)
if (nr_dev >= SNDRV_CARDS) if (nr_dev >= SNDRV_CARDS)
return 0; return 0;
(void)(get_option(&str,&snd_enable[nr_dev]) == 2 && (void)(get_option(&str,&enable[nr_dev]) == 2 &&
get_option(&str,&snd_index[nr_dev]) == 2 && get_option(&str,&index[nr_dev]) == 2 &&
get_id(&str,&snd_id[nr_dev]) == 2 && get_id(&str,&id[nr_dev]) == 2 &&
get_option(&str,&snd_pcm_devs[nr_dev]) == 2 && get_option(&str,&pcm_devs[nr_dev]) == 2 &&
get_option(&str,&snd_pcm_substreams[nr_dev]) == 2); get_option(&str,&pcm_substreams[nr_dev]) == 2);
nr_dev++; nr_dev++;
return 1; return 1;
} }
......
...@@ -35,27 +35,27 @@ MODULE_DESCRIPTION("MPU-401 UART"); ...@@ -35,27 +35,27 @@ MODULE_DESCRIPTION("MPU-401 UART");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_CLASSES("{sound}"); MODULE_CLASSES("{sound}");
static int snd_index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
static char *snd_id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */
static int snd_enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */ static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */
static long snd_port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* MPU-401 port number */ static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* MPU-401 port number */
static int snd_irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* MPU-401 IRQ */ static int irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* MPU-401 IRQ */
MODULE_PARM(snd_index, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_index, "Index value for MPU-401 device."); MODULE_PARM_DESC(index, "Index value for MPU-401 device.");
MODULE_PARM_SYNTAX(snd_index, SNDRV_INDEX_DESC); MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
MODULE_PARM(snd_id, "1-" __MODULE_STRING(SNDRV_CARDS) "s"); MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
MODULE_PARM_DESC(snd_id, "ID string for MPU-401 device."); MODULE_PARM_DESC(id, "ID string for MPU-401 device.");
MODULE_PARM_SYNTAX(snd_id, SNDRV_ID_DESC); MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
MODULE_PARM(snd_enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_enable, "Enable MPU-401 device."); MODULE_PARM_DESC(enable, "Enable MPU-401 device.");
MODULE_PARM_SYNTAX(snd_enable, SNDRV_ENABLE_DESC); MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
MODULE_PARM(snd_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l"); MODULE_PARM(port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
MODULE_PARM_DESC(snd_port, "Port # for MPU-401 device."); MODULE_PARM_DESC(port, "Port # for MPU-401 device.");
MODULE_PARM_SYNTAX(snd_port, SNDRV_PORT12_DESC); MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
MODULE_PARM(snd_irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_irq, "IRQ # for MPU-401 device."); MODULE_PARM_DESC(irq, "IRQ # for MPU-401 device.");
MODULE_PARM_SYNTAX(snd_irq, SNDRV_IRQ_DESC); MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
static snd_card_t *snd_mpu401_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR; static snd_card_t *snd_mpu401_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
...@@ -64,30 +64,30 @@ static int __init snd_card_mpu401_probe(int dev) ...@@ -64,30 +64,30 @@ static int __init snd_card_mpu401_probe(int dev)
snd_card_t *card; snd_card_t *card;
int err; int err;
if (snd_port[dev] == SNDRV_AUTO_PORT) { if (port[dev] == SNDRV_AUTO_PORT) {
snd_printk("specify snd_port\n"); snd_printk("specify port\n");
return -EINVAL; return -EINVAL;
} }
if (snd_irq[dev] == SNDRV_AUTO_IRQ) { if (irq[dev] == SNDRV_AUTO_IRQ) {
snd_printk("specify or disable IRQ port\n"); snd_printk("specify or disable IRQ port\n");
return -EINVAL; return -EINVAL;
} }
card = snd_card_new(snd_index[dev], snd_id[dev], THIS_MODULE, 0); card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0);
if (card == NULL) if (card == NULL)
return -ENOMEM; return -ENOMEM;
if (snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401, if (snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401,
snd_port[dev], 0, port[dev], 0,
snd_irq[dev], snd_irq[dev] >= 0 ? SA_INTERRUPT : 0, NULL) < 0) { irq[dev], irq[dev] >= 0 ? SA_INTERRUPT : 0, NULL) < 0) {
printk(KERN_ERR "MPU401 not detected at 0x%lx\n", snd_port[dev]); printk(KERN_ERR "MPU401 not detected at 0x%lx\n", port[dev]);
snd_card_free(card); snd_card_free(card);
return -ENODEV; return -ENODEV;
} }
strcpy(card->driver, "MPU-401 UART"); strcpy(card->driver, "MPU-401 UART");
strcpy(card->shortname, card->driver); strcpy(card->shortname, card->driver);
sprintf(card->longname, "%s at 0x%lx, ", card->shortname, snd_port[dev]); sprintf(card->longname, "%s at 0x%lx, ", card->shortname, port[dev]);
if (snd_irq[dev] >= 0) { if (irq[dev] >= 0) {
sprintf(card->longname + strlen(card->longname), "IRQ %d", snd_irq[dev]); sprintf(card->longname + strlen(card->longname), "IRQ %d", irq[dev]);
} else { } else {
strcat(card->longname, "polled"); strcat(card->longname, "polled");
} }
...@@ -104,7 +104,7 @@ static int __init alsa_card_mpu401_init(void) ...@@ -104,7 +104,7 @@ static int __init alsa_card_mpu401_init(void)
int dev, cards = 0; int dev, cards = 0;
for (dev = 0; dev < SNDRV_CARDS; dev++) { for (dev = 0; dev < SNDRV_CARDS; dev++) {
if (!snd_enable[dev]) if (!enable[dev])
continue; continue;
if (snd_card_mpu401_probe(dev) >= 0) if (snd_card_mpu401_probe(dev) >= 0)
cards++; cards++;
...@@ -131,7 +131,7 @@ module_exit(alsa_card_mpu401_exit) ...@@ -131,7 +131,7 @@ module_exit(alsa_card_mpu401_exit)
#ifndef MODULE #ifndef MODULE
/* format is: snd-mpu401=snd_enable,snd_index,snd_id,snd_port,snd_irq */ /* format is: snd-mpu401=enable,index,id,port,irq */
static int __init alsa_card_mpu401_setup(char *str) static int __init alsa_card_mpu401_setup(char *str)
{ {
...@@ -139,11 +139,11 @@ static int __init alsa_card_mpu401_setup(char *str) ...@@ -139,11 +139,11 @@ static int __init alsa_card_mpu401_setup(char *str)
if (nr_dev >= SNDRV_CARDS) if (nr_dev >= SNDRV_CARDS)
return 0; return 0;
(void)(get_option(&str,&snd_enable[nr_dev]) == 2 && (void)(get_option(&str,&enable[nr_dev]) == 2 &&
get_option(&str,&snd_index[nr_dev]) == 2 && get_option(&str,&index[nr_dev]) == 2 &&
get_id(&str,&snd_id[nr_dev]) == 2 && get_id(&str,&id[nr_dev]) == 2 &&
get_option(&str,(int *)&snd_port[nr_dev]) == 2 && get_option(&str,(int *)&port[nr_dev]) == 2 &&
get_option(&str,&snd_irq[nr_dev]) == 2); get_option(&str,&irq[nr_dev]) == 2);
nr_dev++; nr_dev++;
return 1; return 1;
} }
......
/* /*
* MOTU Midi Timepiece ALSA Main routines * MOTU Midi Timepiece ALSA Main routines
* Copyright by Michael T. Mayers (c) Jan 09, 2000 * Copyright by Michael T. Mayers (c) Jan 09, 2000
* mail: tweakoz@pacbell.net * mail: michael@tweakoz.com
* Thanks to John Galbraith * Thanks to John Galbraith
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
* Jun 11 2001 Takashi Iwai <tiwai@suse.de> * Jun 11 2001 Takashi Iwai <tiwai@suse.de>
* - Recoded & debugged * - Recoded & debugged
* - Added timer interrupt for midi outputs * - Added timer interrupt for midi outputs
* - snd_hwports is between 1 and 8, which specifies the number of hardware ports. * - hwports is between 1 and 8, which specifies the number of hardware ports.
* The three global ports, computer, adat and broadcast ports, are created * The three global ports, computer, adat and broadcast ports, are created
* always after h/w and remote ports. * always after h/w and remote ports.
* *
...@@ -75,27 +75,27 @@ MODULE_DEVICES("{{MOTU,MidiTimePiece AV multiport MIDI}}"); ...@@ -75,27 +75,27 @@ MODULE_DEVICES("{{MOTU,MidiTimePiece AV multiport MIDI}}");
#define MTPAV_IRQ 7 #define MTPAV_IRQ 7
#define MTPAV_MAX_PORTS 8 #define MTPAV_MAX_PORTS 8
static int snd_index = SNDRV_DEFAULT_IDX1; static int index = SNDRV_DEFAULT_IDX1;
static char *snd_id = SNDRV_DEFAULT_STR1; static char *id = SNDRV_DEFAULT_STR1;
static long snd_port = MTPAV_IOBASE; /* 0x378, 0x278 */ static long port = MTPAV_IOBASE; /* 0x378, 0x278 */
static int snd_irq = MTPAV_IRQ; /* 7, 5 */ static int irq = MTPAV_IRQ; /* 7, 5 */
static int snd_hwports = MTPAV_MAX_PORTS; /* use hardware ports 1-8 */ static int hwports = MTPAV_MAX_PORTS; /* use hardware ports 1-8 */
MODULE_PARM(snd_index, "i"); MODULE_PARM(index, "i");
MODULE_PARM_DESC(snd_index, "Index value for MotuMTPAV MIDI."); MODULE_PARM_DESC(index, "Index value for MotuMTPAV MIDI.");
MODULE_PARM_SYNTAX(snd_index, SNDRV_INDEX_DESC); MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
MODULE_PARM(snd_id, "s"); MODULE_PARM(id, "s");
MODULE_PARM_DESC(snd_id, "ID string for MotuMTPAV MIDI."); MODULE_PARM_DESC(id, "ID string for MotuMTPAV MIDI.");
MODULE_PARM_SYNTAX(snd_id, SNDRV_ID_DESC); MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
MODULE_PARM(snd_port, "l"); MODULE_PARM(port, "l");
MODULE_PARM_DESC(snd_port, "Parallel port # for MotuMTPAV MIDI."); MODULE_PARM_DESC(port, "Parallel port # for MotuMTPAV MIDI.");
MODULE_PARM_SYNTAX(snd_port, SNDRV_ENABLED ",allows:{{0x378},{0x278}},dialog:list"); MODULE_PARM_SYNTAX(port, SNDRV_ENABLED ",allows:{{0x378},{0x278}},dialog:list");
MODULE_PARM(snd_irq, "i"); MODULE_PARM(irq, "i");
MODULE_PARM_DESC(snd_irq, "Parallel IRQ # for MotuMTPAV MIDI."); MODULE_PARM_DESC(irq, "Parallel IRQ # for MotuMTPAV MIDI.");
MODULE_PARM_SYNTAX(snd_irq, SNDRV_ENABLED ",allows:{{7},{5}},dialog:list"); MODULE_PARM_SYNTAX(irq, SNDRV_ENABLED ",allows:{{7},{5}},dialog:list");
MODULE_PARM(snd_hwports, "i"); MODULE_PARM(hwports, "i");
MODULE_PARM_DESC(snd_hwports, "Hardware ports # for MotuMTPAV MIDI."); MODULE_PARM_DESC(hwports, "Hardware ports # for MotuMTPAV MIDI.");
MODULE_PARM_SYNTAX(snd_hwports, SNDRV_ENABLED ",allows:{{1,8}},dialog:list"); MODULE_PARM_SYNTAX(hwports, SNDRV_ENABLED ",allows:{{1,8}},dialog:list");
/* /*
* defines * defines
...@@ -421,25 +421,19 @@ static void snd_mtpav_output_timer(unsigned long data) ...@@ -421,25 +421,19 @@ static void snd_mtpav_output_timer(unsigned long data)
spin_unlock(&chip->spinlock); spin_unlock(&chip->spinlock);
} }
/* spinlock held! */
static void snd_mtpav_add_output_timer(mtpav_t *chip) static void snd_mtpav_add_output_timer(mtpav_t *chip)
{ {
unsigned long flags;
spin_lock_irqsave(&chip->spinlock, flags);
chip->timer.function = snd_mtpav_output_timer; chip->timer.function = snd_mtpav_output_timer;
chip->timer.data = (unsigned long) mtp_card; chip->timer.data = (unsigned long) mtp_card;
chip->timer.expires = 1 + jiffies; chip->timer.expires = 1 + jiffies;
add_timer(&chip->timer); add_timer(&chip->timer);
spin_unlock_irqrestore(&chip->spinlock, flags);
} }
/* spinlock held! */
static void snd_mtpav_remove_output_timer(mtpav_t *chip) static void snd_mtpav_remove_output_timer(mtpav_t *chip)
{ {
unsigned long flags;
spin_lock_irqsave(&chip->spinlock, flags);
del_timer(&chip->timer); del_timer(&chip->timer);
spin_unlock_irqrestore(&chip->spinlock, flags);
} }
/* /*
...@@ -510,8 +504,11 @@ static void snd_mtpav_inmidi_process(mtpav_t *mcrd, u8 inbyte) ...@@ -510,8 +504,11 @@ static void snd_mtpav_inmidi_process(mtpav_t *mcrd, u8 inbyte)
return; return;
port = &mcrd->ports[mcrd->inmidiport]; port = &mcrd->ports[mcrd->inmidiport];
if (port->mode & MTPAV_MODE_INPUT_TRIGGERED) if (port->mode & MTPAV_MODE_INPUT_TRIGGERED) {
spin_unlock(&mcrd->spinlock);
snd_rawmidi_receive(port->input, &inbyte, 1); snd_rawmidi_receive(port->input, &inbyte, 1);
spin_lock(&mcrd->spinlock);
}
} }
static void snd_mtpav_inmidi_h(mtpav_t * mcrd, u8 inbyte) static void snd_mtpav_inmidi_h(mtpav_t * mcrd, u8 inbyte)
...@@ -588,16 +585,16 @@ static void snd_mtpav_irqh(int irq, void *dev_id, struct pt_regs *regs) ...@@ -588,16 +585,16 @@ static void snd_mtpav_irqh(int irq, void *dev_id, struct pt_regs *regs)
*/ */
static int snd_mtpav_get_ISA(mtpav_t * mcard) static int snd_mtpav_get_ISA(mtpav_t * mcard)
{ {
if ((mcard->res_port = request_region(snd_port, 3, "MotuMTPAV MIDI")) == NULL) { if ((mcard->res_port = request_region(port, 3, "MotuMTPAV MIDI")) == NULL) {
snd_printk("MTVAP port 0x%lx is busy\n", snd_port); snd_printk("MTVAP port 0x%lx is busy\n", port);
return -EBUSY; return -EBUSY;
} }
mcard->port = snd_port; mcard->port = port;
if (request_irq(snd_irq, snd_mtpav_irqh, SA_INTERRUPT, "MOTU MTPAV", (void *)mcard)) { if (request_irq(irq, snd_mtpav_irqh, SA_INTERRUPT, "MOTU MTPAV", (void *)mcard)) {
snd_printk("MTVAP IRQ %d busy\n", snd_irq); snd_printk("MTVAP IRQ %d busy\n", irq);
return -EBUSY; return -EBUSY;
} }
mcard->irq = snd_irq; mcard->irq = irq;
return 0; return 0;
} }
...@@ -645,12 +642,12 @@ static int snd_mtpav_get_RAWMIDI(mtpav_t * mcard) ...@@ -645,12 +642,12 @@ static int snd_mtpav_get_RAWMIDI(mtpav_t * mcard)
//printk("entering snd_mtpav_get_RAWMIDI\n"); //printk("entering snd_mtpav_get_RAWMIDI\n");
if (snd_hwports < 1) if (hwports < 1)
mcard->num_ports = 1; mcard->num_ports = 1;
else if (snd_hwports > 8) else if (hwports > 8)
mcard->num_ports = 8; mcard->num_ports = 8;
else else
mcard->num_ports = snd_hwports; mcard->num_ports = hwports;
if ((rval = snd_rawmidi_new(mcard->card, "MotuMIDI", 0, if ((rval = snd_rawmidi_new(mcard->card, "MotuMIDI", 0,
mcard->num_ports * 2 + MTPAV_PIDX_BROADCAST + 1, mcard->num_ports * 2 + MTPAV_PIDX_BROADCAST + 1,
...@@ -730,7 +727,7 @@ static int __init alsa_card_mtpav_init(void) ...@@ -730,7 +727,7 @@ static int __init alsa_card_mtpav_init(void)
if (mtp_card == NULL) if (mtp_card == NULL)
return -ENOMEM; return -ENOMEM;
mtp_card->card = snd_card_new(snd_index, snd_id, THIS_MODULE, 0); mtp_card->card = snd_card_new(index, id, THIS_MODULE, 0);
if (mtp_card->card == NULL) { if (mtp_card->card == NULL) {
free_mtpav(mtp_card); free_mtpav(mtp_card);
return -ENOMEM; return -ENOMEM;
...@@ -760,7 +757,7 @@ static int __init alsa_card_mtpav_init(void) ...@@ -760,7 +757,7 @@ static int __init alsa_card_mtpav_init(void)
snd_mtpav_portscan(mtp_card); snd_mtpav_portscan(mtp_card);
printk(KERN_INFO "Motu MidiTimePiece on parallel port irq: %d ioport: 0x%lx\n", snd_irq, snd_port); printk(KERN_INFO "Motu MidiTimePiece on parallel port irq: %d ioport: 0x%lx\n", irq, port);
return 0; return 0;
...@@ -790,19 +787,19 @@ module_exit(alsa_card_mtpav_exit) ...@@ -790,19 +787,19 @@ module_exit(alsa_card_mtpav_exit)
#ifndef MODULE #ifndef MODULE
/* format is: snd-mtpav=snd_enable,snd_index,snd_id, /* format is: snd-mtpav=snd_enable,index,id,
snd_port,snd_irq,snd_hwports */ port,irq,hwports */
static int __init alsa_card_mtpav_setup(char *str) static int __init alsa_card_mtpav_setup(char *str)
{ {
int __attribute__ ((__unused__)) enable = 1; int __attribute__ ((__unused__)) enable = 1;
(void)(get_option(&str,&enable) == 2 && (void)(get_option(&str,&enable) == 2 &&
get_option(&str,&snd_index) == 2 && get_option(&str,&index) == 2 &&
get_id(&str,&snd_id) == 2 && get_id(&str,&id) == 2 &&
get_option(&str,(int *)&snd_port) == 2 && get_option(&str,(int *)&port) == 2 &&
get_option(&str,&snd_irq) == 2 && get_option(&str,&irq) == 2 &&
get_option(&str,&snd_hwports) == 2); get_option(&str,&hwports) == 2);
return 1; return 1;
} }
......
...@@ -61,48 +61,48 @@ static char *adaptor_names[] = { ...@@ -61,48 +61,48 @@ static char *adaptor_names[] = {
"Generic" "Generic"
}; };
static int snd_index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
static char *snd_id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */
static int snd_enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */ static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */
static long snd_port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* 0x3f8,0x2f8,0x3e8,0x2e8 */ static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* 0x3f8,0x2f8,0x3e8,0x2e8 */
static int snd_irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 3,4,5,7,9,10,11,14,15 */ static int irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 3,4,5,7,9,10,11,14,15 */
static int snd_speed[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 38400}; /* 9600,19200,38400,57600,115200 */ static int speed[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 38400}; /* 9600,19200,38400,57600,115200 */
static int snd_base[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 115200}; /* baud base */ static int base[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 115200}; /* baud base */
static int snd_outs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; /* 1 to 16 */ static int outs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; /* 1 to 16 */
static int snd_ins[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; /* 1 to 16 */ static int ins[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; /* 1 to 16 */
static int snd_adaptor[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = SNDRV_SERIAL_SOUNDCANVAS}; static int adaptor[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = SNDRV_SERIAL_SOUNDCANVAS};
MODULE_PARM(snd_index, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_index, "Index value for Serial MIDI."); MODULE_PARM_DESC(index, "Index value for Serial MIDI.");
MODULE_PARM_SYNTAX(snd_index, SNDRV_INDEX_DESC); MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
MODULE_PARM(snd_id, "1-" __MODULE_STRING(SNDRV_CARDS) "s"); MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
MODULE_PARM_DESC(snd_id, "ID string for Serial MIDI."); MODULE_PARM_DESC(id, "ID string for Serial MIDI.");
MODULE_PARM_SYNTAX(snd_id, SNDRV_ID_DESC); MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
MODULE_PARM(snd_enable, "1-" __MODULE_STRING(SNDRV_CARDS) "l"); MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
MODULE_PARM_DESC(snd_enable, "Enable UART16550A chip."); MODULE_PARM_DESC(enable, "Enable UART16550A chip.");
MODULE_PARM_SYNTAX(snd_enable, SNDRV_ENABLE_DESC); MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
MODULE_PARM(snd_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l"); MODULE_PARM(port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
MODULE_PARM_DESC(snd_port, "Port # for UART16550A chip."); MODULE_PARM_DESC(port, "Port # for UART16550A chip.");
MODULE_PARM_SYNTAX(snd_port, SNDRV_PORT12_DESC); MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
MODULE_PARM(snd_irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_irq, "IRQ # for UART16550A chip."); MODULE_PARM_DESC(irq, "IRQ # for UART16550A chip.");
MODULE_PARM_SYNTAX(snd_irq, SNDRV_IRQ_DESC); MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
MODULE_PARM(snd_speed, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(speed, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_speed, "Speed in bauds."); MODULE_PARM_DESC(speed, "Speed in bauds.");
MODULE_PARM_SYNTAX(snd_speed, SNDRV_ENABLED ",allows:{9600,19200,38400,57600,115200},dialog:list"); MODULE_PARM_SYNTAX(speed, SNDRV_ENABLED ",allows:{9600,19200,38400,57600,115200},dialog:list");
MODULE_PARM(snd_base, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(base, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_base, "Base for divisor in bauds."); MODULE_PARM_DESC(base, "Base for divisor in bauds.");
MODULE_PARM_SYNTAX(snd_base, SNDRV_ENABLED ",allows:{57600,115200,230400,460800},dialog:list"); MODULE_PARM_SYNTAX(base, SNDRV_ENABLED ",allows:{57600,115200,230400,460800},dialog:list");
MODULE_PARM(snd_outs, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(outs, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_outs, "Number of MIDI outputs."); MODULE_PARM_DESC(outs, "Number of MIDI outputs.");
MODULE_PARM(snd_ins, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(ins, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_ins, "Number of MIDI inputs."); MODULE_PARM_DESC(ins, "Number of MIDI inputs.");
MODULE_PARM_SYNTAX(snd_outs, SNDRV_ENABLED ",allows:{{1,16}},dialog:list"); MODULE_PARM_SYNTAX(outs, SNDRV_ENABLED ",allows:{{1,16}},dialog:list");
MODULE_PARM_SYNTAX(snd_ins, SNDRV_ENABLED ",allows:{{1,16}},dialog:list"); MODULE_PARM_SYNTAX(ins, SNDRV_ENABLED ",allows:{{1,16}},dialog:list");
MODULE_PARM(snd_adaptor, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(adaptor, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_adaptor, "Type of adaptor."); MODULE_PARM_DESC(adaptor, "Type of adaptor.");
MODULE_PARM_SYNTAX(snd_adaptor, SNDRV_ENABLED ",allows:{{0=Soundcanvas,1=MS-124T,2=MS-124W S/A,3=MS-124W M/B,4=Generic}},dialog:list"); MODULE_PARM_SYNTAX(adaptor, SNDRV_ENABLED ",allows:{{0=Soundcanvas,1=MS-124T,2=MS-124W S/A,3=MS-124W M/B,4=Generic}},dialog:list");
/*#define SNDRV_SERIAL_MS124W_MB_NOCOMBO 1*/ /* Address outs as 0-3 instead of bitmap */ /*#define SNDRV_SERIAL_MS124W_MB_NOCOMBO 1*/ /* Address outs as 0-3 instead of bitmap */
...@@ -842,67 +842,67 @@ static int __init snd_serial_probe(int dev) ...@@ -842,67 +842,67 @@ static int __init snd_serial_probe(int dev)
snd_uart16550_t *uart; snd_uart16550_t *uart;
int err; int err;
if (!snd_enable[dev]) if (!enable[dev])
return -ENOENT; return -ENOENT;
switch (snd_adaptor[dev]) { switch (adaptor[dev]) {
case SNDRV_SERIAL_SOUNDCANVAS: case SNDRV_SERIAL_SOUNDCANVAS:
snd_ins[dev] = 1; ins[dev] = 1;
break; break;
case SNDRV_SERIAL_MS124T: case SNDRV_SERIAL_MS124T:
case SNDRV_SERIAL_MS124W_SA: case SNDRV_SERIAL_MS124W_SA:
snd_outs[dev] = 1; outs[dev] = 1;
snd_ins[dev] = 1; ins[dev] = 1;
break; break;
case SNDRV_SERIAL_MS124W_MB: case SNDRV_SERIAL_MS124W_MB:
snd_outs[dev] = 16; outs[dev] = 16;
snd_ins[dev] = 1; ins[dev] = 1;
break; break;
case SNDRV_SERIAL_GENERIC: case SNDRV_SERIAL_GENERIC:
break; break;
default: default:
snd_printk("Adaptor type is out of range 0-%d (%d)\n", snd_printk("Adaptor type is out of range 0-%d (%d)\n",
SNDRV_SERIAL_MAX_ADAPTOR, snd_adaptor[dev]); SNDRV_SERIAL_MAX_ADAPTOR, adaptor[dev]);
return -ENODEV; return -ENODEV;
} }
if (snd_outs[dev] < 1 || snd_outs[dev] > SNDRV_SERIAL_MAX_OUTS) { if (outs[dev] < 1 || outs[dev] > SNDRV_SERIAL_MAX_OUTS) {
snd_printk("Count of outputs is out of range 1-%d (%d)\n", snd_printk("Count of outputs is out of range 1-%d (%d)\n",
SNDRV_SERIAL_MAX_OUTS, snd_outs[dev]); SNDRV_SERIAL_MAX_OUTS, outs[dev]);
return -ENODEV; return -ENODEV;
} }
if (snd_ins[dev] < 1 || snd_ins[dev] > SNDRV_SERIAL_MAX_INS) { if (ins[dev] < 1 || ins[dev] > SNDRV_SERIAL_MAX_INS) {
snd_printk("Count of inputs is out of range 1-%d (%d)\n", snd_printk("Count of inputs is out of range 1-%d (%d)\n",
SNDRV_SERIAL_MAX_INS, snd_ins[dev]); SNDRV_SERIAL_MAX_INS, ins[dev]);
return -ENODEV; return -ENODEV;
} }
card = snd_card_new(snd_index[dev], snd_id[dev], THIS_MODULE, 0); card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0);
if (card == NULL) if (card == NULL)
return -ENOMEM; return -ENOMEM;
strcpy(card->driver, "Serial"); strcpy(card->driver, "Serial");
strcpy(card->shortname, "Serial midi (uart16550A)"); strcpy(card->shortname, "Serial midi (uart16550A)");
if ((err = snd_uart16550_detect(snd_port[dev])) <= 0) { if ((err = snd_uart16550_detect(port[dev])) <= 0) {
snd_card_free(card); snd_card_free(card);
printk(KERN_ERR "no UART detected at 0x%lx\n", (long)snd_port[dev]); printk(KERN_ERR "no UART detected at 0x%lx\n", (long)port[dev]);
return err; return err;
} }
if ((err = snd_uart16550_create(card, if ((err = snd_uart16550_create(card,
snd_port[dev], port[dev],
snd_irq[dev], irq[dev],
snd_speed[dev], speed[dev],
snd_base[dev], base[dev],
snd_adaptor[dev], adaptor[dev],
&uart)) < 0) { &uart)) < 0) {
snd_card_free(card); snd_card_free(card);
return err; return err;
} }
if ((err = snd_uart16550_rmidi(uart, 0, snd_outs[dev], snd_ins[dev], &uart->rmidi)) < 0) { if ((err = snd_uart16550_rmidi(uart, 0, outs[dev], ins[dev], &uart->rmidi)) < 0) {
snd_card_free(card); snd_card_free(card);
return err; return err;
} }
...@@ -913,8 +913,8 @@ static int __init snd_serial_probe(int dev) ...@@ -913,8 +913,8 @@ static int __init snd_serial_probe(int dev)
uart->irq, uart->irq,
uart->speed, uart->speed,
(int)uart->divisor, (int)uart->divisor,
snd_outs[dev], outs[dev],
snd_ins[dev], ins[dev],
adaptor_names[uart->adaptor]); adaptor_names[uart->adaptor]);
if ((err = snd_card_register(card)) < 0) { if ((err = snd_card_register(card)) < 0) {
...@@ -959,9 +959,9 @@ module_exit(alsa_card_serial_exit) ...@@ -959,9 +959,9 @@ module_exit(alsa_card_serial_exit)
#ifndef MODULE #ifndef MODULE
/* format is: snd-serial=snd_enable,snd_index,snd_id, /* format is: snd-serial=enable,index,id,
snd_port,snd_irq,snd_speed,snd_base,snd_outs, port,irq,speed,base,outs,
snd_ins,snd_adaptor */ ins,adaptor */
static int __init alsa_card_serial_setup(char *str) static int __init alsa_card_serial_setup(char *str)
{ {
...@@ -969,16 +969,16 @@ static int __init alsa_card_serial_setup(char *str) ...@@ -969,16 +969,16 @@ static int __init alsa_card_serial_setup(char *str)
if (nr_dev >= SNDRV_CARDS) if (nr_dev >= SNDRV_CARDS)
return 0; return 0;
(void)(get_option(&str,&snd_enable[nr_dev]) == 2 && (void)(get_option(&str,&enable[nr_dev]) == 2 &&
get_option(&str,&snd_index[nr_dev]) == 2 && get_option(&str,&index[nr_dev]) == 2 &&
get_id(&str,&snd_id[nr_dev]) == 2 && get_id(&str,&id[nr_dev]) == 2 &&
get_option(&str,(int *)&snd_port[nr_dev]) == 2 && get_option(&str,(int *)&port[nr_dev]) == 2 &&
get_option(&str,&snd_irq[nr_dev]) == 2 && get_option(&str,&irq[nr_dev]) == 2 &&
get_option(&str,&snd_speed[nr_dev]) == 2 && get_option(&str,&speed[nr_dev]) == 2 &&
get_option(&str,&snd_base[nr_dev]) == 2 && get_option(&str,&base[nr_dev]) == 2 &&
get_option(&str,&snd_outs[nr_dev]) == 2 && get_option(&str,&outs[nr_dev]) == 2 &&
get_option(&str,&snd_ins[nr_dev]) == 2 && get_option(&str,&ins[nr_dev]) == 2 &&
get_option(&str,&snd_adaptor[nr_dev]) == 2); get_option(&str,&adaptor[nr_dev]) == 2);
nr_dev++; nr_dev++;
return 1; return 1;
} }
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
* *
* Typical usage is like following: * Typical usage is like following:
* - Load snd-virmidi module. * - Load snd-virmidi module.
* # modprobe snd-virmidi snd_index=2 * # modprobe snd-virmidi index=2
* Then, sequencer clients 72:0 to 75:0 will be created, which are * Then, sequencer clients 72:0 to 75:0 will be created, which are
* mapped from /dev/snd/midiC1D0 to /dev/snd/midiC1D3, respectively. * mapped from /dev/snd/midiC1D0 to /dev/snd/midiC1D3, respectively.
* *
...@@ -59,23 +59,23 @@ MODULE_DEVICES("{{ALSA,Virtual rawmidi device}}"); ...@@ -59,23 +59,23 @@ MODULE_DEVICES("{{ALSA,Virtual rawmidi device}}");
#define MAX_MIDI_DEVICES 8 #define MAX_MIDI_DEVICES 8
static int snd_index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
static char *snd_id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */
static int snd_enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 0}; static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 0};
static int snd_midi_devs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 4}; static int midi_devs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 4};
MODULE_PARM(snd_index, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_index, "Index value for virmidi soundcard."); MODULE_PARM_DESC(index, "Index value for virmidi soundcard.");
MODULE_PARM_SYNTAX(snd_index, SNDRV_INDEX_DESC); MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
MODULE_PARM(snd_id, "1-" __MODULE_STRING(SNDRV_CARDS) "s"); MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
MODULE_PARM_DESC(snd_id, "ID string for virmidi soundcard."); MODULE_PARM_DESC(id, "ID string for virmidi soundcard.");
MODULE_PARM_SYNTAX(snd_id, SNDRV_ID_DESC); MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
MODULE_PARM(snd_enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_enable, "Enable this soundcard."); MODULE_PARM_DESC(enable, "Enable this soundcard.");
MODULE_PARM_SYNTAX(snd_enable, SNDRV_ENABLE_DESC); MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
MODULE_PARM(snd_midi_devs, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(midi_devs, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_midi_devs, "MIDI devices # (1-8)"); MODULE_PARM_DESC(midi_devs, "MIDI devices # (1-8)");
MODULE_PARM_SYNTAX(snd_midi_devs, SNDRV_ENABLED ",allows:{{1,8}}"); MODULE_PARM_SYNTAX(midi_devs, SNDRV_ENABLED ",allows:{{1,8}}");
typedef struct snd_card_virmidi { typedef struct snd_card_virmidi {
snd_card_t *card; snd_card_t *card;
...@@ -91,20 +91,20 @@ static int __init snd_card_virmidi_probe(int dev) ...@@ -91,20 +91,20 @@ static int __init snd_card_virmidi_probe(int dev)
struct snd_card_virmidi *vmidi; struct snd_card_virmidi *vmidi;
int idx, err; int idx, err;
if (!snd_enable[dev]) if (!enable[dev])
return -ENODEV; return -ENODEV;
card = snd_card_new(snd_index[dev], snd_id[dev], THIS_MODULE, card = snd_card_new(index[dev], id[dev], THIS_MODULE,
sizeof(struct snd_card_virmidi)); sizeof(struct snd_card_virmidi));
if (card == NULL) if (card == NULL)
return -ENOMEM; return -ENOMEM;
vmidi = (struct snd_card_virmidi *)card->private_data; vmidi = (struct snd_card_virmidi *)card->private_data;
vmidi->card = card; vmidi->card = card;
if (snd_midi_devs[dev] > MAX_MIDI_DEVICES) { if (midi_devs[dev] > MAX_MIDI_DEVICES) {
snd_printk("too much midi devices for virmidi %d: force to use %d\n", dev, MAX_MIDI_DEVICES); snd_printk("too much midi devices for virmidi %d: force to use %d\n", dev, MAX_MIDI_DEVICES);
snd_midi_devs[dev] = MAX_MIDI_DEVICES; midi_devs[dev] = MAX_MIDI_DEVICES;
} }
for (idx = 0; idx < snd_midi_devs[dev]; idx++) { for (idx = 0; idx < midi_devs[dev]; idx++) {
snd_rawmidi_t *rmidi; snd_rawmidi_t *rmidi;
snd_virmidi_dev_t *rdev; snd_virmidi_dev_t *rdev;
if ((err = snd_virmidi_new(card, idx, &rmidi)) < 0) if ((err = snd_virmidi_new(card, idx, &rmidi)) < 0)
...@@ -131,7 +131,7 @@ static int __init alsa_card_virmidi_init(void) ...@@ -131,7 +131,7 @@ static int __init alsa_card_virmidi_init(void)
{ {
int dev, cards; int dev, cards;
for (dev = cards = 0; dev < SNDRV_CARDS && snd_enable[dev]; dev++) { for (dev = cards = 0; dev < SNDRV_CARDS && enable[dev]; dev++) {
if (snd_card_virmidi_probe(dev) < 0) { if (snd_card_virmidi_probe(dev) < 0) {
#ifdef MODULE #ifdef MODULE
printk(KERN_ERR "Card-VirMIDI #%i not found or device busy\n", dev + 1); printk(KERN_ERR "Card-VirMIDI #%i not found or device busy\n", dev + 1);
...@@ -162,7 +162,7 @@ module_exit(alsa_card_virmidi_exit) ...@@ -162,7 +162,7 @@ module_exit(alsa_card_virmidi_exit)
#ifndef MODULE #ifndef MODULE
/* format is: snd-virmidi=snd_enable,snd_index,snd_id,snd_midi_devs */ /* format is: snd-virmidi=enable,index,id,midi_devs */
static int __init alsa_card_virmidi_setup(char *str) static int __init alsa_card_virmidi_setup(char *str)
{ {
...@@ -170,10 +170,10 @@ static int __init alsa_card_virmidi_setup(char *str) ...@@ -170,10 +170,10 @@ static int __init alsa_card_virmidi_setup(char *str)
if (nr_dev >= SNDRV_CARDS) if (nr_dev >= SNDRV_CARDS)
return 0; return 0;
(void)(get_option(&str,&snd_enable[nr_dev]) == 2 && (void)(get_option(&str,&enable[nr_dev]) == 2 &&
get_option(&str,&snd_index[nr_dev]) == 2 && get_option(&str,&index[nr_dev]) == 2 &&
get_id(&str,&snd_id[nr_dev]) == 2 && get_id(&str,&id[nr_dev]) == 2 &&
get_option(&str,&snd_midi_devs[nr_dev]) == 2); get_option(&str,&midi_devs[nr_dev]) == 2);
nr_dev++; nr_dev++;
return 1; return 1;
} }
......
This diff is collapsed.
...@@ -40,31 +40,31 @@ MODULE_DEVICES("{{Analog Devices,AD1848}," ...@@ -40,31 +40,31 @@ MODULE_DEVICES("{{Analog Devices,AD1848},"
"{Analog Devices,AD1847}," "{Analog Devices,AD1847},"
"{Crystal Semiconductors,CS4248}}"); "{Crystal Semiconductors,CS4248}}");
static int snd_index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
static char *snd_id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */
static int snd_enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */ static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */
static long snd_port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* PnP setup */ static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* PnP setup */
static int snd_irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 5,7,9,11,12,15 */ static int irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 5,7,9,11,12,15 */
static int snd_dma1[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* 0,1,3,5,6,7 */ static int dma1[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* 0,1,3,5,6,7 */
MODULE_PARM(snd_index, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_index, "Index value for AD1848 soundcard."); MODULE_PARM_DESC(index, "Index value for AD1848 soundcard.");
MODULE_PARM_SYNTAX(snd_index, SNDRV_INDEX_DESC); MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
MODULE_PARM(snd_id, "1-" __MODULE_STRING(SNDRV_CARDS) "s"); MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
MODULE_PARM_DESC(snd_id, "ID string for AD1848 soundcard."); MODULE_PARM_DESC(id, "ID string for AD1848 soundcard.");
MODULE_PARM_SYNTAX(snd_id, SNDRV_ID_DESC); MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
MODULE_PARM(snd_enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_enable, "Enable AD1848 soundcard."); MODULE_PARM_DESC(enable, "Enable AD1848 soundcard.");
MODULE_PARM_SYNTAX(snd_enable, SNDRV_ENABLE_DESC); MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
MODULE_PARM(snd_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l"); MODULE_PARM(port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
MODULE_PARM_DESC(snd_port, "Port # for AD1848 driver."); MODULE_PARM_DESC(port, "Port # for AD1848 driver.");
MODULE_PARM_SYNTAX(snd_port, SNDRV_PORT12_DESC); MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
MODULE_PARM(snd_irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_irq, "IRQ # for AD1848 driver."); MODULE_PARM_DESC(irq, "IRQ # for AD1848 driver.");
MODULE_PARM_SYNTAX(snd_irq, SNDRV_IRQ_DESC); MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
MODULE_PARM(snd_dma1, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(dma1, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_dma1, "DMA1 # for AD1848 driver."); MODULE_PARM_DESC(dma1, "DMA1 # for AD1848 driver.");
MODULE_PARM_SYNTAX(snd_dma1, SNDRV_DMA_DESC); MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
static snd_card_t *snd_ad1848_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR; static snd_card_t *snd_ad1848_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
...@@ -76,26 +76,26 @@ static int __init snd_card_ad1848_probe(int dev) ...@@ -76,26 +76,26 @@ static int __init snd_card_ad1848_probe(int dev)
snd_pcm_t *pcm; snd_pcm_t *pcm;
int err; int err;
if (snd_port[dev] == SNDRV_AUTO_PORT) { if (port[dev] == SNDRV_AUTO_PORT) {
snd_printk("specify snd_port\n"); snd_printk("specify port\n");
return -EINVAL; return -EINVAL;
} }
if (snd_irq[dev] == SNDRV_AUTO_IRQ) { if (irq[dev] == SNDRV_AUTO_IRQ) {
snd_printk("specify snd_irq\n"); snd_printk("specify irq\n");
return -EINVAL; return -EINVAL;
} }
if (snd_dma1[dev] == SNDRV_AUTO_DMA) { if (dma1[dev] == SNDRV_AUTO_DMA) {
snd_printk("specify snd_dma1\n"); snd_printk("specify dma1\n");
return -EINVAL; return -EINVAL;
} }
card = snd_card_new(snd_index[dev], snd_id[dev], THIS_MODULE, 0); card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0);
if (card == NULL) if (card == NULL)
return -ENOMEM; return -ENOMEM;
if ((err = snd_ad1848_create(card, snd_port[dev], if ((err = snd_ad1848_create(card, port[dev],
snd_irq[dev], irq[dev],
snd_dma1[dev], dma1[dev],
AD1848_HW_DETECT, AD1848_HW_DETECT,
&chip)) < 0) { &chip)) < 0) {
snd_card_free(card); snd_card_free(card);
...@@ -114,7 +114,7 @@ static int __init snd_card_ad1848_probe(int dev) ...@@ -114,7 +114,7 @@ static int __init snd_card_ad1848_probe(int dev)
strcpy(card->shortname, pcm->name); strcpy(card->shortname, pcm->name);
sprintf(card->longname, "%s at 0x%lx, irq %d, dma %d", sprintf(card->longname, "%s at 0x%lx, irq %d, dma %d",
pcm->name, chip->port, snd_irq[dev], snd_dma1[dev]); pcm->name, chip->port, irq[dev], dma1[dev]);
if ((err = snd_card_register(card)) < 0) { if ((err = snd_card_register(card)) < 0) {
snd_card_free(card); snd_card_free(card);
...@@ -128,7 +128,7 @@ static int __init alsa_card_ad1848_init(void) ...@@ -128,7 +128,7 @@ static int __init alsa_card_ad1848_init(void)
{ {
int dev, cards; int dev, cards;
for (dev = cards = 0; dev < SNDRV_CARDS && snd_enable[dev]; dev++) for (dev = cards = 0; dev < SNDRV_CARDS && enable[dev]; dev++)
if (snd_card_ad1848_probe(dev) >= 0) if (snd_card_ad1848_probe(dev) >= 0)
cards++; cards++;
...@@ -154,8 +154,8 @@ module_exit(alsa_card_ad1848_exit) ...@@ -154,8 +154,8 @@ module_exit(alsa_card_ad1848_exit)
#ifndef MODULE #ifndef MODULE
/* format is: snd-ad1848=snd_enable,snd_index,snd_id,snd_port, /* format is: snd-ad1848=enable,index,id,port,
snd_irq,snd_dma1 */ irq,dma1 */
static int __init alsa_card_ad1848_setup(char *str) static int __init alsa_card_ad1848_setup(char *str)
{ {
...@@ -163,12 +163,12 @@ static int __init alsa_card_ad1848_setup(char *str) ...@@ -163,12 +163,12 @@ static int __init alsa_card_ad1848_setup(char *str)
if (nr_dev >= SNDRV_CARDS) if (nr_dev >= SNDRV_CARDS)
return 0; return 0;
(void)(get_option(&str,&snd_enable[nr_dev]) == 2 && (void)(get_option(&str,&enable[nr_dev]) == 2 &&
get_option(&str,&snd_index[nr_dev]) == 2 && get_option(&str,&index[nr_dev]) == 2 &&
get_id(&str,&snd_id[nr_dev]) == 2 && get_id(&str,&id[nr_dev]) == 2 &&
get_option(&str,(int *)&snd_port[nr_dev]) == 2 && get_option(&str,(int *)&port[nr_dev]) == 2 &&
get_option(&str,&snd_irq[nr_dev]) == 2 && get_option(&str,&irq[nr_dev]) == 2 &&
get_option(&str,&snd_dma1[nr_dev]) == 2); get_option(&str,&dma1[nr_dev]) == 2);
nr_dev++; nr_dev++;
return 1; return 1;
} }
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -38,43 +38,43 @@ MODULE_LICENSE("GPL"); ...@@ -38,43 +38,43 @@ MODULE_LICENSE("GPL");
MODULE_CLASSES("{sound}"); MODULE_CLASSES("{sound}");
MODULE_DEVICES("{{Crystal Semiconductors,CS4231}}"); MODULE_DEVICES("{{Crystal Semiconductors,CS4231}}");
static int snd_index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
static char *snd_id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */
static int snd_enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */ static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */
static long snd_port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* PnP setup */ static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* PnP setup */
static long snd_mpu_port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* PnP setup */ static long mpu_port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* PnP setup */
static int snd_irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 5,7,9,11,12,15 */ static int irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 5,7,9,11,12,15 */
static int snd_mpu_irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 9,11,12,15 */ static int mpu_irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 9,11,12,15 */
static int snd_dma1[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* 0,1,3,5,6,7 */ static int dma1[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* 0,1,3,5,6,7 */
static int snd_dma2[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* 0,1,3,5,6,7 */ static int dma2[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* 0,1,3,5,6,7 */
MODULE_PARM(snd_index, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_index, "Index value for CS4231 soundcard."); MODULE_PARM_DESC(index, "Index value for CS4231 soundcard.");
MODULE_PARM_SYNTAX(snd_index, SNDRV_INDEX_DESC); MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
MODULE_PARM(snd_id, "1-" __MODULE_STRING(SNDRV_CARDS) "s"); MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
MODULE_PARM_DESC(snd_id, "ID string for CS4231 soundcard."); MODULE_PARM_DESC(id, "ID string for CS4231 soundcard.");
MODULE_PARM_SYNTAX(snd_id, SNDRV_ID_DESC); MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
MODULE_PARM(snd_enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_enable, "Enable CS4231 soundcard."); MODULE_PARM_DESC(enable, "Enable CS4231 soundcard.");
MODULE_PARM_SYNTAX(snd_enable, SNDRV_ENABLE_DESC); MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
MODULE_PARM(snd_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l"); MODULE_PARM(port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
MODULE_PARM_DESC(snd_port, "Port # for CS4231 driver."); MODULE_PARM_DESC(port, "Port # for CS4231 driver.");
MODULE_PARM_SYNTAX(snd_port, SNDRV_PORT12_DESC); MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
MODULE_PARM(snd_mpu_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l"); MODULE_PARM(mpu_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
MODULE_PARM_DESC(snd_mpu_port, "MPU-401 port # for CS4231 driver."); MODULE_PARM_DESC(mpu_port, "MPU-401 port # for CS4231 driver.");
MODULE_PARM_SYNTAX(snd_mpu_port, SNDRV_PORT12_DESC); MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT12_DESC);
MODULE_PARM(snd_irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_irq, "IRQ # for CS4231 driver."); MODULE_PARM_DESC(irq, "IRQ # for CS4231 driver.");
MODULE_PARM_SYNTAX(snd_irq, SNDRV_IRQ_DESC); MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
MODULE_PARM(snd_mpu_irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(mpu_irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_mpu_irq, "MPU-401 IRQ # for CS4231 driver."); MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for CS4231 driver.");
MODULE_PARM_SYNTAX(snd_mpu_irq, SNDRV_IRQ_DESC); MODULE_PARM_SYNTAX(mpu_irq, SNDRV_IRQ_DESC);
MODULE_PARM(snd_dma1, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(dma1, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_dma1, "DMA1 # for CS4231 driver."); MODULE_PARM_DESC(dma1, "DMA1 # for CS4231 driver.");
MODULE_PARM_SYNTAX(snd_dma1, SNDRV_DMA_DESC); MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
MODULE_PARM(snd_dma2, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(dma2, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_dma2, "DMA2 # for CS4231 driver."); MODULE_PARM_DESC(dma2, "DMA2 # for CS4231 driver.");
MODULE_PARM_SYNTAX(snd_dma2, SNDRV_DMA_DESC); MODULE_PARM_SYNTAX(dma2, SNDRV_DMA_DESC);
static snd_card_t *snd_cs4231_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR; static snd_card_t *snd_cs4231_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
...@@ -87,28 +87,28 @@ static int __init snd_card_cs4231_probe(int dev) ...@@ -87,28 +87,28 @@ static int __init snd_card_cs4231_probe(int dev)
cs4231_t *chip; cs4231_t *chip;
int err; int err;
if (snd_port[dev] == SNDRV_AUTO_PORT) { if (port[dev] == SNDRV_AUTO_PORT) {
snd_printk("specify snd_port\n"); snd_printk("specify port\n");
return -EINVAL; return -EINVAL;
} }
if (snd_irq[dev] == SNDRV_AUTO_IRQ) { if (irq[dev] == SNDRV_AUTO_IRQ) {
snd_printk("specify snd_irq\n"); snd_printk("specify irq\n");
return -EINVAL; return -EINVAL;
} }
if (snd_dma1[dev] == SNDRV_AUTO_DMA) { if (dma1[dev] == SNDRV_AUTO_DMA) {
snd_printk("specify snd_dma1\n"); snd_printk("specify dma1\n");
return -EINVAL; return -EINVAL;
} }
card = snd_card_new(snd_index[dev], snd_id[dev], THIS_MODULE, 0); card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0);
if (card == NULL) if (card == NULL)
return -ENOMEM; return -ENOMEM;
acard = (struct snd_card_cs4231 *)card->private_data; acard = (struct snd_card_cs4231 *)card->private_data;
if (snd_mpu_port[dev] < 0) if (mpu_port[dev] < 0)
snd_mpu_port[dev] = SNDRV_AUTO_PORT; mpu_port[dev] = SNDRV_AUTO_PORT;
if ((err = snd_cs4231_create(card, snd_port[dev], -1, if ((err = snd_cs4231_create(card, port[dev], -1,
snd_irq[dev], irq[dev],
snd_dma1[dev], dma1[dev],
snd_dma2[dev], dma2[dev],
CS4231_HW_DETECT, CS4231_HW_DETECT,
0, &chip)) < 0) { 0, &chip)) < 0) {
snd_card_free(card); snd_card_free(card);
...@@ -128,19 +128,19 @@ static int __init snd_card_cs4231_probe(int dev) ...@@ -128,19 +128,19 @@ static int __init snd_card_cs4231_probe(int dev)
return err; return err;
} }
if (snd_mpu_irq[dev] >= 0 && snd_mpu_irq[dev] != SNDRV_AUTO_IRQ) { if (mpu_irq[dev] >= 0 && mpu_irq[dev] != SNDRV_AUTO_IRQ) {
if (snd_mpu401_uart_new(card, 0, MPU401_HW_CS4232, if (snd_mpu401_uart_new(card, 0, MPU401_HW_CS4232,
snd_mpu_port[dev], 0, mpu_port[dev], 0,
snd_mpu_irq[dev], SA_INTERRUPT, mpu_irq[dev], SA_INTERRUPT,
NULL) < 0) NULL) < 0)
printk(KERN_ERR "cs4231: MPU401 not detected\n"); printk(KERN_ERR "cs4231: MPU401 not detected\n");
} }
strcpy(card->driver, "CS4231"); strcpy(card->driver, "CS4231");
strcpy(card->shortname, pcm->name); strcpy(card->shortname, pcm->name);
sprintf(card->longname, "%s at 0x%lx, irq %d, dma %d", sprintf(card->longname, "%s at 0x%lx, irq %d, dma %d",
pcm->name, chip->port, snd_irq[dev], snd_dma1[dev]); pcm->name, chip->port, irq[dev], dma1[dev]);
if (snd_dma2[dev] >= 0) if (dma2[dev] >= 0)
sprintf(card->longname + strlen(card->longname), "&%d", snd_dma2[dev]); sprintf(card->longname + strlen(card->longname), "&%d", dma2[dev]);
if ((err = snd_card_register(card)) < 0) { if ((err = snd_card_register(card)) < 0) {
snd_card_free(card); snd_card_free(card);
return err; return err;
...@@ -153,7 +153,7 @@ static int __init alsa_card_cs4231_init(void) ...@@ -153,7 +153,7 @@ static int __init alsa_card_cs4231_init(void)
{ {
int dev, cards; int dev, cards;
for (dev = cards = 0; dev < SNDRV_CARDS && snd_enable[dev]; dev++) { for (dev = cards = 0; dev < SNDRV_CARDS && enable[dev]; dev++) {
if (snd_card_cs4231_probe(dev) >= 0) if (snd_card_cs4231_probe(dev) >= 0)
cards++; cards++;
} }
...@@ -179,9 +179,9 @@ module_exit(alsa_card_cs4231_exit) ...@@ -179,9 +179,9 @@ module_exit(alsa_card_cs4231_exit)
#ifndef MODULE #ifndef MODULE
/* format is: snd-cs4231=snd_enable,snd_index,snd_id, /* format is: snd-cs4231=enable,index,id,
snd_port,snd_mpu_port,snd_irq,snd_mpu_irq, port,mpu_port,irq,mpu_irq,
snd_dma1,snd_dma2 */ dma1,dma2 */
static int __init alsa_card_cs4231_setup(char *str) static int __init alsa_card_cs4231_setup(char *str)
{ {
...@@ -190,16 +190,16 @@ static int __init alsa_card_cs4231_setup(char *str) ...@@ -190,16 +190,16 @@ static int __init alsa_card_cs4231_setup(char *str)
if (nr_dev >= SNDRV_CARDS) if (nr_dev >= SNDRV_CARDS)
return 0; return 0;
(void)(get_option(&str,&snd_enable[nr_dev]) == 2 && (void)(get_option(&str,&enable[nr_dev]) == 2 &&
get_option(&str,&snd_index[nr_dev]) == 2 && get_option(&str,&index[nr_dev]) == 2 &&
get_id(&str,&snd_id[nr_dev]) == 2 && get_id(&str,&id[nr_dev]) == 2 &&
get_option(&str,&pnp) == 2 && get_option(&str,&pnp) == 2 &&
get_option(&str,(int *)&snd_port[nr_dev]) == 2 && get_option(&str,(int *)&port[nr_dev]) == 2 &&
get_option(&str,(int *)&snd_mpu_port[nr_dev]) == 2 && get_option(&str,(int *)&mpu_port[nr_dev]) == 2 &&
get_option(&str,&snd_irq[nr_dev]) == 2 && get_option(&str,&irq[nr_dev]) == 2 &&
get_option(&str,&snd_mpu_irq[nr_dev]) == 2 && get_option(&str,&mpu_irq[nr_dev]) == 2 &&
get_option(&str,&snd_dma1[nr_dev]) == 2 && get_option(&str,&dma1[nr_dev]) == 2 &&
get_option(&str,&snd_dma2[nr_dev]) == 2); get_option(&str,&dma2[nr_dev]) == 2);
nr_dev++; nr_dev++;
return 1; return 1;
} }
......
This diff is collapsed.
This diff is collapsed.
...@@ -45,39 +45,39 @@ MODULE_DEVICES("{{ESS,ES688 PnP AudioDrive,pnp:ESS0100}," ...@@ -45,39 +45,39 @@ MODULE_DEVICES("{{ESS,ES688 PnP AudioDrive,pnp:ESS0100},"
"{ESS,ES688 AudioDrive,pnp:ESS6881}," "{ESS,ES688 AudioDrive,pnp:ESS6881},"
"{ESS,ES1688 AudioDrive,pnp:ESS1681}}"); "{ESS,ES1688 AudioDrive,pnp:ESS1681}}");
static int snd_index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
static char *snd_id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */
static int snd_enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */ static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE; /* Enable this card */
static long snd_port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* 0x220,0x240,0x260 */ static long port[SNDRV_CARDS] = SNDRV_DEFAULT_PORT; /* 0x220,0x240,0x260 */
static long snd_mpu_port[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = -1}; static long mpu_port[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = -1};
static int snd_irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 5,7,9,10 */ static int irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 5,7,9,10 */
static int snd_mpu_irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 5,7,9,10 */ static int mpu_irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 5,7,9,10 */
static int snd_dma8[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* 0,1,3 */ static int dma8[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* 0,1,3 */
MODULE_PARM(snd_index, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_index, "Index value for ESx688 soundcard."); MODULE_PARM_DESC(index, "Index value for ESx688 soundcard.");
MODULE_PARM_SYNTAX(snd_index, SNDRV_INDEX_DESC); MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
MODULE_PARM(snd_id, "1-" __MODULE_STRING(SNDRV_CARDS) "s"); MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
MODULE_PARM_DESC(snd_id, "ID string for ESx688 soundcard."); MODULE_PARM_DESC(id, "ID string for ESx688 soundcard.");
MODULE_PARM_SYNTAX(snd_id, SNDRV_ID_DESC); MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
MODULE_PARM(snd_enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_enable, "Enable ESx688 soundcard."); MODULE_PARM_DESC(enable, "Enable ESx688 soundcard.");
MODULE_PARM_SYNTAX(snd_enable, SNDRV_ENABLE_DESC); MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
MODULE_PARM(snd_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l"); MODULE_PARM(port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
MODULE_PARM_DESC(snd_port, "Port # for ESx688 driver."); MODULE_PARM_DESC(port, "Port # for ESx688 driver.");
MODULE_PARM_SYNTAX(snd_port, SNDRV_PORT12_DESC); MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
MODULE_PARM(snd_mpu_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l"); MODULE_PARM(mpu_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
MODULE_PARM_DESC(snd_mpu_port, "MPU-401 port # for ESx688 driver."); MODULE_PARM_DESC(mpu_port, "MPU-401 port # for ESx688 driver.");
MODULE_PARM_SYNTAX(snd_mpu_port, SNDRV_PORT12_DESC); MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT12_DESC);
MODULE_PARM(snd_irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_irq, "IRQ # for ESx688 driver."); MODULE_PARM_DESC(irq, "IRQ # for ESx688 driver.");
MODULE_PARM_SYNTAX(snd_irq, SNDRV_IRQ_DESC); MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
MODULE_PARM(snd_mpu_irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(mpu_irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_mpu_irq, "MPU-401 IRQ # for ESx688 driver."); MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for ESx688 driver.");
MODULE_PARM_SYNTAX(snd_mpu_irq, SNDRV_IRQ_DESC); MODULE_PARM_SYNTAX(mpu_irq, SNDRV_IRQ_DESC);
MODULE_PARM(snd_dma8, "1-" __MODULE_STRING(SNDRV_CARDS) "i"); MODULE_PARM(dma8, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(snd_dma8, "8-bit DMA # for ESx688 driver."); MODULE_PARM_DESC(dma8, "8-bit DMA # for ESx688 driver.");
MODULE_PARM_SYNTAX(snd_dma8, SNDRV_DMA8_DESC); MODULE_PARM_SYNTAX(dma8, SNDRV_DMA8_DESC);
static snd_card_t *snd_audiodrive_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR; static snd_card_t *snd_audiodrive_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
...@@ -86,37 +86,37 @@ static int __init snd_audiodrive_probe(int dev) ...@@ -86,37 +86,37 @@ static int __init snd_audiodrive_probe(int dev)
{ {
static int possible_irqs[] = {5, 9, 10, 7, -1}; static int possible_irqs[] = {5, 9, 10, 7, -1};
static int possible_dmas[] = {1, 3, 0, -1}; static int possible_dmas[] = {1, 3, 0, -1};
int irq, dma, mpu_irq; int xirq, xdma, xmpu_irq;
snd_card_t *card; snd_card_t *card;
es1688_t *chip; es1688_t *chip;
opl3_t *opl3; opl3_t *opl3;
snd_pcm_t *pcm; snd_pcm_t *pcm;
int err; int err;
card = snd_card_new(snd_index[dev], snd_id[dev], THIS_MODULE, 0); card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0);
if (card == NULL) if (card == NULL)
return -ENOMEM; return -ENOMEM;
irq = snd_irq[dev]; xirq = irq[dev];
if (irq == SNDRV_AUTO_IRQ) { if (xirq == SNDRV_AUTO_IRQ) {
if ((irq = snd_legacy_find_free_irq(possible_irqs)) < 0) { if ((xirq = snd_legacy_find_free_irq(possible_irqs)) < 0) {
snd_card_free(card); snd_card_free(card);
snd_printk("unable to find a free IRQ\n"); snd_printk("unable to find a free IRQ\n");
return -EBUSY; return -EBUSY;
} }
} }
mpu_irq = snd_mpu_irq[dev]; xmpu_irq = mpu_irq[dev];
dma = snd_dma8[dev]; xdma = dma8[dev];
if (dma == SNDRV_AUTO_DMA) { if (xdma == SNDRV_AUTO_DMA) {
if ((dma = snd_legacy_find_free_dma(possible_dmas)) < 0) { if ((xdma = snd_legacy_find_free_dma(possible_dmas)) < 0) {
snd_card_free(card); snd_card_free(card);
snd_printk("unable to find a free DMA\n"); snd_printk("unable to find a free DMA\n");
return -EBUSY; return -EBUSY;
} }
} }
if ((err = snd_es1688_create(card, snd_port[dev], snd_mpu_port[dev], if ((err = snd_es1688_create(card, port[dev], mpu_port[dev],
irq, mpu_irq, dma, xirq, xmpu_irq, xdma,
ES1688_HW_AUTO, &chip)) < 0) { ES1688_HW_AUTO, &chip)) < 0) {
snd_card_free(card); snd_card_free(card);
return err; return err;
...@@ -139,10 +139,10 @@ static int __init snd_audiodrive_probe(int dev) ...@@ -139,10 +139,10 @@ static int __init snd_audiodrive_probe(int dev)
} }
} }
if (mpu_irq >= 0) { if (xmpu_irq >= 0) {
if ((err = snd_mpu401_uart_new(card, 0, MPU401_HW_ES1688, if ((err = snd_mpu401_uart_new(card, 0, MPU401_HW_ES1688,
chip->mpu_port, 0, chip->mpu_port, 0,
mpu_irq, xmpu_irq,
SA_INTERRUPT, SA_INTERRUPT,
NULL)) < 0) { NULL)) < 0) {
snd_card_free(card); snd_card_free(card);
...@@ -151,7 +151,7 @@ static int __init snd_audiodrive_probe(int dev) ...@@ -151,7 +151,7 @@ static int __init snd_audiodrive_probe(int dev)
} }
strcpy(card->driver, "ES1688"); strcpy(card->driver, "ES1688");
strcpy(card->shortname, pcm->name); strcpy(card->shortname, pcm->name);
sprintf(card->longname, "%s at 0x%lx, irq %i, dma %i", pcm->name, chip->port, irq, dma); sprintf(card->longname, "%s at 0x%lx, irq %i, dma %i", pcm->name, chip->port, xirq, xdma);
if ((err = snd_card_register(card)) < 0) { if ((err = snd_card_register(card)) < 0) {
snd_card_free(card); snd_card_free(card);
return err; return err;
...@@ -161,18 +161,18 @@ static int __init snd_audiodrive_probe(int dev) ...@@ -161,18 +161,18 @@ static int __init snd_audiodrive_probe(int dev)
} }
static int __init snd_audiodrive_legacy_auto_probe(unsigned long port) static int __init snd_audiodrive_legacy_auto_probe(unsigned long xport)
{ {
static int dev; static int dev;
int res; int res;
for ( ; dev < SNDRV_CARDS; dev++) { for ( ; dev < SNDRV_CARDS; dev++) {
if (!snd_enable[dev] || snd_port[dev] != SNDRV_AUTO_PORT) if (!enable[dev] || port[dev] != SNDRV_AUTO_PORT)
continue; continue;
snd_port[dev] = port; port[dev] = xport;
res = snd_audiodrive_probe(dev); res = snd_audiodrive_probe(dev);
if (res < 0) if (res < 0)
snd_port[dev] = SNDRV_AUTO_PORT; port[dev] = SNDRV_AUTO_PORT;
return res; return res;
} }
return -ENODEV; return -ENODEV;
...@@ -183,8 +183,8 @@ static int __init alsa_card_es1688_init(void) ...@@ -183,8 +183,8 @@ static int __init alsa_card_es1688_init(void)
static unsigned long possible_ports[] = {0x220, 0x240, 0x260, -1}; static unsigned long possible_ports[] = {0x220, 0x240, 0x260, -1};
int dev, cards = 0; int dev, cards = 0;
for (dev = cards = 0; dev < SNDRV_CARDS && snd_enable[dev]; dev++) { for (dev = cards = 0; dev < SNDRV_CARDS && enable[dev]; dev++) {
if (snd_port[dev] == SNDRV_AUTO_PORT) if (port[dev] == SNDRV_AUTO_PORT)
continue; continue;
if (snd_audiodrive_probe(dev) >= 0) if (snd_audiodrive_probe(dev) >= 0)
cards++; cards++;
...@@ -212,10 +212,10 @@ module_exit(alsa_card_es1688_exit) ...@@ -212,10 +212,10 @@ module_exit(alsa_card_es1688_exit)
#ifndef MODULE #ifndef MODULE
/* format is: snd-es1688=snd_enable,snd_index,snd_id, /* format is: snd-es1688=enable,index,id,
snd_port,snd_mpu_port, port,mpu_port,
snd_irq,snd_mpu_irq, irq,mpu_irq,
snd_dma8 */ dma8 */
static int __init alsa_card_es1688_setup(char *str) static int __init alsa_card_es1688_setup(char *str)
{ {
...@@ -223,14 +223,14 @@ static int __init alsa_card_es1688_setup(char *str) ...@@ -223,14 +223,14 @@ static int __init alsa_card_es1688_setup(char *str)
if (nr_dev >= SNDRV_CARDS) if (nr_dev >= SNDRV_CARDS)
return 0; return 0;
(void)(get_option(&str,&snd_enable[nr_dev]) == 2 && (void)(get_option(&str,&enable[nr_dev]) == 2 &&
get_option(&str,&snd_index[nr_dev]) == 2 && get_option(&str,&index[nr_dev]) == 2 &&
get_id(&str,&snd_id[nr_dev]) == 2 && get_id(&str,&id[nr_dev]) == 2 &&
get_option(&str,(int *)&snd_port[nr_dev]) == 2 && get_option(&str,(int *)&port[nr_dev]) == 2 &&
get_option(&str,(int *)&snd_mpu_port[nr_dev]) == 2 && get_option(&str,(int *)&mpu_port[nr_dev]) == 2 &&
get_option(&str,&snd_irq[nr_dev]) == 2 && get_option(&str,&irq[nr_dev]) == 2 &&
get_option(&str,&snd_mpu_irq[nr_dev]) == 2 && get_option(&str,&mpu_irq[nr_dev]) == 2 &&
get_option(&str,&snd_dma8[nr_dev]) == 2); get_option(&str,&dma8[nr_dev]) == 2);
nr_dev++; nr_dev++;
return 1; return 1;
} }
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -396,8 +396,8 @@ void snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -396,8 +396,8 @@ void snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs)
spin_lock(&chip->mixer_lock); spin_lock(&chip->mixer_lock);
status = snd_sbmixer_read(chip, SB_DSP4_IRQSTATUS); status = snd_sbmixer_read(chip, SB_DSP4_IRQSTATUS);
spin_unlock(&chip->mixer_lock); spin_unlock(&chip->mixer_lock);
if ((status & SB_IRQTYPE_MPUIN) && chip->rmidi) if ((status & SB_IRQTYPE_MPUIN) && chip->rmidi_callback)
snd_mpu401_uart_interrupt(irq, chip->rmidi->private_data, regs); chip->rmidi_callback(irq, chip->rmidi->private_data, regs);
if (status & SB_IRQTYPE_8BIT) { if (status & SB_IRQTYPE_8BIT) {
ok = 0; ok = 0;
if (chip->mode & SB_MODE_PLAYBACK_8) { if (chip->mode & SB_MODE_PLAYBACK_8) {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -74,6 +74,9 @@ CONFIG_SND_FM801 ...@@ -74,6 +74,9 @@ CONFIG_SND_FM801
CONFIG_SND_ICE1712 CONFIG_SND_ICE1712
Say 'Y' or 'M' to include support for ICE1712 (Envy24) based soundcards. Say 'Y' or 'M' to include support for ICE1712 (Envy24) based soundcards.
Currently supported hardware is: MidiMan M Audio - Delta 1010(LT), Dio 2496,
Delta 66/44, Audiophile 24/96; Hoontech SoundTrack DSP 24 (Value);
TerraTec - EWX 24/96, EWS 88MT, EWS 88D, DMX 6Fire.
CONFIG_SND_INTEL8X0 CONFIG_SND_INTEL8X0
Say 'Y' or 'M' to include support for Intel8x0 based soundcards, Say 'Y' or 'M' to include support for Intel8x0 based soundcards,
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -413,7 +413,7 @@ static int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu, ...@@ -413,7 +413,7 @@ static int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu,
snd_runtime_check(emu, return -EINVAL); snd_runtime_check(emu, return -EINVAL);
snd_runtime_check(handler, return -EINVAL); snd_runtime_check(handler, return -EINVAL);
irq = kmalloc(sizeof(*irq), GFP_KERNEL); irq = kmalloc(sizeof(*irq), GFP_ATOMIC);
if (irq == NULL) if (irq == NULL)
return -ENOMEM; return -ENOMEM;
irq->handler = handler; irq->handler = handler;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -246,8 +246,11 @@ struct snd_ak4524 { ...@@ -246,8 +246,11 @@ struct snd_ak4524 {
unsigned int cif: 1; unsigned int cif: 1;
unsigned char data_mask; unsigned char data_mask;
unsigned char clk_mask; unsigned char clk_mask;
unsigned char codecs_mask; unsigned char cs_mask;
unsigned char cs_addr;
unsigned char cs_none;
unsigned char add_flags; unsigned char add_flags;
unsigned char mask_flags;
struct snd_ak4524_ops { struct snd_ak4524_ops {
int (*start)(ice1712_t *, unsigned char *, int); int (*start)(ice1712_t *, unsigned char *, int);
void (*stop)(ice1712_t *, unsigned char *); void (*stop)(ice1712_t *, unsigned char *);
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment