fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / sound / pci / au88x0 / au88x0_mpu401.c
index 82aec91..c75d368 100644 (file)
@@ -70,9 +70,6 @@ static int __devinit snd_vortex_midi(vortex_t * vortex)
        temp |= (MIDI_CLOCK_DIV << 8) | ((mode >> 24) & 0xff) << 4;
        hwwrite(vortex->mmio, VORTEX_CTRL2, temp);
        hwwrite(vortex->mmio, VORTEX_MIDI_CMD, MPU401_RESET);
-       /* Set some kind of mode */
-       if (mode)
-               hwwrite(vortex->mmio, VORTEX_MIDI_CMD, MPU401_ENTER_UART);
 
        /* Check if anything is OK. */
        temp = hwread(vortex->mmio, VORTEX_MIDI_DATA);
@@ -95,18 +92,22 @@ static int __devinit snd_vortex_midi(vortex_t * vortex)
                return temp;
        }
 #else
-       port = (unsigned long)(vortex->mmio + (VORTEX_MIDI_DATA >> 2));
+       port = (unsigned long)(vortex->mmio + VORTEX_MIDI_DATA);
        if ((temp =
             snd_mpu401_uart_new(vortex->card, 0, MPU401_HW_AUREAL, port,
-                                1, 0, 0, &rmidi)) != 0) {
+                                MPU401_INFO_INTEGRATED | MPU401_INFO_MMIO,
+                                0, 0, &rmidi)) != 0) {
                hwwrite(vortex->mmio, VORTEX_CTRL,
                        (hwread(vortex->mmio, VORTEX_CTRL) &
                         ~CTRL_MIDI_PORT) & ~CTRL_MIDI_EN);
                return temp;
        }
        mpu = rmidi->private_data;
-       mpu->cport = (unsigned long)(vortex->mmio + (VORTEX_MIDI_CMD >> 2));
+       mpu->cport = (unsigned long)(vortex->mmio + VORTEX_MIDI_CMD);
 #endif
+       /* Overwrite MIDI name */
+       snprintf(rmidi->name, sizeof(rmidi->name), "%s MIDI %d", CARD_NAME_SHORT , vortex->card->number);
+
        vortex->rmidi = rmidi;
        return 0;
 }