Lines Matching refs:urb
169 itd->urb); in dbg_itd()
453 td->urb); in qh_lines()
2209 struct urb *urb, u32 token) in fotg210_clear_tt_buffer() argument
2218 if (urb->dev->tt && !usb_pipeint(urb->pipe) && !qh->clearing_tt) { in fotg210_clear_tt_buffer()
2219 struct usb_device *tt = urb->dev->tt->hub; in fotg210_clear_tt_buffer()
2222 urb->dev->ttport, urb->dev->devnum, in fotg210_clear_tt_buffer()
2223 usb_pipeendpoint(urb->pipe), token); in fotg210_clear_tt_buffer()
2225 if (urb->dev->tt->hub != in fotg210_clear_tt_buffer()
2227 if (usb_hub_clear_tt_buffer(urb) == 0) in fotg210_clear_tt_buffer()
2235 struct urb *urb, in qtd_copy_status() argument
2244 urb->actual_length += length - QTD_LENGTH(token); in qtd_copy_status()
2247 if (unlikely(urb->unlinked)) in qtd_copy_status()
2277 urb->dev->devpath, in qtd_copy_status()
2278 usb_pipeendpoint(urb->pipe), in qtd_copy_status()
2279 usb_pipein(urb->pipe) ? "in" : "out"); in qtd_copy_status()
2287 usb_pipedevice(urb->pipe), in qtd_copy_status()
2288 usb_pipeendpoint(urb->pipe), in qtd_copy_status()
2289 usb_pipein(urb->pipe) ? "in" : "out", in qtd_copy_status()
2297 fotg210_urb_done(struct fotg210_hcd *fotg210, struct urb *urb, int status) in fotg210_urb_done() argument
2301 if (likely(urb->hcpriv != NULL)) { in fotg210_urb_done()
2302 struct fotg210_qh *qh = (struct fotg210_qh *) urb->hcpriv; in fotg210_urb_done()
2312 if (unlikely(urb->unlinked)) { in fotg210_urb_done()
2324 __func__, urb->dev->devpath, urb, in fotg210_urb_done()
2325 usb_pipeendpoint(urb->pipe), in fotg210_urb_done()
2326 usb_pipein(urb->pipe) ? "in" : "out", in fotg210_urb_done()
2328 urb->actual_length, urb->transfer_buffer_length); in fotg210_urb_done()
2332 usb_hcd_unlink_urb_from_ep(fotg210_to_hcd(fotg210), urb); in fotg210_urb_done()
2334 usb_hcd_giveback_urb(fotg210_to_hcd(fotg210), urb, status); in fotg210_urb_done()
2385 struct urb *urb; in qh_completions() local
2389 urb = qtd->urb; in qh_completions()
2393 if (likely(last->urb != urb)) { in qh_completions()
2394 fotg210_urb_done(fotg210, last->urb, in qh_completions()
2419 urb, in qh_completions()
2420 usb_endpoint_num(&urb->ep->desc), in qh_completions()
2421 usb_endpoint_dir_in(&urb->ep->desc) in qh_completions()
2423 urb->transfer_buffer_length, in qh_completions()
2438 !urb->unlinked) { in qh_completions()
2491 else if (last_status == -EINPROGRESS && !urb->unlinked) in qh_completions()
2504 fotg210_clear_tt_buffer(fotg210, qh, urb, in qh_completions()
2517 last_status = qtd_copy_status(fotg210, urb, in qh_completions()
2540 urb, token); in qh_completions()
2563 fotg210_urb_done(fotg210, last->urb, last_status); in qh_completions()
2631 struct urb *urb, in qtd_list_free() argument
2651 struct urb *urb, in qh_urb_transaction() argument
2670 qtd->urb = urb; in qh_urb_transaction()
2676 len = urb->transfer_buffer_length; in qh_urb_transaction()
2677 is_input = usb_pipein(urb->pipe); in qh_urb_transaction()
2678 if (usb_pipecontrol(urb->pipe)) { in qh_urb_transaction()
2680 qtd_fill(fotg210, qtd, urb->setup_dma, in qh_urb_transaction()
2690 qtd->urb = urb; in qh_urb_transaction()
2702 i = urb->num_mapped_sgs; in qh_urb_transaction()
2704 sg = urb->sg; in qh_urb_transaction()
2713 buf = urb->transfer_dma; in qh_urb_transaction()
2721 maxpacket = max_packet(usb_maxpacket(urb->dev, urb->pipe, !is_input)); in qh_urb_transaction()
2761 qtd->urb = urb; in qh_urb_transaction()
2771 if (likely((urb->transfer_flags & URB_SHORT_NOT_OK) == 0 in qh_urb_transaction()
2772 || usb_pipecontrol(urb->pipe))) in qh_urb_transaction()
2780 if (likely(urb->transfer_buffer_length != 0)) { in qh_urb_transaction()
2783 if (usb_pipecontrol(urb->pipe)) { in qh_urb_transaction()
2787 } else if (usb_pipeout(urb->pipe) in qh_urb_transaction()
2788 && (urb->transfer_flags & URB_ZERO_PACKET) in qh_urb_transaction()
2789 && !(urb->transfer_buffer_length % maxpacket)) { in qh_urb_transaction()
2797 qtd->urb = urb; in qh_urb_transaction()
2807 if (likely(!(urb->transfer_flags & URB_NO_INTERRUPT))) in qh_urb_transaction()
2812 qtd_list_free(fotg210, urb, head); in qh_urb_transaction()
2837 struct urb *urb, in qh_make() argument
2844 struct usb_tt *tt = urb->dev->tt; in qh_make()
2853 info1 |= usb_pipeendpoint(urb->pipe) << 8; in qh_make()
2854 info1 |= usb_pipedevice(urb->pipe) << 0; in qh_make()
2856 is_input = usb_pipein(urb->pipe); in qh_make()
2857 type = usb_pipetype(urb->pipe); in qh_make()
2858 maxp = usb_maxpacket(urb->dev, urb->pipe, !is_input); in qh_make()
2883 if (urb->dev->speed == USB_SPEED_HIGH) { in qh_make()
2887 qh->period = urb->interval >> 3; in qh_make()
2888 if (qh->period == 0 && urb->interval != 1) { in qh_make()
2893 urb->interval = 1; in qh_make()
2896 urb->interval = qh->period << 3; in qh_make()
2902 qh->gap_uf = 1 + usb_calc_bus_time(urb->dev->speed, in qh_make()
2916 usb_calc_bus_time(urb->dev->speed, in qh_make()
2918 qh->period = urb->interval; in qh_make()
2921 urb->interval = qh->period; in qh_make()
2927 qh->dev = urb->dev; in qh_make()
2930 switch (urb->dev->speed) { in qh_make()
2951 info2 |= (urb->dev->ttport-1) << 23; in qh_make()
2953 info2 |= urb->dev->ttport << 23; in qh_make()
2988 fotg210_dbg(fotg210, "bogus dev %p speed %d\n", urb->dev, in qh_make()
2989 urb->dev->speed); in qh_make()
3003 usb_settoggle(urb->dev, usb_pipeendpoint(urb->pipe), !is_input, 1); in qh_make()
3077 struct urb *urb, in qh_append_tds() argument
3089 qh = qh_make(fotg210, urb, GFP_ATOMIC); in qh_append_tds()
3104 if (usb_pipedevice(urb->pipe) == 0) in qh_append_tds()
3147 urb->hcpriv = qh; in qh_append_tds()
3158 struct urb *urb, in submit_async() argument
3167 epnum = urb->ep->desc.bEndpointAddress; in submit_async()
3175 __func__, urb->dev->devpath, urb, in submit_async()
3177 urb->transfer_buffer_length, in submit_async()
3178 qtd, urb->ep->hcpriv); in submit_async()
3187 rc = usb_hcd_link_urb_to_ep(fotg210_to_hcd(fotg210), urb); in submit_async()
3191 qh = qh_append_tds(fotg210, urb, qtd_list, epnum, &urb->ep->hcpriv); in submit_async()
3193 usb_hcd_unlink_urb_from_ep(fotg210_to_hcd(fotg210), urb); in submit_async()
3206 qtd_list_free(fotg210, urb, qtd_list); in submit_async()
3997 struct urb *urb, in intr_submit() argument
4008 epnum = urb->ep->desc.bEndpointAddress; in intr_submit()
4016 status = usb_hcd_link_urb_to_ep(fotg210_to_hcd(fotg210), urb); in intr_submit()
4022 qh = qh_append_tds(fotg210, urb, &empty, epnum, &urb->ep->hcpriv); in intr_submit()
4034 qh = qh_append_tds(fotg210, urb, qtd_list, epnum, &urb->ep->hcpriv); in intr_submit()
4042 usb_hcd_unlink_urb_from_ep(fotg210_to_hcd(fotg210), urb); in intr_submit()
4046 qtd_list_free(fotg210, urb, qtd_list); in intr_submit()
4157 iso_stream_find(struct fotg210_hcd *fotg210, struct urb *urb) in iso_stream_find() argument
4164 epnum = usb_pipeendpoint(urb->pipe); in iso_stream_find()
4165 if (usb_pipein(urb->pipe)) in iso_stream_find()
4166 ep = urb->dev->ep_in[epnum]; in iso_stream_find()
4168 ep = urb->dev->ep_out[epnum]; in iso_stream_find()
4178 iso_stream_init(fotg210, stream, urb->dev, urb->pipe, in iso_stream_find()
4179 urb->interval); in iso_stream_find()
4185 urb->dev->devpath, epnum, in iso_stream_find()
4186 usb_pipein(urb->pipe) ? "in" : "out"); in iso_stream_find()
4217 struct urb *urb in itd_sched_init() argument
4221 dma_addr_t dma = urb->transfer_dma; in itd_sched_init()
4224 iso_sched->span = urb->number_of_packets * stream->interval; in itd_sched_init()
4229 for (i = 0; i < urb->number_of_packets; i++) { in itd_sched_init()
4235 length = urb->iso_frame_desc[i].length; in itd_sched_init()
4236 buf = dma + urb->iso_frame_desc[i].offset; in itd_sched_init()
4240 if (unlikely(((i + 1) == urb->number_of_packets)) in itd_sched_init()
4241 && !(urb->transfer_flags & URB_NO_INTERRUPT)) in itd_sched_init()
4271 struct urb *urb, in itd_urb_transaction() argument
4282 sched = iso_sched_alloc(urb->number_of_packets, mem_flags); in itd_urb_transaction()
4286 itd_sched_init(fotg210, sched, stream, urb); in itd_urb_transaction()
4288 if (urb->interval < 8) in itd_urb_transaction()
4291 num_itds = urb->number_of_packets; in itd_urb_transaction()
4328 urb->hcpriv = sched; in itd_urb_transaction()
4329 urb->error_count = 0; in itd_urb_transaction()
4373 struct urb *urb, in iso_stream_schedule() argument
4380 struct fotg210_iso_sched *sched = urb->hcpriv; in iso_stream_schedule()
4382 period = urb->interval; in iso_stream_schedule()
4386 fotg210_dbg(fotg210, "iso request %p too long\n", urb); in iso_stream_schedule()
4423 urb, start - now - period, period, in iso_stream_schedule()
4460 urb, now, now + mod); in iso_stream_schedule()
4470 urb, start - now, span - period, in iso_stream_schedule()
4479 urb->start_frame = stream->next_uframe; in iso_stream_schedule()
4481 urb->start_frame >>= 3; in iso_stream_schedule()
4490 urb->hcpriv = NULL; in iso_stream_schedule()
4573 struct urb *urb, in itd_link_urb() argument
4580 struct fotg210_iso_sched *iso_sched = urb->hcpriv; in itd_link_urb()
4590 urb->dev->devpath, stream->bEndpointAddress & 0x0f, in itd_link_urb()
4592 urb->interval, in itd_link_urb()
4597 for (packet = 0, itd = NULL; packet < urb->number_of_packets;) { in itd_link_urb()
4607 itd->urb = urb; in itd_link_urb()
4622 || packet == urb->number_of_packets) { in itd_link_urb()
4632 urb->hcpriv = NULL; in itd_link_urb()
4653 struct urb *urb = itd->urb; in itd_complete() local
4667 desc = &urb->iso_frame_desc[urb_index]; in itd_complete()
4674 urb->error_count++; in itd_complete()
4676 desc->status = usb_pipein(urb->pipe) in itd_complete()
4687 fotg210_itdlen(urb, desc, t); in itd_complete()
4688 urb->actual_length += desc->actual_length; in itd_complete()
4692 desc->actual_length = fotg210_itdlen(urb, desc, t); in itd_complete()
4693 urb->actual_length += desc->actual_length; in itd_complete()
4701 if (likely((urb_index + 1) != urb->number_of_packets)) in itd_complete()
4710 dev = urb->dev; in itd_complete()
4711 fotg210_urb_done(fotg210, urb, 0); in itd_complete()
4713 urb = NULL; in itd_complete()
4728 itd->urb = NULL; in itd_complete()
4745 static int itd_submit(struct fotg210_hcd *fotg210, struct urb *urb, in itd_submit() argument
4753 stream = iso_stream_find(fotg210, urb); in itd_submit()
4758 if (unlikely(urb->interval != stream->interval && in itd_submit()
4762 stream->interval, urb->interval); in itd_submit()
4769 __func__, urb->dev->devpath, urb, in itd_submit()
4770 usb_pipeendpoint(urb->pipe), in itd_submit()
4771 usb_pipein(urb->pipe) ? "in" : "out", in itd_submit()
4772 urb->transfer_buffer_length, in itd_submit()
4773 urb->number_of_packets, urb->interval, in itd_submit()
4778 status = itd_urb_transaction(stream, fotg210, urb, mem_flags); in itd_submit()
4790 status = usb_hcd_link_urb_to_ep(fotg210_to_hcd(fotg210), urb); in itd_submit()
4793 status = iso_stream_schedule(fotg210, urb, stream); in itd_submit()
4795 itd_link_urb(fotg210, urb, fotg210->periodic_size << 3, stream); in itd_submit()
4797 usb_hcd_unlink_urb_from_ep(fotg210_to_hcd(fotg210), urb); in itd_submit()
5504 struct urb *urb, in fotg210_urb_enqueue() argument
5512 switch (usb_pipetype(urb->pipe)) { in fotg210_urb_enqueue()
5517 if (urb->transfer_buffer_length > (16 * 1024)) in fotg210_urb_enqueue()
5522 if (!qh_urb_transaction(fotg210, urb, &qtd_list, mem_flags)) in fotg210_urb_enqueue()
5524 return submit_async(fotg210, urb, &qtd_list, mem_flags); in fotg210_urb_enqueue()
5527 if (!qh_urb_transaction(fotg210, urb, &qtd_list, mem_flags)) in fotg210_urb_enqueue()
5529 return intr_submit(fotg210, urb, &qtd_list, mem_flags); in fotg210_urb_enqueue()
5532 return itd_submit(fotg210, urb, mem_flags); in fotg210_urb_enqueue()
5540 static int fotg210_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status) in fotg210_urb_dequeue() argument
5548 rc = usb_hcd_check_unlink_urb(hcd, urb, status); in fotg210_urb_dequeue()
5552 switch (usb_pipetype(urb->pipe)) { in fotg210_urb_dequeue()
5556 qh = (struct fotg210_qh *) urb->hcpriv; in fotg210_urb_dequeue()
5576 qh = (struct fotg210_qh *) urb->hcpriv; in fotg210_urb_dequeue()