X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sound%2Fpci%2Femu10k1%2Femu10k1x.c;h=d51290c18167be855d80521d6a03840e129eebbd;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=bda8bdf59935b367988aa692c14c69951fbe7916;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c index bda8bdf59..d51290c18 100644 --- a/sound/pci/emu10k1/emu10k1x.c +++ b/sound/pci/emu10k1/emu10k1x.c @@ -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, } };