Lines Matching refs:urb
260 static void prepare_ptd(struct isp1362_hcd *isp1362_hcd, struct urb *urb,
268 size_t buf_len = urb->transfer_buffer_length - urb->actual_length;
274 ep->data = (unsigned char *)urb->transfer_buffer + urb->actual_length;
278 toggle = usb_gettoggle(urb->dev, ep->epnum, 0);
280 if (usb_pipecontrol(urb->pipe)) {
282 } else if (usb_pipeisoc(urb->pipe)) {
283 len = min_t(size_t, urb->iso_frame_desc[fno].length, MAX_XFER_SIZE);
284 ep->data = urb->transfer_buffer + urb->iso_frame_desc[fno].offset;
291 toggle = usb_gettoggle(urb->dev, ep->epnum, 1);
293 if (usb_pipecontrol(urb->pipe))
295 else if (usb_pipeisoc(urb->pipe))
296 len = min_t(size_t, urb->iso_frame_desc[0].length, MAX_XFER_SIZE);
301 urb->transfer_flags & URB_ZERO_PACKET);
310 ep->data = urb->setup_packet;
315 dir = (urb->transfer_buffer_length && usb_pipein(urb->pipe)) ?
330 ptd->mps = PTD_MPS(ep->maxpacket) | PTD_SPD(urb->dev->speed == USB_SPEED_LOW) |
333 ptd->faddr = PTD_FA(usb_pipedevice(urb->pipe));
335 if (usb_pipeint(urb->pipe)) {
339 if (usb_pipeisoc(urb->pipe))
446 struct urb *urb, int status)
450 urb->hcpriv = NULL;
453 if (usb_pipecontrol(urb->pipe))
457 ep->num_req, usb_pipedevice(urb->pipe),
458 usb_pipeendpoint(urb->pipe),
459 !usb_pipein(urb->pipe) ? "out" : "in",
460 usb_pipecontrol(urb->pipe) ? "ctrl" :
461 usb_pipeint(urb->pipe) ? "int" :
462 usb_pipebulk(urb->pipe) ? "bulk" :
464 urb->actual_length, urb->transfer_buffer_length,
465 !(urb->transfer_flags & URB_SHORT_NOT_OK) ?
466 "short_ok" : "", urb->status);
469 usb_hcd_unlink_urb_from_ep(isp1362_hcd_to_hcd(isp1362_hcd), urb);
471 usb_hcd_giveback_urb(isp1362_hcd_to_hcd(isp1362_hcd), urb, status);
501 struct urb *urb = get_urb(ep);
511 udev = urb->dev;
520 short_ok = !(urb->transfer_flags & URB_SHORT_NOT_OK);
521 len = urb->transfer_buffer_length - urb->actual_length;
539 usb_pipein(urb->pipe) ? "IN" : "OUT", ep->nextpid,
545 urb->actual_length += PTD_GET_COUNT(ptd);
546 if (usb_pipecontrol(urb->pipe)) {
548 BUG_ON(urb->actual_length > urb->transfer_buffer_length);
550 if (urb->status == -EINPROGRESS)
551 urb->status = cc_to_error[PTD_DATAUNDERRUN];
577 urb->actual_length += ep->length;
578 BUG_ON(urb->actual_length > urb->transfer_buffer_length);
580 if (urb->actual_length == urb->transfer_buffer_length) {
583 if (usb_pipecontrol(urb->pipe)) {
586 usb_pipein(urb->pipe) ? "IN" : "OUT");
590 !(urb->transfer_flags & URB_ZERO_PACKET)) {
593 __func__, ep->num_req, usb_pipein(urb->pipe) ? "IN" : "OUT",
594 urbstat, len, ep->maxpacket, urb->actual_length);
602 urb->actual_length += len;
603 BUG_ON(urb->actual_length > urb->transfer_buffer_length);
606 if ((urb->transfer_buffer_length == urb->actual_length) ||
610 if (usb_pipecontrol(urb->pipe)) {
613 usb_pipein(urb->pipe) ? "IN" : "OUT");
618 __func__, ep->num_req, usb_pipein(urb->pipe) ? "IN" : "OUT",
619 urbstat, len, ep->maxpacket, urb->actual_length);
624 if (urb->transfer_buffer_length == urb->actual_length) {
626 } else if (usb_pipeout(urb->pipe)) {
647 DBG(2, "%s: Finishing ep %p req %d urb %p status %d\n", __func__,
648 ep, ep->num_req, urb, urbstat);
649 finish_request(isp1362_hcd, ep, urb, urbstat);
670 struct urb *urb = get_urb(ep);
674 finish_request(isp1362_hcd, ep, urb, -ESHUTDOWN);
713 static int submit_req(struct isp1362_hcd *isp1362_hcd, struct urb *urb,
718 prepare_ptd(isp1362_hcd, urb, ep, epq, 0);
755 struct urb *urb = get_urb(ep);
766 ret = submit_req(isp1362_hcd, urb, ep, epq);
807 struct urb *urb = get_urb(ep);
818 ret = submit_req(isp1362_hcd, urb, ep, epq);
878 struct urb *urb = get_urb(ep);
879 s16 diff = fno - (u16)urb->start_frame;
883 if (diff > urb->number_of_packets) {
885 finish_request(isp1362_hcd, ep, urb, -EOVERFLOW);
895 prepare_ptd(isp1362_hcd, urb, ep, epq, fno);
1217 struct urb *urb,
1221 struct usb_device *udev = urb->dev;
1222 unsigned int pipe = urb->pipe;
1226 struct usb_host_endpoint *hep = urb->ep;
1231 DBG(3, "%s: urb %p\n", __func__, urb);
1245 urb->transfer_buffer_length,
1246 (urb->transfer_flags & URB_ZERO_PACKET) ? "ZERO_PACKET " : "",
1247 !(urb->transfer_flags & URB_SHORT_NOT_OK) ?
1267 retval = usb_hcd_link_urb_to_ep(hcd, urb);
1282 ep->maxpacket = usb_maxpacket(udev, urb->pipe);
1297 if (urb->interval > PERIODIC_SIZE)
1298 urb->interval = PERIODIC_SIZE;
1299 ep->interval = urb->interval;
1322 urb->interval = ep->interval;
1324 /* urb submitted for already existing EP */
1351 urb->start_frame = frame;
1368 urb->hcpriv = hep;
1369 ALIGNSTAT(isp1362_hcd, urb->transfer_buffer);
1387 usb_hcd_unlink_urb_from_ep(hcd, urb);
1393 DBG(0, "%s: urb %p failed with %d\n", __func__, urb, retval);
1397 static int isp1362_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
1405 DBG(3, "%s: urb %p\n", __func__, urb);
1408 retval = usb_hcd_check_unlink_urb(hcd, urb, status);
1412 hep = urb->hcpriv;
1422 if (ep->hep->urb_list.next == &urb->urb_list) {
1424 DBG(1, "%s: urb %p ep %p req %d active PTD[%d] $%04x\n", __func__,
1425 urb, ep, ep->num_req, ep->ptd_index, ep->ptd_offset);
1428 urb = NULL;
1431 if (urb) {
1434 finish_request(isp1362_hcd, ep, urb, status);
1436 DBG(1, "%s: urb %p active; wait4irq\n", __func__, urb);
1438 pr_warn("%s: No EP in URB %p\n", __func__, urb);
2096 struct urb *urb;
2119 list_for_each_entry(urb, &ep->hep->urb_list, urb_list) {
2120 seq_printf(s, " urb%p, %d/%d\n", urb,
2121 urb->actual_length,
2122 urb->transfer_buffer_length);