Lines Matching refs:urb
258 static void prepare_ptd(struct isp1362_hcd *isp1362_hcd, struct urb *urb, in prepare_ptd() argument
266 size_t buf_len = urb->transfer_buffer_length - urb->actual_length; in prepare_ptd()
272 ep->data = (unsigned char *)urb->transfer_buffer + urb->actual_length; in prepare_ptd()
276 toggle = usb_gettoggle(urb->dev, ep->epnum, 0); in prepare_ptd()
278 if (usb_pipecontrol(urb->pipe)) { in prepare_ptd()
280 } else if (usb_pipeisoc(urb->pipe)) { in prepare_ptd()
281 len = min_t(size_t, urb->iso_frame_desc[fno].length, MAX_XFER_SIZE); in prepare_ptd()
282 ep->data = urb->transfer_buffer + urb->iso_frame_desc[fno].offset; in prepare_ptd()
289 toggle = usb_gettoggle(urb->dev, ep->epnum, 1); in prepare_ptd()
291 if (usb_pipecontrol(urb->pipe)) in prepare_ptd()
293 else if (usb_pipeisoc(urb->pipe)) in prepare_ptd()
294 len = min_t(size_t, urb->iso_frame_desc[0].length, MAX_XFER_SIZE); in prepare_ptd()
299 urb->transfer_flags & URB_ZERO_PACKET); in prepare_ptd()
308 ep->data = urb->setup_packet; in prepare_ptd()
313 dir = (urb->transfer_buffer_length && usb_pipein(urb->pipe)) ? in prepare_ptd()
328 ptd->mps = PTD_MPS(ep->maxpacket) | PTD_SPD(urb->dev->speed == USB_SPEED_LOW) | in prepare_ptd()
331 ptd->faddr = PTD_FA(usb_pipedevice(urb->pipe)); in prepare_ptd()
333 if (usb_pipeint(urb->pipe)) { in prepare_ptd()
337 if (usb_pipeisoc(urb->pipe)) in prepare_ptd()
444 struct urb *urb, int status) in finish_request() argument
448 urb->hcpriv = NULL; in finish_request()
451 if (usb_pipecontrol(urb->pipe)) in finish_request()
455 ep->num_req, usb_pipedevice(urb->pipe), in finish_request()
456 usb_pipeendpoint(urb->pipe), in finish_request()
457 !usb_pipein(urb->pipe) ? "out" : "in", in finish_request()
458 usb_pipecontrol(urb->pipe) ? "ctrl" : in finish_request()
459 usb_pipeint(urb->pipe) ? "int" : in finish_request()
460 usb_pipebulk(urb->pipe) ? "bulk" : in finish_request()
462 urb->actual_length, urb->transfer_buffer_length, in finish_request()
463 !(urb->transfer_flags & URB_SHORT_NOT_OK) ? in finish_request()
464 "short_ok" : "", urb->status); in finish_request()
467 usb_hcd_unlink_urb_from_ep(isp1362_hcd_to_hcd(isp1362_hcd), urb); in finish_request()
469 usb_hcd_giveback_urb(isp1362_hcd_to_hcd(isp1362_hcd), urb, status); in finish_request()
499 struct urb *urb = get_urb(ep); in postproc_ep() local
509 udev = urb->dev; in postproc_ep()
518 short_ok = !(urb->transfer_flags & URB_SHORT_NOT_OK); in postproc_ep()
519 len = urb->transfer_buffer_length - urb->actual_length; in postproc_ep()
537 usb_pipein(urb->pipe) ? "IN" : "OUT", ep->nextpid, in postproc_ep()
543 urb->actual_length += PTD_GET_COUNT(ptd); in postproc_ep()
544 if (usb_pipecontrol(urb->pipe)) { in postproc_ep()
546 BUG_ON(urb->actual_length > urb->transfer_buffer_length); in postproc_ep()
548 if (urb->status == -EINPROGRESS) in postproc_ep()
549 urb->status = cc_to_error[PTD_DATAUNDERRUN]; in postproc_ep()
575 urb->actual_length += ep->length; in postproc_ep()
576 BUG_ON(urb->actual_length > urb->transfer_buffer_length); in postproc_ep()
578 if (urb->actual_length == urb->transfer_buffer_length) { in postproc_ep()
581 if (usb_pipecontrol(urb->pipe)) { in postproc_ep()
584 usb_pipein(urb->pipe) ? "IN" : "OUT"); in postproc_ep()
588 !(urb->transfer_flags & URB_ZERO_PACKET)) { in postproc_ep()
591 __func__, ep->num_req, usb_pipein(urb->pipe) ? "IN" : "OUT", in postproc_ep()
592 urbstat, len, ep->maxpacket, urb->actual_length); in postproc_ep()
600 urb->actual_length += len; in postproc_ep()
601 BUG_ON(urb->actual_length > urb->transfer_buffer_length); in postproc_ep()
604 if ((urb->transfer_buffer_length == urb->actual_length) || in postproc_ep()
608 if (usb_pipecontrol(urb->pipe)) { in postproc_ep()
611 usb_pipein(urb->pipe) ? "IN" : "OUT"); in postproc_ep()
616 __func__, ep->num_req, usb_pipein(urb->pipe) ? "IN" : "OUT", in postproc_ep()
617 urbstat, len, ep->maxpacket, urb->actual_length); in postproc_ep()
622 if (urb->transfer_buffer_length == urb->actual_length) { in postproc_ep()
624 } else if (usb_pipeout(urb->pipe)) { in postproc_ep()
646 ep, ep->num_req, urb, urbstat); in postproc_ep()
647 finish_request(isp1362_hcd, ep, urb, urbstat); in postproc_ep()
668 struct urb *urb = get_urb(ep); in finish_unlinks() local
672 finish_request(isp1362_hcd, ep, urb, -ESHUTDOWN); in finish_unlinks()
711 static int submit_req(struct isp1362_hcd *isp1362_hcd, struct urb *urb, in submit_req() argument
716 prepare_ptd(isp1362_hcd, urb, ep, epq, 0); in submit_req()
753 struct urb *urb = get_urb(ep); in start_atl_transfers() local
764 ret = submit_req(isp1362_hcd, urb, ep, epq); in start_atl_transfers()
805 struct urb *urb = get_urb(ep); in start_intl_transfers() local
816 ret = submit_req(isp1362_hcd, urb, ep, epq); in start_intl_transfers()
876 struct urb *urb = get_urb(ep); in start_iso_transfers() local
877 s16 diff = fno - (u16)urb->start_frame; in start_iso_transfers()
881 if (diff > urb->number_of_packets) { in start_iso_transfers()
883 finish_request(isp1362_hcd, ep, urb, -EOVERFLOW); in start_iso_transfers()
893 prepare_ptd(isp1362_hcd, urb, ep, epq, fno); in start_iso_transfers()
1215 struct urb *urb, in isp1362_urb_enqueue() argument
1219 struct usb_device *udev = urb->dev; in isp1362_urb_enqueue()
1220 unsigned int pipe = urb->pipe; in isp1362_urb_enqueue()
1224 struct usb_host_endpoint *hep = urb->ep; in isp1362_urb_enqueue()
1229 DBG(3, "%s: urb %p\n", __func__, urb); in isp1362_urb_enqueue()
1243 urb->transfer_buffer_length, in isp1362_urb_enqueue()
1244 (urb->transfer_flags & URB_ZERO_PACKET) ? "ZERO_PACKET " : "", in isp1362_urb_enqueue()
1245 !(urb->transfer_flags & URB_SHORT_NOT_OK) ? in isp1362_urb_enqueue()
1265 retval = usb_hcd_link_urb_to_ep(hcd, urb); in isp1362_urb_enqueue()
1280 ep->maxpacket = usb_maxpacket(udev, urb->pipe, is_out); in isp1362_urb_enqueue()
1295 if (urb->interval > PERIODIC_SIZE) in isp1362_urb_enqueue()
1296 urb->interval = PERIODIC_SIZE; in isp1362_urb_enqueue()
1297 ep->interval = urb->interval; in isp1362_urb_enqueue()
1320 urb->interval = ep->interval; in isp1362_urb_enqueue()
1349 urb->start_frame = frame; in isp1362_urb_enqueue()
1366 urb->hcpriv = hep; in isp1362_urb_enqueue()
1367 ALIGNSTAT(isp1362_hcd, urb->transfer_buffer); in isp1362_urb_enqueue()
1385 usb_hcd_unlink_urb_from_ep(hcd, urb); in isp1362_urb_enqueue()
1391 DBG(0, "%s: urb %p failed with %d\n", __func__, urb, retval); in isp1362_urb_enqueue()
1395 static int isp1362_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status) in isp1362_urb_dequeue() argument
1403 DBG(3, "%s: urb %p\n", __func__, urb); in isp1362_urb_dequeue()
1406 retval = usb_hcd_check_unlink_urb(hcd, urb, status); in isp1362_urb_dequeue()
1410 hep = urb->hcpriv; in isp1362_urb_dequeue()
1420 if (ep->hep->urb_list.next == &urb->urb_list) { in isp1362_urb_dequeue()
1423 urb, ep, ep->num_req, ep->ptd_index, ep->ptd_offset); in isp1362_urb_dequeue()
1426 urb = NULL; in isp1362_urb_dequeue()
1429 if (urb) { in isp1362_urb_dequeue()
1432 finish_request(isp1362_hcd, ep, urb, status); in isp1362_urb_dequeue()
1434 DBG(1, "%s: urb %p active; wait4irq\n", __func__, urb); in isp1362_urb_dequeue()
1436 pr_warning("%s: No EP in URB %p\n", __func__, urb); in isp1362_urb_dequeue()
2093 struct urb *urb; in isp1362_show() local
2116 list_for_each_entry(urb, &ep->hep->urb_list, urb_list) { in isp1362_show()
2117 seq_printf(s, " urb%p, %d/%d\n", urb, in isp1362_show()
2118 urb->actual_length, in isp1362_show()
2119 urb->transfer_buffer_length); in isp1362_show()