Lines Matching refs:urb
220 void usbip_dump_urb(struct urb *urb)
224 if (!urb) {
225 pr_debug("urb: null pointer!!\n");
229 if (!urb->dev) {
230 pr_debug("urb->dev: null pointer!!\n");
234 dev = &urb->dev->dev;
236 usbip_dump_usb_device(urb->dev);
238 dev_dbg(dev, " pipe :%08x ", urb->pipe);
240 usbip_dump_pipe(urb->pipe);
242 dev_dbg(dev, " status :%d\n", urb->status);
243 dev_dbg(dev, " transfer_flags :%08X\n", urb->transfer_flags);
245 urb->transfer_buffer_length);
246 dev_dbg(dev, " actual_length :%d\n", urb->actual_length);
248 if (urb->setup_packet && usb_pipetype(urb->pipe) == PIPE_CONTROL)
250 (struct usb_ctrlrequest *)urb->setup_packet);
252 dev_dbg(dev, " start_frame :%d\n", urb->start_frame);
253 dev_dbg(dev, " number_of_packets :%d\n", urb->number_of_packets);
254 dev_dbg(dev, " interval :%d\n", urb->interval);
255 dev_dbg(dev, " error_count :%d\n", urb->error_count);
370 * urb and unpack pdu to an urb.
433 static void usbip_pack_cmd_submit(struct usbip_header *pdu, struct urb *urb,
443 /* map after tweaking the urb flags */
444 spdu->transfer_flags = urb_to_usbip(tweak_transfer_flags(urb->transfer_flags));
445 spdu->transfer_buffer_length = urb->transfer_buffer_length;
446 spdu->start_frame = urb->start_frame;
447 spdu->number_of_packets = urb->number_of_packets;
448 spdu->interval = urb->interval;
450 urb->transfer_flags = usbip_to_urb(spdu->transfer_flags);
451 urb->transfer_buffer_length = spdu->transfer_buffer_length;
452 urb->start_frame = spdu->start_frame;
453 urb->number_of_packets = spdu->number_of_packets;
454 urb->interval = spdu->interval;
458 static void usbip_pack_ret_submit(struct usbip_header *pdu, struct urb *urb,
464 rpdu->status = urb->status;
465 rpdu->actual_length = urb->actual_length;
466 rpdu->start_frame = urb->start_frame;
467 rpdu->number_of_packets = urb->number_of_packets;
468 rpdu->error_count = urb->error_count;
470 urb->status = rpdu->status;
471 urb->actual_length = rpdu->actual_length;
472 urb->start_frame = rpdu->start_frame;
473 urb->number_of_packets = rpdu->number_of_packets;
474 urb->error_count = rpdu->error_count;
478 void usbip_pack_pdu(struct usbip_header *pdu, struct urb *urb, int cmd,
483 usbip_pack_cmd_submit(pdu, urb, pack);
486 usbip_pack_ret_submit(pdu, urb, pack);
637 usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen)
640 int np = urb->number_of_packets;
649 usbip_pack_iso(&iso[i], &urb->iso_frame_desc[i], 1);
659 /* some members of urb must be substituted before. */
660 int usbip_recv_iso(struct usbip_device *ud, struct urb *urb)
664 int np = urb->number_of_packets;
670 if (!usb_pipeisoc(urb->pipe))
683 dev_err(&urb->dev->dev, "recv iso_frame_descriptor, %d\n",
698 usbip_pack_iso(&iso[i], &urb->iso_frame_desc[i], 0);
699 total_length += urb->iso_frame_desc[i].actual_length;
704 if (total_length != urb->actual_length) {
705 dev_err(&urb->dev->dev,
707 total_length, urb->actual_length);
725 * buffer and iso packets need to be stored and be in propeper endian in urb
728 void usbip_pad_iso(struct usbip_device *ud, struct urb *urb)
730 int np = urb->number_of_packets;
732 int actualoffset = urb->actual_length;
734 if (!usb_pipeisoc(urb->pipe))
738 if (np == 0 || urb->actual_length == 0)
745 if (urb->actual_length == urb->transfer_buffer_length)
753 actualoffset -= urb->iso_frame_desc[i].actual_length;
754 memmove(urb->transfer_buffer + urb->iso_frame_desc[i].offset,
755 urb->transfer_buffer + actualoffset,
756 urb->iso_frame_desc[i].actual_length);
761 /* some members of urb must be substituted before. */
762 int usbip_recv_xbuff(struct usbip_device *ud, struct urb *urb)
772 /* the direction of urb must be OUT. */
773 if (usb_pipein(urb->pipe))
776 size = urb->transfer_buffer_length;
778 /* the direction of urb must be IN. */
779 if (usb_pipeout(urb->pipe))
782 size = urb->actual_length;
789 if (size > urb->transfer_buffer_length)
793 if (urb->num_sgs) {
795 for_each_sg(urb->sg, sg, urb->num_sgs, i) {
819 ret = usbip_recv(ud->tcp_socket, urb->transfer_buffer, size);
827 dev_err(&urb->dev->dev, "recv xbuf, %d\n", ret);