Lines Matching refs:pep
22 struct cdnsp_ep *pep);
410 void cdnsp_free_endpoint_rings(struct cdnsp_device *pdev, struct cdnsp_ep *pep)
412 cdnsp_ring_free(pdev, pep->ring);
413 pep->ring = NULL;
414 cdnsp_free_stream_info(pdev, pep);
518 struct cdnsp_ep *pep)
520 dma_pool_free(pdev->device_pool, pep->stream_info.stream_ctx_array,
521 pep->stream_info.ctx_array_dma);
526 *cdnsp_alloc_stream_ctx(struct cdnsp_device *pdev, struct cdnsp_ep *pep)
529 pep->stream_info.num_stream_ctxs;
540 &pep->stream_info.ctx_array_dma);
543 struct cdnsp_ring *cdnsp_dma_to_transfer_ring(struct cdnsp_ep *pep, u64 address)
545 if (pep->ep_state & EP_HAS_STREAMS)
546 return radix_tree_lookup(&pep->stream_info.trb_address_map,
549 return pep->ring;
562 struct cdnsp_ep *pep,
573 stream_info = &pep->stream_info;
585 stream_info->stream_ctx_array = cdnsp_alloc_stream_ctx(pdev, pep);
592 mps = usb_endpoint_maxp(pep->endpoint.desc);
636 kfree(pep->stream_info.stream_rings);
643 struct cdnsp_ep *pep)
645 struct cdnsp_stream_info *stream_info = &pep->stream_info;
649 if (!(pep->ep_state & EP_HAS_STREAMS))
662 cdnsp_free_stream_ctx(pdev, pep);
665 pep->ep_state &= ~EP_HAS_STREAMS;
782 struct cdnsp_ep *pep)
786 interval = clamp_val(pep->endpoint.desc->bInterval, 1, 16) - 1;
787 if (interval != pep->endpoint.desc->bInterval - 1)
789 pep->name, 1 << interval,
812 struct cdnsp_ep *pep,
830 struct cdnsp_ep *pep)
838 if (usb_endpoint_xfer_int(pep->endpoint.desc) ||
839 usb_endpoint_xfer_isoc(pep->endpoint.desc))
840 interval = cdnsp_parse_exponent_interval(g, pep);
843 if (usb_endpoint_xfer_isoc(pep->endpoint.desc)) {
844 interval = cdnsp_parse_exponent_interval(g, pep);
845 } else if (usb_endpoint_xfer_int(pep->endpoint.desc)) {
846 interval = pep->endpoint.desc->bInterval << 3;
847 interval = cdnsp_microframes_to_exponent(g, pep,
866 static u32 cdnsp_get_endpoint_mult(struct usb_gadget *g, struct cdnsp_ep *pep)
869 !usb_endpoint_xfer_isoc(pep->endpoint.desc))
872 return pep->endpoint.comp_desc->bmAttributes;
876 struct cdnsp_ep *pep)
880 return pep->endpoint.comp_desc->bMaxBurst;
883 (usb_endpoint_xfer_isoc(pep->endpoint.desc) ||
884 usb_endpoint_xfer_int(pep->endpoint.desc)))
885 return usb_endpoint_maxp_mult(pep->endpoint.desc) - 1;
916 struct cdnsp_ep *pep)
922 if (usb_endpoint_xfer_control(pep->endpoint.desc) ||
923 usb_endpoint_xfer_bulk(pep->endpoint.desc))
928 USB_SS_SSP_ISOC_COMP(pep->endpoint.desc->bmAttributes))
929 return le16_to_cpu(pep->endpoint.comp_desc->wBytesPerInterval);
932 return le16_to_cpu(pep->endpoint.comp_desc->wBytesPerInterval);
934 max_packet = usb_endpoint_maxp(pep->endpoint.desc);
935 max_burst = usb_endpoint_maxp_mult(pep->endpoint.desc);
942 struct cdnsp_ep *pep,
957 ep_ctx = pep->in_ctx;
959 endpoint_type = cdnsp_get_endpoint_type(pep->endpoint.desc);
963 ring_type = usb_endpoint_type(pep->endpoint.desc);
971 max_esit_payload = cdnsp_get_max_esit_payload(&pdev->gadget, pep);
972 interval = cdnsp_get_endpoint_interval(&pdev->gadget, pep);
973 mult = cdnsp_get_endpoint_mult(&pdev->gadget, pep);
974 max_packet = usb_endpoint_maxp(pep->endpoint.desc);
975 max_burst = cdnsp_get_endpoint_max_burst(&pdev->gadget, pep);
979 if (!usb_endpoint_xfer_isoc(pep->endpoint.desc))
981 if (usb_endpoint_xfer_bulk(pep->endpoint.desc) &&
985 if (usb_endpoint_xfer_control(pep->endpoint.desc))
989 pep->ring = cdnsp_ring_alloc(pdev, 2, ring_type, max_packet, mem_flags);
990 if (!pep->ring)
993 pep->skip = false;
1001 ep_ctx->deq = cpu_to_le64(pep->ring->first_seg->dma |
1002 pep->ring->cycle_state);
1007 if (usb_endpoint_xfer_bulk(pep->endpoint.desc) &&
1009 ret = cdnsp_alloc_streams(pdev, pep);
1017 void cdnsp_endpoint_zero(struct cdnsp_device *pdev, struct cdnsp_ep *pep)
1019 pep->in_ctx->ep_info = 0;
1020 pep->in_ctx->ep_info2 = 0;
1021 pep->in_ctx->deq = 0;
1022 pep->in_ctx->tx_info = 0;