void snd_gf1_timers_done(snd_gus_card_t * gus) { snd_gf1_set_default_handlers(gus, SNDRV_GF1_HANDLER_TIMER1 | SNDRV_GF1_HANDLER_TIMER2); if (gus->gf1.timer1) { snd_device_free(gus->card, gus->gf1.timer1); gus->gf1.timer1 = NULL; } if (gus->gf1.timer2) { snd_device_free(gus->card, gus->gf1.timer2); gus->gf1.timer2 = NULL; } }
static int snd_gf1_uart_input_close(snd_rawmidi_substream_t * substream) { unsigned long flags; snd_gus_card_t *gus; gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return -ENXIO); spin_lock_irqsave(&gus->uart_cmd_lock, flags); if (gus->gf1.interrupt_handler_midi_out != snd_gf1_interrupt_midi_out) snd_gf1_uart_reset(gus, 1); snd_gf1_set_default_handlers(gus, SNDRV_GF1_HANDLER_MIDI_IN); gus->midi_substream_input = NULL; spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); return 0; }
static int snd_gf1_uart_output_close(struct snd_rawmidi_substream *substream) { unsigned long flags; struct snd_gus_card *gus; gus = substream->rmidi->private_data; spin_lock_irqsave(&gus->uart_cmd_lock, flags); if (gus->gf1.interrupt_handler_midi_in != snd_gf1_interrupt_midi_in) snd_gf1_uart_reset(gus, 1); snd_gf1_set_default_handlers(gus, SNDRV_GF1_HANDLER_MIDI_OUT); gus->midi_substream_output = NULL; spin_unlock_irqrestore(&gus->uart_cmd_lock, flags); return 0; }