Lines Matching refs:stream

3463 				usecs += q->itd->stream->usecs;  in periodic_usecs()
4020 struct fusbh200_iso_stream *stream; in iso_stream_alloc() local
4022 stream = kzalloc(sizeof *stream, mem_flags); in iso_stream_alloc()
4023 if (likely (stream != NULL)) { in iso_stream_alloc()
4024 INIT_LIST_HEAD(&stream->td_list); in iso_stream_alloc()
4025 INIT_LIST_HEAD(&stream->free_list); in iso_stream_alloc()
4026 stream->next_uframe = -1; in iso_stream_alloc()
4028 return stream; in iso_stream_alloc()
4034 struct fusbh200_iso_stream *stream, in iso_stream_init() argument
4064 stream->buf0 = cpu_to_hc32(fusbh200, (epnum << 8) | dev->devnum); in iso_stream_init()
4065 stream->buf1 = cpu_to_hc32(fusbh200, buf1); in iso_stream_init()
4066 stream->buf2 = cpu_to_hc32(fusbh200, multi); in iso_stream_init()
4073 stream->usecs = NS_TO_US(usb_calc_bus_time(dev->speed, in iso_stream_init()
4075 stream->usecs /= 8; in iso_stream_init()
4077 stream->highspeed = 1; in iso_stream_init()
4078 stream->usecs = HS_USECS_ISO (maxp); in iso_stream_init()
4080 bandwidth = stream->usecs * 8; in iso_stream_init()
4083 stream->bandwidth = bandwidth; in iso_stream_init()
4084 stream->udev = dev; in iso_stream_init()
4085 stream->bEndpointAddress = is_input | epnum; in iso_stream_init()
4086 stream->interval = interval; in iso_stream_init()
4087 stream->maxp = maxp; in iso_stream_init()
4094 struct fusbh200_iso_stream *stream; in iso_stream_find() local
4105 stream = ep->hcpriv; in iso_stream_find()
4107 if (unlikely (stream == NULL)) { in iso_stream_find()
4108 stream = iso_stream_alloc(GFP_ATOMIC); in iso_stream_find()
4109 if (likely (stream != NULL)) { in iso_stream_find()
4110 ep->hcpriv = stream; in iso_stream_find()
4111 stream->ep = ep; in iso_stream_find()
4112 iso_stream_init(fusbh200, stream, urb->dev, urb->pipe, in iso_stream_find()
4117 } else if (unlikely (stream->hw != NULL)) { in iso_stream_find()
4121 stream = NULL; in iso_stream_find()
4125 return stream; in iso_stream_find()
4150 struct fusbh200_iso_stream *stream, in itd_sched_init() argument
4158 iso_sched->span = urb->number_of_packets * stream->interval; in itd_sched_init()
4190 struct fusbh200_iso_stream *stream, in iso_sched_free() argument
4197 list_splice (&iso_sched->td_list, &stream->free_list); in iso_sched_free()
4203 struct fusbh200_iso_stream *stream, in itd_urb_transaction() argument
4220 itd_sched_init(fusbh200, sched, stream, urb); in itd_urb_transaction()
4235 if (likely(!list_empty(&stream->free_list))) { in itd_urb_transaction()
4236 itd = list_first_entry(&stream->free_list, in itd_urb_transaction()
4249 iso_sched_free(stream, sched); in itd_urb_transaction()
4308 struct fusbh200_iso_stream *stream in iso_stream_schedule() argument
4332 if (likely (!list_empty (&stream->td_list))) { in iso_stream_schedule()
4340 if (!stream->highspeed && fusbh200->fs_i_thresh) in iso_stream_schedule()
4349 excess = (stream->next_uframe - period - next) & (mod - 1); in iso_stream_schedule()
4387 stream->usecs, period)) in iso_stream_schedule()
4410 stream->next_uframe = start & (mod - 1); in iso_stream_schedule()
4413 urb->start_frame = stream->next_uframe; in iso_stream_schedule()
4414 if (!stream->highspeed) in iso_stream_schedule()
4423 iso_sched_free(stream, sched); in iso_stream_schedule()
4431 itd_init(struct fusbh200_hcd *fusbh200, struct fusbh200_iso_stream *stream, in itd_init() argument
4438 itd->hw_bufp [0] = stream->buf0; in itd_init()
4439 itd->hw_bufp [1] = stream->buf1; in itd_init()
4440 itd->hw_bufp [2] = stream->buf2; in itd_init()
4511 struct fusbh200_iso_stream *stream in itd_link_urb() argument
4519 next_uframe = stream->next_uframe & (mod - 1); in itd_link_urb()
4521 if (unlikely (list_empty(&stream->td_list))) { in itd_link_urb()
4523 += stream->bandwidth; in itd_link_urb()
4526 urb->dev->devpath, stream->bEndpointAddress & 0x0f, in itd_link_urb()
4527 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out", in itd_link_urb()
4542 list_move_tail (&itd->itd_list, &stream->td_list); in itd_link_urb()
4543 itd->stream = stream; in itd_link_urb()
4545 itd_init (fusbh200, stream, itd); in itd_link_urb()
4553 next_uframe += stream->interval; in itd_link_urb()
4564 stream->next_uframe = next_uframe; in itd_link_urb()
4567 iso_sched_free (stream, iso_sched); in itd_link_urb()
4593 struct fusbh200_iso_stream *stream = itd->stream; in itd_complete() local
4652 if (unlikely(list_is_singular(&stream->td_list))) { in itd_complete()
4654 -= stream->bandwidth; in itd_complete()
4657 dev->devpath, stream->bEndpointAddress & 0x0f, in itd_complete()
4658 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out"); in itd_complete()
4665 list_move_tail(&itd->itd_list, &stream->free_list); in itd_complete()
4668 if (list_empty(&stream->td_list)) { in itd_complete()
4669 list_splice_tail_init(&stream->free_list, in itd_complete()
4684 struct fusbh200_iso_stream *stream; in itd_submit() local
4687 stream = iso_stream_find (fusbh200, urb); in itd_submit()
4688 if (unlikely (stream == NULL)) { in itd_submit()
4692 if (unlikely (urb->interval != stream->interval && in itd_submit()
4695 stream->interval, urb->interval); in itd_submit()
4707 stream); in itd_submit()
4711 status = itd_urb_transaction (stream, fusbh200, urb, mem_flags); in itd_submit()
4726 status = iso_stream_schedule(fusbh200, urb, stream); in itd_submit()
4728 itd_link_urb (fusbh200, urb, fusbh200->periodic_size << 3, stream); in itd_submit()
5538 struct fusbh200_iso_stream *stream = ep->hcpriv; in fusbh200_endpoint_disable() local
5540 if (!list_empty(&stream->td_list)) in fusbh200_endpoint_disable()
5544 kfree(stream); in fusbh200_endpoint_disable()