--- hdsp.c.old 2005-01-28 17:42:27.000000000 +0100 +++ hdsp.c 2005-01-28 18:15:35.000000000 +0100 @@ -3670,7 +3670,7 @@ snd_hdsp_midi_input_read (&hdsp->midi[0]); } } - if (midi1 && midi1status) { + if (hdsp->io_type != Multiface && hdsp->io_type != H9632 && midi1 && midi1status) { if (hdsp->use_midi_tasklet) { /* we disable interrupts for this input until processing is done */ hdsp->control_register &= ~HDSP_Midi1InterruptEnable; @@ -4827,10 +4827,11 @@ return err; } - - if ((err = snd_hdsp_create_midi(card, hdsp, 1)) < 0) { - snd_printk("Hammerfall-DSP: Error creating second midi interface\n"); - return err; + if (hdsp->io_type == Digiface || hdsp->io_type == H9652) { + if ((err = snd_hdsp_create_midi(card, hdsp, 1)) < 0) { + snd_printk("Hammerfall-DSP: Error creating second midi interface\n"); + return err; + } } if ((err = snd_hdsp_create_controls(card, hdsp)) < 0) { @@ -4967,6 +4968,8 @@ hdsp->midi[1].input = NULL; hdsp->midi[0].output = NULL; hdsp->midi[1].output = NULL; + hdsp->midi[0].pending = 0; + hdsp->midi[1].pending = 0; spin_lock_init(&hdsp->midi[0].lock); spin_lock_init(&hdsp->midi[1].lock); hdsp->iobase = NULL;