vmidi 107 include/sound/emux_synth.h struct snd_rawmidi **vmidi; vmidi 44 sound/core/seq/seq_virmidi.c static void snd_virmidi_init_event(struct snd_virmidi *vmidi, vmidi 48 sound/core/seq/seq_virmidi.c ev->source.port = vmidi->port; vmidi 49 sound/core/seq/seq_virmidi.c switch (vmidi->seq_mode) { vmidi 55 sound/core/seq/seq_virmidi.c ev->dest.client = vmidi->client; vmidi 56 sound/core/seq/seq_virmidi.c ev->dest.port = vmidi->port; vmidi 69 sound/core/seq/seq_virmidi.c struct snd_virmidi *vmidi; vmidi 77 sound/core/seq/seq_virmidi.c list_for_each_entry(vmidi, &rdev->filelist, list) { vmidi 78 sound/core/seq/seq_virmidi.c if (!READ_ONCE(vmidi->trigger)) vmidi 83 sound/core/seq/seq_virmidi.c snd_seq_dump_var_event(ev, (snd_seq_dump_func_t)snd_rawmidi_receive, vmidi->substream); vmidi 84 sound/core/seq/seq_virmidi.c snd_midi_event_reset_decode(vmidi->parser); vmidi 86 sound/core/seq/seq_virmidi.c len = snd_midi_event_decode(vmidi->parser, msg, sizeof(msg), ev); vmidi 88 sound/core/seq/seq_virmidi.c snd_rawmidi_receive(vmidi->substream, msg, len); vmidi 118 sound/core/seq/seq_virmidi.c struct snd_virmidi *vmidi = substream->runtime->private_data; vmidi 120 sound/core/seq/seq_virmidi.c WRITE_ONCE(vmidi->trigger, !!up); vmidi 128 sound/core/seq/seq_virmidi.c struct snd_virmidi *vmidi; vmidi 133 sound/core/seq/seq_virmidi.c vmidi = container_of(work, struct snd_virmidi, output_work); vmidi 134 sound/core/seq/seq_virmidi.c substream = vmidi->substream; vmidi 137 sound/core/seq/seq_virmidi.c if (vmidi->seq_mode == SNDRV_VIRMIDI_SEQ_DISPATCH && vmidi 138 sound/core/seq/seq_virmidi.c !(vmidi->rdev->flags & SNDRV_VIRMIDI_SUBSCRIBE)) { vmidi 143 sound/core/seq/seq_virmidi.c while (READ_ONCE(vmidi->trigger)) { vmidi 146 sound/core/seq/seq_virmidi.c if (!snd_midi_event_encode_byte(vmidi->parser, input, vmidi 147 sound/core/seq/seq_virmidi.c &vmidi->event)) vmidi 149 sound/core/seq/seq_virmidi.c if (vmidi->event.type != SNDRV_SEQ_EVENT_NONE) { vmidi 150 sound/core/seq/seq_virmidi.c ret = snd_seq_kernel_client_dispatch(vmidi->client, vmidi 151 sound/core/seq/seq_virmidi.c &vmidi->event, vmidi 153 sound/core/seq/seq_virmidi.c vmidi->event.type = SNDRV_SEQ_EVENT_NONE; vmidi 167 sound/core/seq/seq_virmidi.c struct snd_virmidi *vmidi = substream->runtime->private_data; vmidi 169 sound/core/seq/seq_virmidi.c WRITE_ONCE(vmidi->trigger, !!up); vmidi 171 sound/core/seq/seq_virmidi.c queue_work(system_highpri_wq, &vmidi->output_work); vmidi 181 sound/core/seq/seq_virmidi.c struct snd_virmidi *vmidi; vmidi 183 sound/core/seq/seq_virmidi.c vmidi = kzalloc(sizeof(*vmidi), GFP_KERNEL); vmidi 184 sound/core/seq/seq_virmidi.c if (vmidi == NULL) vmidi 186 sound/core/seq/seq_virmidi.c vmidi->substream = substream; vmidi 187 sound/core/seq/seq_virmidi.c if (snd_midi_event_new(0, &vmidi->parser) < 0) { vmidi 188 sound/core/seq/seq_virmidi.c kfree(vmidi); vmidi 191 sound/core/seq/seq_virmidi.c vmidi->seq_mode = rdev->seq_mode; vmidi 192 sound/core/seq/seq_virmidi.c vmidi->client = rdev->client; vmidi 193 sound/core/seq/seq_virmidi.c vmidi->port = rdev->port; vmidi 194 sound/core/seq/seq_virmidi.c runtime->private_data = vmidi; vmidi 197 sound/core/seq/seq_virmidi.c list_add_tail(&vmidi->list, &rdev->filelist); vmidi 200 sound/core/seq/seq_virmidi.c vmidi->rdev = rdev; vmidi 211 sound/core/seq/seq_virmidi.c struct snd_virmidi *vmidi; vmidi 213 sound/core/seq/seq_virmidi.c vmidi = kzalloc(sizeof(*vmidi), GFP_KERNEL); vmidi 214 sound/core/seq/seq_virmidi.c if (vmidi == NULL) vmidi 216 sound/core/seq/seq_virmidi.c vmidi->substream = substream; vmidi 217 sound/core/seq/seq_virmidi.c if (snd_midi_event_new(MAX_MIDI_EVENT_BUF, &vmidi->parser) < 0) { vmidi 218 sound/core/seq/seq_virmidi.c kfree(vmidi); vmidi 221 sound/core/seq/seq_virmidi.c vmidi->seq_mode = rdev->seq_mode; vmidi 222 sound/core/seq/seq_virmidi.c vmidi->client = rdev->client; vmidi 223 sound/core/seq/seq_virmidi.c vmidi->port = rdev->port; vmidi 224 sound/core/seq/seq_virmidi.c snd_virmidi_init_event(vmidi, &vmidi->event); vmidi 225 sound/core/seq/seq_virmidi.c vmidi->rdev = rdev; vmidi 226 sound/core/seq/seq_virmidi.c INIT_WORK(&vmidi->output_work, snd_vmidi_output_work); vmidi 227 sound/core/seq/seq_virmidi.c runtime->private_data = vmidi; vmidi 237 sound/core/seq/seq_virmidi.c struct snd_virmidi *vmidi = substream->runtime->private_data; vmidi 241 sound/core/seq/seq_virmidi.c list_del(&vmidi->list); vmidi 244 sound/core/seq/seq_virmidi.c snd_midi_event_free(vmidi->parser); vmidi 246 sound/core/seq/seq_virmidi.c kfree(vmidi); vmidi 255 sound/core/seq/seq_virmidi.c struct snd_virmidi *vmidi = substream->runtime->private_data; vmidi 257 sound/core/seq/seq_virmidi.c WRITE_ONCE(vmidi->trigger, false); /* to be sure */ vmidi 258 sound/core/seq/seq_virmidi.c cancel_work_sync(&vmidi->output_work); vmidi 259 sound/core/seq/seq_virmidi.c snd_midi_event_free(vmidi->parser); vmidi 261 sound/core/seq/seq_virmidi.c kfree(vmidi); vmidi 75 sound/drivers/virmidi.c struct snd_card_virmidi *vmidi; vmidi 83 sound/drivers/virmidi.c vmidi = card->private_data; vmidi 84 sound/drivers/virmidi.c vmidi->card = card; vmidi 100 sound/drivers/virmidi.c vmidi->midi[idx] = rmidi; vmidi 356 sound/synth/emux/emux_seq.c emu->vmidi = NULL; vmidi 360 sound/synth/emux/emux_seq.c emu->vmidi = kcalloc(emu->midi_ports, sizeof(*emu->vmidi), GFP_KERNEL); vmidi 361 sound/synth/emux/emux_seq.c if (!emu->vmidi) vmidi 378 sound/synth/emux/emux_seq.c emu->vmidi[i] = rmidi; vmidi 393 sound/synth/emux/emux_seq.c if (!emu->vmidi) vmidi 397 sound/synth/emux/emux_seq.c if (emu->vmidi[i]) vmidi 398 sound/synth/emux/emux_seq.c snd_device_free(emu->card, emu->vmidi[i]); vmidi 400 sound/synth/emux/emux_seq.c kfree(emu->vmidi); vmidi 401 sound/synth/emux/emux_seq.c emu->vmidi = NULL;