Lines Matching refs:stream
3521 usecs += q->itd->stream->usecs; in periodic_usecs()
4087 struct fotg210_iso_stream *stream; in iso_stream_alloc() local
4089 stream = kzalloc(sizeof(*stream), mem_flags); in iso_stream_alloc()
4090 if (likely(stream != NULL)) { in iso_stream_alloc()
4091 INIT_LIST_HEAD(&stream->td_list); in iso_stream_alloc()
4092 INIT_LIST_HEAD(&stream->free_list); in iso_stream_alloc()
4093 stream->next_uframe = -1; in iso_stream_alloc()
4095 return stream; in iso_stream_alloc()
4101 struct fotg210_iso_stream *stream, in iso_stream_init() argument
4130 stream->buf0 = cpu_to_hc32(fotg210, (epnum << 8) | dev->devnum); in iso_stream_init()
4131 stream->buf1 = cpu_to_hc32(fotg210, buf1); in iso_stream_init()
4132 stream->buf2 = cpu_to_hc32(fotg210, multi); in iso_stream_init()
4139 stream->usecs = NS_TO_US(usb_calc_bus_time(dev->speed, in iso_stream_init()
4141 stream->usecs /= 8; in iso_stream_init()
4143 stream->highspeed = 1; in iso_stream_init()
4144 stream->usecs = HS_USECS_ISO(maxp); in iso_stream_init()
4146 bandwidth = stream->usecs * 8; in iso_stream_init()
4149 stream->bandwidth = bandwidth; in iso_stream_init()
4150 stream->udev = dev; in iso_stream_init()
4151 stream->bEndpointAddress = is_input | epnum; in iso_stream_init()
4152 stream->interval = interval; in iso_stream_init()
4153 stream->maxp = maxp; in iso_stream_init()
4160 struct fotg210_iso_stream *stream; in iso_stream_find() local
4171 stream = ep->hcpriv; in iso_stream_find()
4173 if (unlikely(stream == NULL)) { in iso_stream_find()
4174 stream = iso_stream_alloc(GFP_ATOMIC); in iso_stream_find()
4175 if (likely(stream != NULL)) { in iso_stream_find()
4176 ep->hcpriv = stream; in iso_stream_find()
4177 stream->ep = ep; in iso_stream_find()
4178 iso_stream_init(fotg210, stream, urb->dev, urb->pipe, in iso_stream_find()
4183 } else if (unlikely(stream->hw != NULL)) { in iso_stream_find()
4187 stream = NULL; in iso_stream_find()
4191 return stream; in iso_stream_find()
4216 struct fotg210_iso_stream *stream, in itd_sched_init() argument
4224 iso_sched->span = urb->number_of_packets * stream->interval; in itd_sched_init()
4256 struct fotg210_iso_stream *stream, in iso_sched_free() argument
4263 list_splice(&iso_sched->td_list, &stream->free_list); in iso_sched_free()
4269 struct fotg210_iso_stream *stream, in itd_urb_transaction() argument
4286 itd_sched_init(fotg210, sched, stream, urb); in itd_urb_transaction()
4301 if (likely(!list_empty(&stream->free_list))) { in itd_urb_transaction()
4302 itd = list_first_entry(&stream->free_list, in itd_urb_transaction()
4315 iso_sched_free(stream, sched); in itd_urb_transaction()
4374 struct fotg210_iso_stream *stream in iso_stream_schedule() argument
4398 if (likely(!list_empty(&stream->td_list))) { in iso_stream_schedule()
4406 if (!stream->highspeed && fotg210->fs_i_thresh) in iso_stream_schedule()
4415 excess = (stream->next_uframe - period - next) & (mod - 1); in iso_stream_schedule()
4453 stream->usecs, period)) in iso_stream_schedule()
4476 stream->next_uframe = start & (mod - 1); in iso_stream_schedule()
4479 urb->start_frame = stream->next_uframe; in iso_stream_schedule()
4480 if (!stream->highspeed) in iso_stream_schedule()
4489 iso_sched_free(stream, sched); in iso_stream_schedule()
4497 itd_init(struct fotg210_hcd *fotg210, struct fotg210_iso_stream *stream, in itd_init() argument
4504 itd->hw_bufp[0] = stream->buf0; in itd_init()
4505 itd->hw_bufp[1] = stream->buf1; in itd_init()
4506 itd->hw_bufp[2] = stream->buf2; in itd_init()
4575 struct fotg210_iso_stream *stream in itd_link_urb() argument
4583 next_uframe = stream->next_uframe & (mod - 1); in itd_link_urb()
4585 if (unlikely(list_empty(&stream->td_list))) { in itd_link_urb()
4587 += stream->bandwidth; in itd_link_urb()
4590 urb->dev->devpath, stream->bEndpointAddress & 0x0f, in itd_link_urb()
4591 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out", in itd_link_urb()
4605 list_move_tail(&itd->itd_list, &stream->td_list); in itd_link_urb()
4606 itd->stream = stream; in itd_link_urb()
4608 itd_init(fotg210, stream, itd); in itd_link_urb()
4616 next_uframe += stream->interval; in itd_link_urb()
4628 stream->next_uframe = next_uframe; in itd_link_urb()
4631 iso_sched_free(stream, iso_sched); in itd_link_urb()
4658 struct fotg210_iso_stream *stream = itd->stream; in itd_complete() local
4718 if (unlikely(list_is_singular(&stream->td_list))) { in itd_complete()
4720 -= stream->bandwidth; in itd_complete()
4723 dev->devpath, stream->bEndpointAddress & 0x0f, in itd_complete()
4724 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out"); in itd_complete()
4731 list_move_tail(&itd->itd_list, &stream->free_list); in itd_complete()
4734 if (list_empty(&stream->td_list)) { in itd_complete()
4735 list_splice_tail_init(&stream->free_list, in itd_complete()
4750 struct fotg210_iso_stream *stream; in itd_submit() local
4753 stream = iso_stream_find(fotg210, urb); in itd_submit()
4754 if (unlikely(stream == NULL)) { in itd_submit()
4758 if (unlikely(urb->interval != stream->interval && in itd_submit()
4762 stream->interval, urb->interval); in itd_submit()
4774 stream); in itd_submit()
4778 status = itd_urb_transaction(stream, fotg210, urb, mem_flags); 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()
5630 struct fotg210_iso_stream *stream = ep->hcpriv; in fotg210_endpoint_disable() local
5632 if (!list_empty(&stream->td_list)) in fotg210_endpoint_disable()
5636 kfree(stream); in fotg210_endpoint_disable()