Lines Matching refs:urb
87 void (*output)(struct snd_usb_midi_out_endpoint *ep, struct urb *urb);
88 void (*output_packet)(struct urb*, uint8_t, uint8_t, uint8_t, uint8_t);
123 struct urb *urb;
128 int max_transfer; /* size of urb buffer */
155 struct urb *urbs[INPUT_URBS];
176 static int snd_usbmidi_submit_urb(struct urb *urb, gfp_t flags)
178 int err = usb_submit_urb(urb, flags);
180 dev_err(&urb->dev->dev, "usb_submit_urb: %d\n", err);
187 static int snd_usbmidi_urb_error(const struct urb *urb)
189 switch (urb->status) {
202 dev_err(&urb->dev->dev, "urb status %d\n", urb->status);
239 static void snd_usbmidi_in_urb_complete(struct urb *urb)
241 struct snd_usb_midi_in_endpoint *ep = urb->context;
243 if (urb->status == 0) {
244 dump_urb("received", urb->transfer_buffer, urb->actual_length);
245 ep->umidi->usb_protocol_ops->input(ep, urb->transfer_buffer,
246 urb->actual_length);
248 int err = snd_usbmidi_urb_error(urb);
259 urb->dev = ep->umidi->dev;
260 snd_usbmidi_submit_urb(urb, GFP_ATOMIC);
263 static void snd_usbmidi_out_urb_complete(struct urb *urb)
265 struct out_urb_context *context = urb->context;
278 if (urb->status < 0) {
279 int err = snd_usbmidi_urb_error(urb);
297 struct urb *urb;
309 urb = ep->urbs[urb_index].urb;
310 urb->transfer_buffer_length = 0;
311 ep->umidi->usb_protocol_ops->output(ep, urb);
312 if (urb->transfer_buffer_length == 0)
315 dump_urb("sending", urb->transfer_buffer,
316 urb->transfer_buffer_length);
317 urb->dev = ep->umidi->dev;
318 if (snd_usbmidi_submit_urb(urb, GFP_ATOMIC) < 0)
376 if (ep->urbs[0].urb)
377 err = usb_bulk_msg(ep->umidi->dev, ep->urbs[0].urb->pipe,
507 static void snd_usbmidi_output_standard_packet(struct urb *urb, uint8_t p0,
513 (uint8_t *)urb->transfer_buffer + urb->transfer_buffer_length;
518 urb->transfer_buffer_length += 4;
524 static void snd_usbmidi_output_midiman_packet(struct urb *urb, uint8_t p0,
530 (uint8_t *)urb->transfer_buffer + urb->transfer_buffer_length;
535 urb->transfer_buffer_length += 4;
542 uint8_t b, struct urb *urb)
545 void (*output_packet)(struct urb*, uint8_t, uint8_t, uint8_t, uint8_t) =
549 output_packet(urb, p0 | 0x0f, b, 0, 0);
570 output_packet(urb, p0 | 0x05, 0xf6, 0, 0);
576 output_packet(urb, p0 | 0x05, 0xf7, 0, 0);
579 output_packet(urb, p0 | 0x06, port->data[0],
583 output_packet(urb, p0 | 0x07, port->data[0],
605 output_packet(urb, p0, port->data[0], b, 0);
619 output_packet(urb, p0, port->data[0], port->data[1], b);
630 output_packet(urb, p0 | 0x04, port->data[0],
639 struct urb *urb)
648 while (urb->transfer_buffer_length + 3 < ep->max_transfer) {
654 snd_usbmidi_transmit_byte(port, b, urb);
723 struct urb *urb)
733 msg = urb->transfer_buffer + urb->transfer_buffer_length;
737 while (urb->transfer_buffer_length < buf_end) {
770 urb->transfer_buffer_length += count + 1;
804 struct urb *urb)
811 transfer_buffer = urb->transfer_buffer;
821 urb->transfer_buffer_length = 2 + count;
840 struct urb *urb)
847 urb->transfer_buffer,
853 urb->transfer_buffer_length = count;
890 struct urb *urb)
906 urb->transfer_buffer,
913 memset(urb->transfer_buffer + count, 0xFD, ep->max_transfer - count);
914 urb->transfer_buffer_length = ep->max_transfer;
1004 struct urb *urb)
1007 uint8_t *buf = urb->transfer_buffer;
1047 urb->transfer_buffer_length = ep->max_transfer - buf_free;
1236 static void free_urb_and_buffer(struct snd_usb_midi *umidi, struct urb *urb,
1240 urb->transfer_buffer, urb->transfer_dma);
1241 usb_free_urb(urb);
1333 if (ep->urbs[i].urb) {
1334 free_urb_and_buffer(ep->umidi, ep->urbs[i].urb,
1336 ep->urbs[i].urb = NULL;
1366 ep->urbs[i].urb = usb_alloc_urb(0, GFP_KERNEL);
1367 if (!ep->urbs[i].urb) {
1405 &ep->urbs[i].urb->transfer_dma);
1411 usb_fill_int_urb(ep->urbs[i].urb, umidi->dev,
1416 usb_fill_bulk_urb(ep->urbs[i].urb, umidi->dev,
1420 err = usb_urb_ep_type_check(ep->urbs[i].urb);
1426 ep->urbs[i].urb->transfer_flags = URB_NO_TRANSFER_DMA_MAP;
1496 usb_kill_urb(ep->out->urbs[j].urb);
2402 struct urb *urb = ep->urbs[i];
2404 if (!atomic_read(&urb->use_count)) {
2405 urb->dev = ep->umidi->dev;
2406 snd_usbmidi_submit_urb(urb, GFP_ATOMIC);