Lines Matching refs:pep
277 struct cdnsp_ep *pep,
281 unsigned int ep_state = pep->ep_state;
292 if (pep->ep_state & EP_HAS_STREAMS) {
293 if (pep->stream_info.drbls_count >= 2)
296 pep->stream_info.drbls_count++;
299 pep->ep_state &= ~EP_STOPPED;
301 if (pep->idx == 0 && pdev->ep0_stage == CDNSP_DATA_STAGE &&
303 db_value = DB_VALUE_EP0_OUT(pep->idx, stream_id);
305 db_value = DB_VALUE(pep->idx, stream_id);
307 trace_cdnsp_tr_drbl(pep, stream_id);
318 * Get the right ring for the given pep and stream_id.
323 struct cdnsp_ep *pep,
326 if (!(pep->ep_state & EP_HAS_STREAMS))
327 return pep->ring;
329 if (stream_id == 0 || stream_id >= pep->stream_info.num_streams) {
331 pep->name, stream_id);
335 return pep->stream_info.stream_rings[stream_id];
342 return cdnsp_get_transfer_ring(pdev, preq->pep,
348 struct cdnsp_ep *pep)
354 if (pep->ep_state & EP_DIS_IN_RROGRESS)
358 if (!(pep->ep_state & EP_HAS_STREAMS) && pep->number) {
359 if (pep->ring && !list_empty(&pep->ring->td_list))
360 cdnsp_ring_ep_doorbell(pdev, pep, 0);
364 stream_info = &pep->stream_info;
373 ep_ring = cdnsp_get_transfer_ring(pdev, pep, stream_id);
385 ret = cdnsp_ring_ep_doorbell(pdev, pep, stream_id);
403 struct cdnsp_ep *pep;
405 pep = &pdev->eps[stream_id];
407 if (pep->ep_state & EP_HAS_STREAMS) {
408 st_ctx = &pep->stream_info.stream_ctx_array[stream_id];
412 return le64_to_cpu(pep->out_ctx->deq);
431 struct cdnsp_ep *pep,
443 ep_ring = cdnsp_get_transfer_ring(pdev, pep, stream_id);
451 hw_dequeue = cdnsp_get_hw_deq(pdev, pep->idx, stream_id);
482 if (new_deq == pep->ring->dequeue) {
635 struct cdnsp_ep *pep,
642 cdnsp_ring_doorbell_for_active_rings(pdev, pep);
646 cdnsp_queue_new_dequeue_state(pdev, pep, deq_state);
651 trace_cdnsp_handle_cmd_set_deq_ep(pep->out_ctx);
657 ep_ring = cdnsp_get_transfer_ring(pdev, pep, deq_state->stream_id);
685 cdnsp_ring_doorbell_for_active_rings(pdev, pep);
692 struct cdnsp_ep *pep)
704 trace_cdnsp_remove_request(pep->out_ctx);
715 hw_deq = cdnsp_get_hw_deq(pdev, pep->idx, preq->request.stream_id);
721 if (seg && (pep->ep_state & EP_ENABLED))
722 cdnsp_find_new_dequeue_state(pdev, pep, preq->request.stream_id,
733 pep->stream_info.td_count--;
741 ret = cdnsp_cmd_set_deq(pdev, pep, &deq_state);
745 cdnsp_gadget_giveback(pep, cur_td->preq, status);
910 preq->pep->stream_info.td_count--;
912 cdnsp_gadget_giveback(preq->pep, preq, *status);
964 struct cdnsp_ep *pep,
980 if ((pep->ep_state & EP_HAS_STREAMS) &&
981 !pep->stream_info.first_prime_det) {
982 trace_cdnsp_wait_for_prime(pep, stream_id);
986 return cdnsp_ring_ep_doorbell(pdev, pep, stream_id);
996 struct cdnsp_ep *pep,
1004 ep_ring = cdnsp_dma_to_transfer_ring(pep, le64_to_cpu(event->buffer));
1021 if (pdev->ep0_stage == CDNSP_DATA_STAGE && pep->number == 0 &&
1027 cdnsp_giveback_first_trb(pdev, pep, 0, ep_ring->cycle_state,
1034 cdnsp_finish_td(pdev, td, event, pep, status);
1044 struct cdnsp_ep *pep,
1054 ep_ring = cdnsp_dma_to_transfer_ring(pep, le64_to_cpu(event->buffer));
1101 cdnsp_finish_td(pdev, td, event, pep, &status);
1107 struct cdnsp_ep *pep,
1112 ep_ring = cdnsp_dma_to_transfer_ring(pep, le64_to_cpu(event->buffer));
1178 struct cdnsp_ep *pep;
1189 pep = &pdev->eps[ep_index];
1191 if (!(pep->ep_state & EP_HAS_STREAMS))
1195 pep->stream_info.first_prime_det = 1;
1196 for (cur_stream = 1; cur_stream < pep->stream_info.num_streams;
1198 ep_ring = pep->stream_info.stream_rings[cur_stream];
1207 pep->stream_info.drbls_count--;
1208 ep_ring = pep->stream_info.stream_rings[dev_sid];
1218 cdnsp_ring_doorbell_for_active_rings(pdev, pep);
1235 struct cdnsp_ep *pep;
1246 pep = &pdev->eps[ep_index];
1247 ep_ring = cdnsp_dma_to_transfer_ring(pep, le64_to_cpu(event->buffer));
1257 if (GET_EP_CTX_STATE(pep->out_ctx) == EP_STATE_DISABLED) {
1258 trace_cdnsp_ep_disabled(pep->out_ctx);
1272 pep->name);
1297 pep->skip = true;
1320 if (pep->skip) {
1321 pep->skip = false;
1322 trace_cdnsp_ep_list_empty_with_skip(pep, 0);
1336 desc = td->preq->pep->endpoint.desc;
1345 if (pep->skip && usb_endpoint_xfer_isoc(desc) &&
1360 pep->skip = false;
1365 if (!pep->skip || !usb_endpoint_xfer_isoc(desc)) {
1375 cdnsp_skip_isoc_td(pdev, td, event, pep, status);
1384 if (pep->skip) {
1385 pep->skip = false;
1386 cdnsp_skip_isoc_td(pdev, td, event, pep, status);
1394 cdnsp_process_ctrl_td(pdev, td, ep_trb, event, pep,
1397 cdnsp_process_isoc_td(pdev, td, ep_trb, event, pep,
1400 cdnsp_process_bulk_intr_td(pdev, td, ep_trb, event, pep,
1403 handling_skipped_tds = pep->skip;
1678 ep_ring = cdnsp_get_transfer_ring(pdev, preq->pep,
1684 GET_EP_CTX_STATE(preq->pep->out_ctx),
1695 preq->pep->stream_info.td_count++;
1742 dev_err(preq->pep->pdev->dev,
1745 preq->pep->name, running_total,
1785 maxp = usb_endpoint_maxp(preq->pep->endpoint.desc);
1801 max_pkt = usb_endpoint_maxp(preq->pep->endpoint.desc);
1872 struct cdnsp_ep *pep;
1894 pep = preq->pep;
1898 IS_ALIGNED(full_len, usb_endpoint_maxp(pep->endpoint.desc))) {
2003 ret = cdnsp_giveback_first_trb(pdev, pep, preq->request.stream_id,
2015 struct cdnsp_ep *pep = preq->pep;
2028 maxp = usb_endpoint_maxp(pep->endpoint.desc);
2091 if (pep->ep_state & EP0_HALTED_STATUS) {
2092 pep->ep_state &= ~EP0_HALTED_STATUS;
2102 cdnsp_ring_ep_doorbell(pdev, pep, preq->request.stream_id);
2107 int cdnsp_cmd_stop_ep(struct cdnsp_device *pdev, struct cdnsp_ep *pep)
2109 u32 ep_state = GET_EP_CTX_STATE(pep->out_ctx);
2114 trace_cdnsp_ep_stopped_or_disabled(pep->out_ctx);
2118 cdnsp_queue_stop_endpoint(pdev, pep->idx);
2122 trace_cdnsp_handle_cmd_stop_ep(pep->out_ctx);
2125 pep->ep_state |= EP_STOPPED;
2129 int cdnsp_cmd_flush_ep(struct cdnsp_device *pdev, struct cdnsp_ep *pep)
2133 cdnsp_queue_flush_endpoint(pdev, pep->idx);
2137 trace_cdnsp_handle_cmd_flush_ep(pep->out_ctx);
2159 max_burst = preq->pep->endpoint.comp_desc->bMaxBurst;
2181 max_burst = preq->pep->endpoint.comp_desc->bMaxBurst;
2218 ep_ring = preq->pep->ring;
2243 max_pkt = usb_endpoint_maxp(preq->pep->endpoint.desc);
2292 if (usb_endpoint_dir_out(preq->pep->endpoint.desc))
2336 cdnsp_giveback_first_trb(pdev, preq->pep, preq->request.stream_id,
2432 struct cdnsp_ep *pep,
2450 EP_ID_FOR_TRB(pep->idx) | type);