[ALSA] dynamic minors (5/6): reduce maximum number of MIDI devices per card
authorClemens Ladisch <clemens@ladisch.de>
Sun, 20 Nov 2005 13:08:28 +0000 (14:08 +0100)
committerJaroslav Kysela <perex@suse.cz>
Tue, 3 Jan 2006 11:29:20 +0000 (12:29 +0100)
Modules: ALSA sequencer,Generic drivers

To allow increasing the maximum number of sound cards, we have to limit
the number of sequencer clients per card because client numbers are
still allocated statically.

Reducing the number of clients to four limits the number of sequencer
MIDI ports to 1024 per card.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
sound/core/seq/seq_clientmgr.c
sound/drivers/virmidi.c

index c8bd37ee8375d7241f00b62e9618fa5fd848b915..95bd5ae92b9267e912b3b3b6719e7acc9ab517fc 100644 (file)
@@ -157,7 +157,7 @@ struct snd_seq_client *snd_seq_client_use_ptr(int clientid)
                                }
                        }
                } else if (clientid >= 64 && clientid < 128) {
-                       int card = (clientid - 64) / 8;
+                       int card = (clientid - 64) / 4;
                        if (card < snd_ecards_limit) {
                                if (! card_requested[card]) {
                                        card_requested[card] = 1;
@@ -2208,12 +2208,12 @@ int snd_seq_create_kernel_client(struct snd_card *card, int client_index,
 
        if (callback == NULL)
                return -EINVAL;
-       if (card && client_index > 7)
+       if (card && client_index > 3)
                return -EINVAL;
        if (card == NULL && client_index > 63)
                return -EINVAL;
        if (card)
-               client_index += 64 + (card->number << 3);
+               client_index += 64 + (card->number << 2);
 
        if (down_interruptible(&register_mutex))
                return -ERESTARTSYS;
index a7b9241fff3c6c710813cdab862c558566de494b..9f36a6472478a3693150856b243d3ef834d9cfb7 100644 (file)
@@ -61,7 +61,7 @@ MODULE_DESCRIPTION("Dummy soundcard for virtual rawmidi devices");
 MODULE_LICENSE("GPL");
 MODULE_SUPPORTED_DEVICE("{{ALSA,Virtual rawmidi device}}");
 
-#define MAX_MIDI_DEVICES       8
+#define MAX_MIDI_DEVICES       4
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;     /* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;      /* ID for this card */
@@ -75,7 +75,7 @@ MODULE_PARM_DESC(id, "ID string for virmidi soundcard.");
 module_param_array(enable, bool, NULL, 0444);
 MODULE_PARM_DESC(enable, "Enable this soundcard.");
 module_param_array(midi_devs, int, NULL, 0444);
-MODULE_PARM_DESC(midi_devs, "MIDI devices # (1-8)");
+MODULE_PARM_DESC(midi_devs, "MIDI devices # (1-4)");
 
 struct snd_card_virmidi {
        struct snd_card *card;