Lines Matching refs:stream_info
575 return radix_tree_lookup(&ep->stream_info->trb_address_map,
594 struct xhci_stream_info *stream_info;
609 stream_info = kzalloc_node(sizeof(*stream_info), mem_flags,
611 if (!stream_info)
614 stream_info->num_streams = num_streams;
615 stream_info->num_stream_ctxs = num_stream_ctxs;
618 stream_info->stream_rings = kcalloc_node(
621 if (!stream_info->stream_rings)
625 stream_info->stream_ctx_array = xhci_alloc_stream_ctx(xhci,
626 num_stream_ctxs, &stream_info->ctx_array_dma,
628 if (!stream_info->stream_ctx_array)
632 stream_info->free_streams_command =
634 if (!stream_info->free_streams_command)
637 INIT_RADIX_TREE(&stream_info->trb_address_map, GFP_ATOMIC);
645 stream_info->stream_rings[cur_stream] =
648 cur_ring = stream_info->stream_rings[cur_stream];
652 cur_ring->trb_address_map = &stream_info->trb_address_map;
657 stream_info->stream_ctx_array[cur_stream].stream_ring =
664 stream_info->stream_rings[cur_stream] = NULL;
675 return stream_info;
679 cur_ring = stream_info->stream_rings[cur_stream];
682 stream_info->stream_rings[cur_stream] = NULL;
685 xhci_free_command(xhci, stream_info->free_streams_command);
688 stream_info->num_stream_ctxs,
689 stream_info->stream_ctx_array,
690 stream_info->ctx_array_dma);
692 kfree(stream_info->stream_rings);
694 kfree(stream_info);
705 struct xhci_stream_info *stream_info)
712 max_primary_streams = fls(stream_info->num_stream_ctxs) - 2;
719 ep_ctx->deq = cpu_to_le64(stream_info->ctx_array_dma);
741 struct xhci_stream_info *stream_info)
746 if (!stream_info)
749 for (cur_stream = 1; cur_stream < stream_info->num_streams;
751 cur_ring = stream_info->stream_rings[cur_stream];
754 stream_info->stream_rings[cur_stream] = NULL;
757 xhci_free_command(xhci, stream_info->free_streams_command);
759 if (stream_info->stream_ctx_array)
761 stream_info->num_stream_ctxs,
762 stream_info->stream_ctx_array,
763 stream_info->ctx_array_dma);
765 kfree(stream_info->stream_rings);
766 kfree(stream_info);
871 if (dev->eps[i].stream_info)
873 dev->eps[i].stream_info);