Lines Matching defs:rt

24 	struct midi_runtime *rt = urb->context;
27 guard(spinlock_irqsave)(&rt->out_lock);
29 if (rt->out) {
30 ret = snd_rawmidi_transmit(rt->out, rt->out_buffer + 4,
33 rt->out_buffer[1] = ret + 2;
34 rt->out_buffer[3] = rt->out_serial++;
43 rt->out = NULL;
48 struct midi_runtime *rt, u8 *data, int length)
50 guard(spinlock_irqsave)(&rt->in_lock);
51 if (rt->in)
52 snd_rawmidi_receive(rt->in, data, length);
68 struct midi_runtime *rt = alsa_sub->rmidi->private_data;
69 struct urb *urb = &rt->out_urb;
72 guard(spinlock_irqsave)(&rt->out_lock);
74 if (rt->out) /* we are already transmitting so just return */
77 ret = snd_rawmidi_transmit(alsa_sub, rt->out_buffer + 4,
80 rt->out_buffer[1] = ret + 2;
81 rt->out_buffer[3] = rt->out_serial++;
90 rt->out = alsa_sub;
92 } else if (rt->out == alsa_sub)
93 rt->out = NULL;
98 struct midi_runtime *rt = alsa_sub->rmidi->private_data;
101 while (rt->out && retry++ < 100)
118 struct midi_runtime *rt = alsa_sub->rmidi->private_data;
120 guard(spinlock_irqsave)(&rt->in_lock);
122 rt->in = alsa_sub;
124 rt->in = NULL;
143 struct midi_runtime *rt = kzalloc(sizeof(struct midi_runtime),
147 if (!rt)
150 rt->out_buffer = kzalloc(MIDI_BUFSIZE, GFP_KERNEL);
151 if (!rt->out_buffer) {
152 kfree(rt);
156 rt->chip = chip;
157 rt->in_received = usb6fire_midi_in_received;
158 rt->out_buffer[0] = 0x80; /* 'send midi' command */
159 rt->out_buffer[1] = 0x00; /* size of data */
160 rt->out_buffer[2] = 0x00; /* always 0 */
161 spin_lock_init(&rt->in_lock);
162 spin_lock_init(&rt->out_lock);
164 comm_rt->init_urb(comm_rt, &rt->out_urb, rt->out_buffer, rt,
167 ret = snd_rawmidi_new(chip->card, "6FireUSB", 0, 1, 1, &rt->instance);
169 kfree(rt->out_buffer);
170 kfree(rt);
174 rt->instance->private_data = rt;
175 strscpy(rt->instance->name, "DMX6FireUSB MIDI");
176 rt->instance->info_flags = SNDRV_RAWMIDI_INFO_OUTPUT |
179 snd_rawmidi_set_ops(rt->instance, SNDRV_RAWMIDI_STREAM_OUTPUT,
181 snd_rawmidi_set_ops(rt->instance, SNDRV_RAWMIDI_STREAM_INPUT,
184 chip->midi = rt;
190 struct midi_runtime *rt = chip->midi;
192 if (rt)
193 usb_poison_urb(&rt->out_urb);
198 struct midi_runtime *rt = chip->midi;
200 kfree(rt->out_buffer);
201 kfree(rt);