diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2005-11-20 08:06:59 -0500 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-01-03 06:29:17 -0500 |
commit | f87135f56cb266e031f5ec081dfbde7e43f55e80 (patch) | |
tree | c048abae6bb04df53f5d8d7dcffbf2c28bc638ff /sound/core/seq | |
parent | 6983b7240cd229787c3ee00e663ea94ea649d96a (diff) |
[ALSA] dynamic minors (3/6): store device-specific object pointers dynamically
Instead of storing the pointers to the device-specific structures in an
array, put them into the struct snd_minor, and look them up dynamically.
This makes the device type modules independent of the minor number
encoding.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Diffstat (limited to 'sound/core/seq')
-rw-r--r-- | sound/core/seq/oss/seq_oss.c | 4 | ||||
-rw-r--r-- | sound/core/seq/seq_clientmgr.c | 2 | ||||
-rw-r--r-- | sound/core/seq/seq_midi.c | 10 |
3 files changed, 11 insertions, 5 deletions
diff --git a/sound/core/seq/oss/seq_oss.c b/sound/core/seq/oss/seq_oss.c index 61c0a41376f..4b51ab56507 100644 --- a/sound/core/seq/oss/seq_oss.c +++ b/sound/core/seq/oss/seq_oss.c | |||
@@ -225,7 +225,7 @@ register_device(void) | |||
225 | down(®ister_mutex); | 225 | down(®ister_mutex); |
226 | if ((rc = snd_register_oss_device(SNDRV_OSS_DEVICE_TYPE_SEQUENCER, | 226 | if ((rc = snd_register_oss_device(SNDRV_OSS_DEVICE_TYPE_SEQUENCER, |
227 | NULL, 0, | 227 | NULL, 0, |
228 | &seq_oss_f_ops, | 228 | &seq_oss_f_ops, NULL, |
229 | SNDRV_SEQ_OSS_DEVNAME)) < 0) { | 229 | SNDRV_SEQ_OSS_DEVNAME)) < 0) { |
230 | snd_printk(KERN_ERR "can't register device seq\n"); | 230 | snd_printk(KERN_ERR "can't register device seq\n"); |
231 | up(®ister_mutex); | 231 | up(®ister_mutex); |
@@ -233,7 +233,7 @@ register_device(void) | |||
233 | } | 233 | } |
234 | if ((rc = snd_register_oss_device(SNDRV_OSS_DEVICE_TYPE_MUSIC, | 234 | if ((rc = snd_register_oss_device(SNDRV_OSS_DEVICE_TYPE_MUSIC, |
235 | NULL, 0, | 235 | NULL, 0, |
236 | &seq_oss_f_ops, | 236 | &seq_oss_f_ops, NULL, |
237 | SNDRV_SEQ_OSS_DEVNAME)) < 0) { | 237 | SNDRV_SEQ_OSS_DEVNAME)) < 0) { |
238 | snd_printk(KERN_ERR "can't register device music\n"); | 238 | snd_printk(KERN_ERR "can't register device music\n"); |
239 | snd_unregister_oss_device(SNDRV_OSS_DEVICE_TYPE_SEQUENCER, NULL, 0); | 239 | snd_unregister_oss_device(SNDRV_OSS_DEVICE_TYPE_SEQUENCER, NULL, 0); |
diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c index 087fdf32732..c8bd37ee837 100644 --- a/sound/core/seq/seq_clientmgr.c +++ b/sound/core/seq/seq_clientmgr.c | |||
@@ -2531,7 +2531,7 @@ int __init snd_sequencer_device_init(void) | |||
2531 | return -ERESTARTSYS; | 2531 | return -ERESTARTSYS; |
2532 | 2532 | ||
2533 | if ((err = snd_register_device(SNDRV_DEVICE_TYPE_SEQUENCER, NULL, 0, | 2533 | if ((err = snd_register_device(SNDRV_DEVICE_TYPE_SEQUENCER, NULL, 0, |
2534 | &snd_seq_f_ops, "seq")) < 0) { | 2534 | &snd_seq_f_ops, NULL, "seq")) < 0) { |
2535 | up(®ister_mutex); | 2535 | up(®ister_mutex); |
2536 | return err; | 2536 | return err; |
2537 | } | 2537 | } |
diff --git a/sound/core/seq/seq_midi.c b/sound/core/seq/seq_midi.c index f88d2e3ee66..0a65eb2f976 100644 --- a/sound/core/seq/seq_midi.c +++ b/sound/core/seq/seq_midi.c | |||
@@ -183,7 +183,10 @@ static int midisynth_subscribe(void *private_data, struct snd_seq_port_subscribe | |||
183 | struct snd_rawmidi_params params; | 183 | struct snd_rawmidi_params params; |
184 | 184 | ||
185 | /* open midi port */ | 185 | /* open midi port */ |
186 | if ((err = snd_rawmidi_kernel_open(msynth->card->number, msynth->device, msynth->subdevice, SNDRV_RAWMIDI_LFLG_INPUT, &msynth->input_rfile)) < 0) { | 186 | if ((err = snd_rawmidi_kernel_open(msynth->card, msynth->device, |
187 | msynth->subdevice, | ||
188 | SNDRV_RAWMIDI_LFLG_INPUT, | ||
189 | &msynth->input_rfile)) < 0) { | ||
187 | snd_printd("midi input open failed!!!\n"); | 190 | snd_printd("midi input open failed!!!\n"); |
188 | return err; | 191 | return err; |
189 | } | 192 | } |
@@ -221,7 +224,10 @@ static int midisynth_use(void *private_data, struct snd_seq_port_subscribe *info | |||
221 | struct snd_rawmidi_params params; | 224 | struct snd_rawmidi_params params; |
222 | 225 | ||
223 | /* open midi port */ | 226 | /* open midi port */ |
224 | if ((err = snd_rawmidi_kernel_open(msynth->card->number, msynth->device, msynth->subdevice, SNDRV_RAWMIDI_LFLG_OUTPUT, &msynth->output_rfile)) < 0) { | 227 | if ((err = snd_rawmidi_kernel_open(msynth->card, msynth->device, |
228 | msynth->subdevice, | ||
229 | SNDRV_RAWMIDI_LFLG_OUTPUT, | ||
230 | &msynth->output_rfile)) < 0) { | ||
225 | snd_printd("midi output open failed!!!\n"); | 231 | snd_printd("midi output open failed!!!\n"); |
226 | return err; | 232 | return err; |
227 | } | 233 | } |