linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / sound / pci / emu10k1 / emu10k1x.c
index bda8bdf..1107c8e 100644 (file)
@@ -33,7 +33,6 @@
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/pci.h>
-#include <linux/dma-mapping.h>
 #include <linux/slab.h>
 #include <linux/moduleparam.h>
 #include <sound/core.h>
@@ -894,24 +893,24 @@ static int __devinit snd_emu10k1x_create(struct snd_card *card,
        static struct snd_device_ops ops = {
                .dev_free = snd_emu10k1x_dev_free,
        };
-
+  
        *rchip = NULL;
-
+  
        if ((err = pci_enable_device(pci)) < 0)
                return err;
-       if (pci_set_dma_mask(pci, DMA_28BIT_MASK) < 0 ||
-           pci_set_consistent_dma_mask(pci, DMA_28BIT_MASK) < 0) {
+       if (pci_set_dma_mask(pci, 0x0fffffff) < 0 ||
+           pci_set_consistent_dma_mask(pci, 0x0fffffff) < 0) {
                snd_printk(KERN_ERR "error to set 28bit mask DMA\n");
                pci_disable_device(pci);
                return -ENXIO;
        }
-
+  
        chip = kzalloc(sizeof(*chip), GFP_KERNEL);
        if (chip == NULL) {
                pci_disable_device(pci);
                return -ENOMEM;
        }
-
+  
        chip->card = card;
        chip->pci = pci;
        chip->irq = -1;
@@ -928,7 +927,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 +1054,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 +1286,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 +1312,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 +1332,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 +1353,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 +1366,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 +1375,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 +1387,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 +1396,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)