Lines Matching refs:stream_info

662 		return radix_tree_lookup(&ep->stream_info->trb_address_map,  in xhci_dma_to_transfer_ring()
681 struct xhci_stream_info *stream_info; in xhci_alloc_stream_info() local
697 stream_info = kzalloc_node(sizeof(*stream_info), mem_flags, in xhci_alloc_stream_info()
699 if (!stream_info) in xhci_alloc_stream_info()
702 stream_info->num_streams = num_streams; in xhci_alloc_stream_info()
703 stream_info->num_stream_ctxs = num_stream_ctxs; in xhci_alloc_stream_info()
706 stream_info->stream_rings = kcalloc_node( in xhci_alloc_stream_info()
709 if (!stream_info->stream_rings) in xhci_alloc_stream_info()
713 stream_info->stream_ctx_array = xhci_alloc_stream_ctx(xhci, in xhci_alloc_stream_info()
714 num_stream_ctxs, &stream_info->ctx_array_dma, in xhci_alloc_stream_info()
716 if (!stream_info->stream_ctx_array) in xhci_alloc_stream_info()
718 memset(stream_info->stream_ctx_array, 0, in xhci_alloc_stream_info()
722 stream_info->free_streams_command = in xhci_alloc_stream_info()
724 if (!stream_info->free_streams_command) in xhci_alloc_stream_info()
727 INIT_RADIX_TREE(&stream_info->trb_address_map, GFP_ATOMIC); in xhci_alloc_stream_info()
735 stream_info->stream_rings[cur_stream] = in xhci_alloc_stream_info()
738 cur_ring = stream_info->stream_rings[cur_stream]; in xhci_alloc_stream_info()
742 cur_ring->trb_address_map = &stream_info->trb_address_map; in xhci_alloc_stream_info()
747 stream_info->stream_ctx_array[cur_stream].stream_ring = in xhci_alloc_stream_info()
755 stream_info->stream_rings[cur_stream] = NULL; in xhci_alloc_stream_info()
766 return stream_info; in xhci_alloc_stream_info()
770 cur_ring = stream_info->stream_rings[cur_stream]; in xhci_alloc_stream_info()
773 stream_info->stream_rings[cur_stream] = NULL; in xhci_alloc_stream_info()
776 xhci_free_command(xhci, stream_info->free_streams_command); in xhci_alloc_stream_info()
779 stream_info->num_stream_ctxs, in xhci_alloc_stream_info()
780 stream_info->stream_ctx_array, in xhci_alloc_stream_info()
781 stream_info->ctx_array_dma); in xhci_alloc_stream_info()
783 kfree(stream_info->stream_rings); in xhci_alloc_stream_info()
785 kfree(stream_info); in xhci_alloc_stream_info()
796 struct xhci_stream_info *stream_info) in xhci_setup_streams_ep_input_ctx() argument
803 max_primary_streams = fls(stream_info->num_stream_ctxs) - 2; in xhci_setup_streams_ep_input_ctx()
810 ep_ctx->deq = cpu_to_le64(stream_info->ctx_array_dma); in xhci_setup_streams_ep_input_ctx()
832 struct xhci_stream_info *stream_info) in xhci_free_stream_info() argument
837 if (!stream_info) in xhci_free_stream_info()
840 for (cur_stream = 1; cur_stream < stream_info->num_streams; in xhci_free_stream_info()
842 cur_ring = stream_info->stream_rings[cur_stream]; in xhci_free_stream_info()
845 stream_info->stream_rings[cur_stream] = NULL; in xhci_free_stream_info()
848 xhci_free_command(xhci, stream_info->free_streams_command); in xhci_free_stream_info()
850 if (stream_info->stream_ctx_array) in xhci_free_stream_info()
852 stream_info->num_stream_ctxs, in xhci_free_stream_info()
853 stream_info->stream_ctx_array, in xhci_free_stream_info()
854 stream_info->ctx_array_dma); in xhci_free_stream_info()
856 kfree(stream_info->stream_rings); in xhci_free_stream_info()
857 kfree(stream_info); in xhci_free_stream_info()
970 if (dev->eps[i].stream_info) in xhci_free_virt_device()
972 dev->eps[i].stream_info); in xhci_free_virt_device()