Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / sound / pci / emu10k1 / emu10k1x.c
index bda8bdf..d51290c 100644 (file)
@@ -928,7 +928,7 @@ static int __devinit snd_emu10k1x_create(struct snd_card *card,
        }
 
        if (request_irq(pci->irq, snd_emu10k1x_interrupt,
-                       IRQF_DISABLED|IRQF_SHARED, "EMU10K1X",
+                       SA_INTERRUPT|SA_SHIRQ, "EMU10K1X",
                        (void *)chip)) {
                snd_printk(KERN_ERR "emu10k1x: cannot grab irq %d\n", pci->irq);
                snd_emu10k1x_free(chip);
@@ -1055,7 +1055,8 @@ static int __devinit snd_emu10k1x_proc_init(struct emu10k1x * emu)
        struct snd_info_entry *entry;
        
        if(! snd_card_proc_new(emu->card, "emu10k1x_regs", &entry)) {
-               snd_info_set_text_ops(entry, emu, snd_emu10k1x_proc_reg_read);
+               snd_info_set_text_ops(entry, emu, 1024, snd_emu10k1x_proc_reg_read);
+               entry->c.text.write_size = 64;
                entry->c.text.write = snd_emu10k1x_proc_reg_write;
                entry->mode |= S_IWUSR;
                entry->private_data = emu;
@@ -1286,7 +1287,7 @@ static void snd_emu10k1x_midi_interrupt(struct emu10k1x *emu, unsigned int statu
        do_emu10k1x_midi_interrupt(emu, &emu->midi, status);
 }
 
-static int snd_emu10k1x_midi_cmd(struct emu10k1x * emu,
+static void snd_emu10k1x_midi_cmd(struct emu10k1x * emu,
                                  struct emu10k1x_midi *midi, unsigned char cmd, int ack)
 {
        unsigned long flags;
@@ -1312,14 +1313,11 @@ static int snd_emu10k1x_midi_cmd(struct emu10k1x * emu,
                ok = 1;
        }
        spin_unlock_irqrestore(&midi->input_lock, flags);
-       if (!ok) {
+       if (!ok)
                snd_printk(KERN_ERR "midi_cmd: 0x%x failed at 0x%lx (status = 0x%x, data = 0x%x)!!!\n",
                           cmd, emu->port,
                           mpu401_read_stat(emu, midi),
                           mpu401_read_data(emu, midi));
-               return 1;
-       }
-       return 0;
 }
 
 static int snd_emu10k1x_midi_input_open(struct snd_rawmidi_substream *substream)
@@ -1335,17 +1333,12 @@ static int snd_emu10k1x_midi_input_open(struct snd_rawmidi_substream *substream)
        midi->substream_input = substream;
        if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_OUTPUT)) {
                spin_unlock_irqrestore(&midi->open_lock, flags);
-               if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 1))
-                       goto error_out;
-               if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_ENTER_UART, 1))
-                       goto error_out;
+               snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 1);
+               snd_emu10k1x_midi_cmd(emu, midi, MPU401_ENTER_UART, 1);
        } else {
                spin_unlock_irqrestore(&midi->open_lock, flags);
        }
        return 0;
-
-error_out:
-       return -EIO;
 }
 
 static int snd_emu10k1x_midi_output_open(struct snd_rawmidi_substream *substream)
@@ -1361,17 +1354,12 @@ static int snd_emu10k1x_midi_output_open(struct snd_rawmidi_substream *substream
        midi->substream_output = substream;
        if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_INPUT)) {
                spin_unlock_irqrestore(&midi->open_lock, flags);
-               if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 1))
-                       goto error_out;
-               if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_ENTER_UART, 1))
-                       goto error_out;
+               snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 1);
+               snd_emu10k1x_midi_cmd(emu, midi, MPU401_ENTER_UART, 1);
        } else {
                spin_unlock_irqrestore(&midi->open_lock, flags);
        }
        return 0;
-
-error_out:
-       return -EIO;
 }
 
 static int snd_emu10k1x_midi_input_close(struct snd_rawmidi_substream *substream)
@@ -1379,7 +1367,6 @@ static int snd_emu10k1x_midi_input_close(struct snd_rawmidi_substream *substream
        struct emu10k1x *emu;
        struct emu10k1x_midi *midi = substream->rmidi->private_data;
        unsigned long flags;
-       int err = 0;
 
        emu = midi->emu;
        snd_assert(emu, return -ENXIO);
@@ -1389,11 +1376,11 @@ static int snd_emu10k1x_midi_input_close(struct snd_rawmidi_substream *substream
        midi->substream_input = NULL;
        if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_OUTPUT)) {
                spin_unlock_irqrestore(&midi->open_lock, flags);
-               err = snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 0);
+               snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 0);
        } else {
                spin_unlock_irqrestore(&midi->open_lock, flags);
        }
-       return err;
+       return 0;
 }
 
 static int snd_emu10k1x_midi_output_close(struct snd_rawmidi_substream *substream)
@@ -1401,7 +1388,6 @@ static int snd_emu10k1x_midi_output_close(struct snd_rawmidi_substream *substrea
        struct emu10k1x *emu;
        struct emu10k1x_midi *midi = substream->rmidi->private_data;
        unsigned long flags;
-       int err = 0;
 
        emu = midi->emu;
        snd_assert(emu, return -ENXIO);
@@ -1411,11 +1397,11 @@ static int snd_emu10k1x_midi_output_close(struct snd_rawmidi_substream *substrea
        midi->substream_output = NULL;
        if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_INPUT)) {
                spin_unlock_irqrestore(&midi->open_lock, flags);
-               err = snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 0);
+               snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 0);
        } else {
                spin_unlock_irqrestore(&midi->open_lock, flags);
        }
-       return err;
+       return 0;
 }
 
 static void snd_emu10k1x_midi_input_trigger(struct snd_rawmidi_substream *substream, int up)
@@ -1609,7 +1595,7 @@ static void __devexit snd_emu10k1x_remove(struct pci_dev *pci)
 }
 
 // PCI IDs
-static struct pci_device_id snd_emu10k1x_ids[] = {
+static struct pci_device_id snd_emu10k1x_ids[] __devinitdata = {
        { 0x1102, 0x0006, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },    /* Dell OEM version (EMU10K1) */
        { 0, }
 };