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);
352 static void usbip_pack_cmd_submit(struct usbip_header *pdu, struct urb *urb,
363 tweak_transfer_flags(urb->transfer_flags);
364 spdu->transfer_buffer_length = urb->transfer_buffer_length;
365 spdu->start_frame = urb->start_frame;
366 spdu->number_of_packets = urb->number_of_packets;
367 spdu->interval = urb->interval;
369 urb->transfer_flags = spdu->transfer_flags;
370 urb->transfer_buffer_length = spdu->transfer_buffer_length;
371 urb->start_frame = spdu->start_frame;
372 urb->number_of_packets = spdu->number_of_packets;
373 urb->interval = spdu->interval;
377 static void usbip_pack_ret_submit(struct usbip_header *pdu, struct urb *urb,
383 rpdu->status = urb->status;
384 rpdu->actual_length = urb->actual_length;
385 rpdu->start_frame = urb->start_frame;
386 rpdu->number_of_packets = urb->number_of_packets;
387 rpdu->error_count = urb->error_count;
389 urb->status = rpdu->status;
390 urb->actual_length = rpdu->actual_length;
391 urb->start_frame = rpdu->start_frame;
392 urb->number_of_packets = rpdu->number_of_packets;
393 urb->error_count = rpdu->error_count;
397 void usbip_pack_pdu(struct usbip_header *pdu, struct urb *urb, int cmd,
402 usbip_pack_cmd_submit(pdu, urb, pack);
405 usbip_pack_ret_submit(pdu, urb, pack);
556 usbip_alloc_iso_desc_pdu(struct urb *urb, ssize_t *bufflen)
559 int np = urb->number_of_packets;
568 usbip_pack_iso(&iso[i], &urb->iso_frame_desc[i], 1);
578 /* some members of urb must be substituted before. */
579 int usbip_recv_iso(struct usbip_device *ud, struct urb *urb)
583 int np = urb->number_of_packets;
589 if (!usb_pipeisoc(urb->pipe))
602 dev_err(&urb->dev->dev, "recv iso_frame_descriptor, %d\n",
617 usbip_pack_iso(&iso[i], &urb->iso_frame_desc[i], 0);
618 total_length += urb->iso_frame_desc[i].actual_length;
623 if (total_length != urb->actual_length) {
624 dev_err(&urb->dev->dev,
626 total_length, urb->actual_length);
644 * buffer and iso packets need to be stored and be in propeper endian in urb
647 void usbip_pad_iso(struct usbip_device *ud, struct urb *urb)
649 int np = urb->number_of_packets;
651 int actualoffset = urb->actual_length;
653 if (!usb_pipeisoc(urb->pipe))
657 if (np == 0 || urb->actual_length == 0)
664 if (urb->actual_length == urb->transfer_buffer_length)
672 actualoffset -= urb->iso_frame_desc[i].actual_length;
673 memmove(urb->transfer_buffer + urb->iso_frame_desc[i].offset,
674 urb->transfer_buffer + actualoffset,
675 urb->iso_frame_desc[i].actual_length);
680 /* some members of urb must be substituted before. */
681 int usbip_recv_xbuff(struct usbip_device *ud, struct urb *urb)
691 /* the direction of urb must be OUT. */
692 if (usb_pipein(urb->pipe))
695 size = urb->transfer_buffer_length;
697 /* the direction of urb must be IN. */
698 if (usb_pipeout(urb->pipe))
701 size = urb->actual_length;
708 if (size > urb->transfer_buffer_length)
712 if (urb->num_sgs) {
714 for_each_sg(urb->sg, sg, urb->num_sgs, i) {
738 ret = usbip_recv(ud->tcp_socket, urb->transfer_buffer, size);
746 dev_err(&urb->dev->dev, "recv xbuf, %d\n", ret);