Lines Matching refs:stream

3400 				usecs += q->itd->stream->usecs;  in periodic_usecs()
3938 struct fotg210_iso_stream *stream; in iso_stream_alloc() local
3940 stream = kzalloc(sizeof(*stream), mem_flags); in iso_stream_alloc()
3941 if (likely(stream != NULL)) { in iso_stream_alloc()
3942 INIT_LIST_HEAD(&stream->td_list); in iso_stream_alloc()
3943 INIT_LIST_HEAD(&stream->free_list); in iso_stream_alloc()
3944 stream->next_uframe = -1; in iso_stream_alloc()
3946 return stream; in iso_stream_alloc()
3950 struct fotg210_iso_stream *stream, struct usb_device *dev, in iso_stream_init() argument
3976 stream->buf0 = cpu_to_hc32(fotg210, (epnum << 8) | dev->devnum); in iso_stream_init()
3977 stream->buf1 = cpu_to_hc32(fotg210, buf1); in iso_stream_init()
3978 stream->buf2 = cpu_to_hc32(fotg210, multi); in iso_stream_init()
3985 stream->usecs = NS_TO_US(usb_calc_bus_time(dev->speed, in iso_stream_init()
3987 stream->usecs /= 8; in iso_stream_init()
3989 stream->highspeed = 1; in iso_stream_init()
3990 stream->usecs = HS_USECS_ISO(maxp); in iso_stream_init()
3992 bandwidth = stream->usecs * 8; in iso_stream_init()
3995 stream->bandwidth = bandwidth; in iso_stream_init()
3996 stream->udev = dev; in iso_stream_init()
3997 stream->bEndpointAddress = is_input | epnum; in iso_stream_init()
3998 stream->interval = interval; in iso_stream_init()
3999 stream->maxp = maxp; in iso_stream_init()
4006 struct fotg210_iso_stream *stream; in iso_stream_find() local
4017 stream = ep->hcpriv; in iso_stream_find()
4019 if (unlikely(stream == NULL)) { in iso_stream_find()
4020 stream = iso_stream_alloc(GFP_ATOMIC); in iso_stream_find()
4021 if (likely(stream != NULL)) { in iso_stream_find()
4022 ep->hcpriv = stream; in iso_stream_find()
4023 stream->ep = ep; in iso_stream_find()
4024 iso_stream_init(fotg210, stream, urb->dev, urb->pipe, in iso_stream_find()
4029 } else if (unlikely(stream->hw != NULL)) { in iso_stream_find()
4033 stream = NULL; in iso_stream_find()
4037 return stream; in iso_stream_find()
4058 struct fotg210_iso_stream *stream, struct urb *urb) in itd_sched_init() argument
4064 iso_sched->span = urb->number_of_packets * stream->interval; in itd_sched_init()
4094 static void iso_sched_free(struct fotg210_iso_stream *stream, in iso_sched_free() argument
4100 list_splice(&iso_sched->td_list, &stream->free_list); in iso_sched_free()
4104 static int itd_urb_transaction(struct fotg210_iso_stream *stream, in itd_urb_transaction() argument
4118 itd_sched_init(fotg210, sched, stream, urb); in itd_urb_transaction()
4133 if (likely(!list_empty(&stream->free_list))) { in itd_urb_transaction()
4134 itd = list_first_entry(&stream->free_list, in itd_urb_transaction()
4147 iso_sched_free(stream, sched); in itd_urb_transaction()
4194 struct fotg210_iso_stream *stream) in iso_stream_schedule() argument
4217 if (likely(!list_empty(&stream->td_list))) { in iso_stream_schedule()
4225 if (!stream->highspeed && fotg210->fs_i_thresh) in iso_stream_schedule()
4234 excess = (stream->next_uframe - period - next) & (mod - 1); in iso_stream_schedule()
4273 stream->usecs, period)) in iso_stream_schedule()
4296 stream->next_uframe = start & (mod - 1); in iso_stream_schedule()
4299 urb->start_frame = stream->next_uframe; in iso_stream_schedule()
4300 if (!stream->highspeed) in iso_stream_schedule()
4309 iso_sched_free(stream, sched); in iso_stream_schedule()
4315 struct fotg210_iso_stream *stream, struct fotg210_itd *itd) in itd_init() argument
4321 itd->hw_bufp[0] = stream->buf0; in itd_init()
4322 itd->hw_bufp[1] = stream->buf1; in itd_init()
4323 itd->hw_bufp[2] = stream->buf2; in itd_init()
4384 unsigned mod, struct fotg210_iso_stream *stream) in itd_link_urb() argument
4391 next_uframe = stream->next_uframe & (mod - 1); in itd_link_urb()
4393 if (unlikely(list_empty(&stream->td_list))) { in itd_link_urb()
4395 += stream->bandwidth; in itd_link_urb()
4398 urb->dev->devpath, stream->bEndpointAddress & 0x0f, in itd_link_urb()
4399 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out", in itd_link_urb()
4413 list_move_tail(&itd->itd_list, &stream->td_list); in itd_link_urb()
4414 itd->stream = stream; in itd_link_urb()
4416 itd_init(fotg210, stream, itd); in itd_link_urb()
4424 next_uframe += stream->interval; in itd_link_urb()
4436 stream->next_uframe = next_uframe; in itd_link_urb()
4439 iso_sched_free(stream, iso_sched); in itd_link_urb()
4466 struct fotg210_iso_stream *stream = itd->stream; in itd_complete() local
4526 if (unlikely(list_is_singular(&stream->td_list))) { in itd_complete()
4528 -= stream->bandwidth; in itd_complete()
4531 dev->devpath, stream->bEndpointAddress & 0x0f, in itd_complete()
4532 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out"); in itd_complete()
4539 list_move_tail(&itd->itd_list, &stream->free_list); in itd_complete()
4542 if (list_empty(&stream->td_list)) { in itd_complete()
4543 list_splice_tail_init(&stream->free_list, in itd_complete()
4556 struct fotg210_iso_stream *stream; in itd_submit() local
4559 stream = iso_stream_find(fotg210, urb); in itd_submit()
4560 if (unlikely(stream == NULL)) { in itd_submit()
4564 if (unlikely(urb->interval != stream->interval && in itd_submit()
4568 stream->interval, urb->interval); in itd_submit()
4580 stream); in itd_submit()
4584 status = itd_urb_transaction(stream, fotg210, urb, mem_flags); in itd_submit()
4599 status = iso_stream_schedule(fotg210, urb, stream); in itd_submit()
4601 itd_link_urb(fotg210, urb, fotg210->periodic_size << 3, stream); in itd_submit()
5426 struct fotg210_iso_stream *stream = ep->hcpriv; in fotg210_endpoint_disable() local
5428 if (!list_empty(&stream->td_list)) in fotg210_endpoint_disable()
5432 kfree(stream); in fotg210_endpoint_disable()