Lines Matching refs:stream_info
624 return radix_tree_lookup(&ep->stream_info->trb_address_map, in xhci_dma_to_transfer_ring()
638 if (!ep->stream_info) in xhci_stream_id_to_ring()
641 if (stream_id > ep->stream_info->num_streams) in xhci_stream_id_to_ring()
643 return ep->stream_info->stream_rings[stream_id]; in xhci_stream_id_to_ring()
659 struct xhci_stream_info *stream_info; in xhci_alloc_stream_info() local
674 stream_info = kzalloc(sizeof(struct xhci_stream_info), mem_flags); in xhci_alloc_stream_info()
675 if (!stream_info) in xhci_alloc_stream_info()
678 stream_info->num_streams = num_streams; in xhci_alloc_stream_info()
679 stream_info->num_stream_ctxs = num_stream_ctxs; in xhci_alloc_stream_info()
682 stream_info->stream_rings = kzalloc( in xhci_alloc_stream_info()
685 if (!stream_info->stream_rings) in xhci_alloc_stream_info()
689 stream_info->stream_ctx_array = xhci_alloc_stream_ctx(xhci, in xhci_alloc_stream_info()
690 num_stream_ctxs, &stream_info->ctx_array_dma, in xhci_alloc_stream_info()
692 if (!stream_info->stream_ctx_array) in xhci_alloc_stream_info()
694 memset(stream_info->stream_ctx_array, 0, in xhci_alloc_stream_info()
698 stream_info->free_streams_command = in xhci_alloc_stream_info()
700 if (!stream_info->free_streams_command) in xhci_alloc_stream_info()
703 INIT_RADIX_TREE(&stream_info->trb_address_map, GFP_ATOMIC); in xhci_alloc_stream_info()
710 stream_info->stream_rings[cur_stream] = in xhci_alloc_stream_info()
712 cur_ring = stream_info->stream_rings[cur_stream]; in xhci_alloc_stream_info()
716 cur_ring->trb_address_map = &stream_info->trb_address_map; in xhci_alloc_stream_info()
721 stream_info->stream_ctx_array[cur_stream].stream_ring = in xhci_alloc_stream_info()
729 stream_info->stream_rings[cur_stream] = NULL; in xhci_alloc_stream_info()
740 return stream_info; in xhci_alloc_stream_info()
744 cur_ring = stream_info->stream_rings[cur_stream]; in xhci_alloc_stream_info()
747 stream_info->stream_rings[cur_stream] = NULL; in xhci_alloc_stream_info()
750 xhci_free_command(xhci, stream_info->free_streams_command); in xhci_alloc_stream_info()
752 kfree(stream_info->stream_rings); in xhci_alloc_stream_info()
754 kfree(stream_info); in xhci_alloc_stream_info()
765 struct xhci_stream_info *stream_info) in xhci_setup_streams_ep_input_ctx() argument
772 max_primary_streams = fls(stream_info->num_stream_ctxs) - 2; in xhci_setup_streams_ep_input_ctx()
779 ep_ctx->deq = cpu_to_le64(stream_info->ctx_array_dma); in xhci_setup_streams_ep_input_ctx()
801 struct xhci_stream_info *stream_info) in xhci_free_stream_info() argument
806 if (!stream_info) in xhci_free_stream_info()
809 for (cur_stream = 1; cur_stream < stream_info->num_streams; in xhci_free_stream_info()
811 cur_ring = stream_info->stream_rings[cur_stream]; in xhci_free_stream_info()
814 stream_info->stream_rings[cur_stream] = NULL; in xhci_free_stream_info()
817 xhci_free_command(xhci, stream_info->free_streams_command); in xhci_free_stream_info()
819 if (stream_info->stream_ctx_array) in xhci_free_stream_info()
821 stream_info->num_stream_ctxs, in xhci_free_stream_info()
822 stream_info->stream_ctx_array, in xhci_free_stream_info()
823 stream_info->ctx_array_dma); in xhci_free_stream_info()
825 kfree(stream_info->stream_rings); in xhci_free_stream_info()
826 kfree(stream_info); in xhci_free_stream_info()
934 if (dev->eps[i].stream_info) in xhci_free_virt_device()
936 dev->eps[i].stream_info); in xhci_free_virt_device()