Lines Matching refs:ff
18 struct snd_ff *ff = substream->rmidi->private_data; in midi_playback_open() local
21 ff->on_sysex[substream->number] = 0; in midi_playback_open()
22 ff->rx_midi_error[substream->number] = false; in midi_playback_open()
24 WRITE_ONCE(ff->rx_midi_substreams[substream->number], substream); in midi_playback_open()
37 struct snd_ff *ff = substream->rmidi->private_data; in midi_playback_close() local
39 cancel_work_sync(&ff->rx_midi_work[substream->number]); in midi_playback_close()
40 WRITE_ONCE(ff->rx_midi_substreams[substream->number], NULL); in midi_playback_close()
48 struct snd_ff *ff = substream->rmidi->private_data; in midi_capture_trigger() local
51 spin_lock_irqsave(&ff->lock, flags); in midi_capture_trigger()
54 WRITE_ONCE(ff->tx_midi_substreams[substream->number], in midi_capture_trigger()
57 WRITE_ONCE(ff->tx_midi_substreams[substream->number], NULL); in midi_capture_trigger()
59 spin_unlock_irqrestore(&ff->lock, flags); in midi_capture_trigger()
65 struct snd_ff *ff = substream->rmidi->private_data; in midi_playback_trigger() local
68 spin_lock_irqsave(&ff->lock, flags); in midi_playback_trigger()
70 if (up || !ff->rx_midi_error[substream->number]) in midi_playback_trigger()
71 schedule_work(&ff->rx_midi_work[substream->number]); in midi_playback_trigger()
73 spin_unlock_irqrestore(&ff->lock, flags); in midi_playback_trigger()
87 int snd_ff_create_midi_devices(struct snd_ff *ff) in snd_ff_create_midi_devices() argument
103 err = snd_rawmidi_new(ff->card, ff->card->driver, 0, in snd_ff_create_midi_devices()
104 ff->spec->midi_out_ports, ff->spec->midi_in_ports, in snd_ff_create_midi_devices()
110 "%s MIDI", ff->card->shortname); in snd_ff_create_midi_devices()
111 rmidi->private_data = ff; in snd_ff_create_midi_devices()
117 set_midi_substream_names(stream, ff->card->shortname); in snd_ff_create_midi_devices()
123 set_midi_substream_names(stream, ff->card->shortname); in snd_ff_create_midi_devices()