22 static void usb6fire_midi_out_handler(
struct urb *
urb)
36 urb->transfer_buffer_length = ret + 4;
41 "submit failed: %d\n", ret);
45 spin_unlock_irqrestore(&rt->
out_lock, flags);
48 static void usb6fire_midi_in_received(
56 spin_unlock_irqrestore(&rt->
in_lock, flags);
69 static void usb6fire_midi_out_trigger(
80 spin_unlock_irqrestore(&rt->
out_lock, flags);
89 urb->transfer_buffer_length = ret + 4;
94 "submit failed: %d\n", ret);
98 }
else if (rt->
out == alsa_sub)
100 spin_unlock_irqrestore(&rt->
out_lock, flags);
108 while (rt->
out && retry++ < 100)
122 static void usb6fire_midi_in_trigger(
133 spin_unlock_irqrestore(&rt->
in_lock, flags);
137 .open = usb6fire_midi_out_open,
138 .close = usb6fire_midi_out_close,
139 .trigger = usb6fire_midi_out_trigger,
140 .drain = usb6fire_midi_out_drain
144 .open = usb6fire_midi_in_open,
145 .close = usb6fire_midi_in_close,
146 .trigger = usb6fire_midi_in_trigger
168 usb6fire_midi_out_handler);