[ALSA] ice1712 - Provides specified midi port names instead of defaults
authorAlan Horstmann <gineera@aspect135.co.uk>
Wed, 26 Apr 2006 16:13:59 +0000 (18:13 +0200)
committerJaroslav Kysela <perex@suse.cz>
Thu, 22 Jun 2006 19:32:47 +0000 (21:32 +0200)
Patch provides for the ice1712 card driver to overwrite the midi port name
string given by default in mpu401_uart, with one specified in
snd_ice1712_card_info.

Signed-off-by: Alan Horstmann <gineera@aspect135.co.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/ice1712/ews.c
sound/pci/ice1712/ice1712.c
sound/pci/ice1712/ice1712.h

index 2c529e7..2e1cf11 100644 (file)
@@ -1031,6 +1031,8 @@ struct snd_ice1712_card_info snd_ice1712_ews_cards[] __devinitdata = {
                .model = "dmx6fire",
                .chip_init = snd_ice1712_ews_init,
                .build_controls = snd_ice1712_ews_add_controls,
+               .mpu401_1_name = "MIDI-Front DMX6fire",
+               .mpu401_2_name = "Wavetable DMX6fire",
        },
        { } /* terminator */
 };
index c56793b..2821014 100644 (file)
@@ -2743,8 +2743,14 @@ static int __devinit snd_ice1712_probe(struct pci_dev *pci,
                        snd_card_free(card);
                        return err;
                }
-
-               if (ice->eeprom.data[ICE_EEP1_CODEC] & ICE1712_CFG_2xMPU401)
+               if (c->mpu401_1_name)
+                       /*  Prefered name available in card_info */
+                       snprintf(ice->rmidi[0]->name,
+                                sizeof(ice->rmidi[0]->name),
+                                "%s %d", c->mpu401_1_name, card->number);
+
+               if (ice->eeprom.data[ICE_EEP1_CODEC] & ICE1712_CFG_2xMPU401) {
+                       /*  2nd port used  */
                        if ((err = snd_mpu401_uart_new(card, 1, MPU401_HW_ICE1712,
                                                       ICEREG(ice, MPU2_CTRL), 1,
                                                       ice->irq, 0,
@@ -2752,6 +2758,13 @@ static int __devinit snd_ice1712_probe(struct pci_dev *pci,
                                snd_card_free(card);
                                return err;
                        }
+                       if (c->mpu401_2_name)
+                               /*  Prefered name available in card_info */
+                               snprintf(ice->rmidi[1]->name,
+                                        sizeof(ice->rmidi[1]->name),
+                                        "%s %d", c->mpu401_2_name,
+                                        card->number);
+               }
        }
 
        snd_ice1712_set_input_clock_source(ice, 0);
index 053f8e5..d477631 100644 (file)
@@ -495,6 +495,8 @@ struct snd_ice1712_card_info {
        int (*chip_init)(struct snd_ice1712 *);
        int (*build_controls)(struct snd_ice1712 *);
        unsigned int no_mpu401: 1;
+       const char *mpu401_1_name;
+       const char *mpu401_2_name;
        unsigned int eeprom_size;
        unsigned char *eeprom_data;
 };