Lines Matching refs:priv_req
298 void cdns3_move_deq_to_next_trb(struct cdns3_request *priv_req) in cdns3_move_deq_to_next_trb() argument
300 struct cdns3_endpoint *priv_ep = priv_req->priv_ep; in cdns3_move_deq_to_next_trb()
301 int current_trb = priv_req->start_trb; in cdns3_move_deq_to_next_trb()
303 while (current_trb != priv_req->end_trb) { in cdns3_move_deq_to_next_trb()
440 struct cdns3_request *priv_req) in cdns3_wa2_gadget_giveback() argument
443 priv_req->flags & REQUEST_INTERNAL) { in cdns3_wa2_gadget_giveback()
468 return &priv_req->request; in cdns3_wa2_gadget_giveback()
473 struct cdns3_request *priv_req) in cdns3_wa2_gadget_ep_queue() argument
503 !(priv_req->flags & REQUEST_INTERNAL)) { in cdns3_wa2_gadget_ep_queue()
505 &priv_req->request); in cdns3_wa2_gadget_ep_queue()
509 list_add_tail(&priv_req->request.list, in cdns3_wa2_gadget_ep_queue()
511 cdns3_gadget_giveback(priv_ep, priv_req, in cdns3_wa2_gadget_ep_queue()
512 priv_req->request.status); in cdns3_wa2_gadget_ep_queue()
531 if (priv_req->flags & REQUEST_INTERNAL) in cdns3_wa2_gadget_ep_queue()
532 list_add_tail(&priv_req->list, in cdns3_wa2_gadget_ep_queue()
541 struct cdns3_request *priv_req; in cdns3_wa2_remove_old_request() local
546 priv_req = cdns3_next_priv_request(&priv_ep->wa2_descmiss_req_list); in cdns3_wa2_remove_old_request()
547 chain = !!(priv_req->flags & REQUEST_INTERNAL_CH); in cdns3_wa2_remove_old_request()
551 kfree(priv_req->request.buf); in cdns3_wa2_remove_old_request()
553 &priv_req->request); in cdns3_wa2_remove_old_request()
554 list_del_init(&priv_req->list); in cdns3_wa2_remove_old_request()
571 struct cdns3_request *priv_req; in cdns3_wa2_descmissing_packet() local
589 priv_req = to_cdns3_request(request); in cdns3_wa2_descmissing_packet()
590 priv_req->flags |= REQUEST_INTERNAL; in cdns3_wa2_descmissing_packet()
601 priv_req->request.buf = kzalloc(CDNS3_DESCMIS_BUF_SIZE, in cdns3_wa2_descmissing_packet()
605 if (!priv_req->request.buf) { in cdns3_wa2_descmissing_packet()
610 priv_req->request.length = CDNS3_DESCMIS_BUF_SIZE; in cdns3_wa2_descmissing_packet()
611 priv_ep->descmis_req = priv_req; in cdns3_wa2_descmissing_packet()
635 struct cdns3_request *priv_req, in cdns3_gadget_giveback() argument
639 struct usb_request *request = &priv_req->request; in cdns3_gadget_giveback()
649 if ((priv_req->flags & REQUEST_UNALIGNED) && in cdns3_gadget_giveback()
651 memcpy(request->buf, priv_req->aligned_buf->buf, in cdns3_gadget_giveback()
654 priv_req->flags &= ~(REQUEST_PENDING | REQUEST_UNALIGNED); in cdns3_gadget_giveback()
655 trace_cdns3_gadget_giveback(priv_req); in cdns3_gadget_giveback()
659 priv_req); in cdns3_gadget_giveback()
719 static int cdns3_prepare_aligned_request_buf(struct cdns3_request *priv_req) in cdns3_prepare_aligned_request_buf() argument
721 struct cdns3_endpoint *priv_ep = priv_req->priv_ep; in cdns3_prepare_aligned_request_buf()
726 if (!((uintptr_t)priv_req->request.buf & 0x7)) in cdns3_prepare_aligned_request_buf()
729 buf = priv_req->aligned_buf; in cdns3_prepare_aligned_request_buf()
731 if (!buf || priv_req->request.length > buf->size) { in cdns3_prepare_aligned_request_buf()
736 buf->size = priv_req->request.length; in cdns3_prepare_aligned_request_buf()
745 if (priv_req->aligned_buf) { in cdns3_prepare_aligned_request_buf()
746 trace_cdns3_free_aligned_request(priv_req); in cdns3_prepare_aligned_request_buf()
747 priv_req->aligned_buf->in_use = 0; in cdns3_prepare_aligned_request_buf()
757 priv_req->aligned_buf = buf; in cdns3_prepare_aligned_request_buf()
764 memcpy(buf->buf, priv_req->request.buf, in cdns3_prepare_aligned_request_buf()
765 priv_req->request.length); in cdns3_prepare_aligned_request_buf()
768 priv_req->flags |= REQUEST_UNALIGNED; in cdns3_prepare_aligned_request_buf()
769 trace_cdns3_prepare_aligned_request(priv_req); in cdns3_prepare_aligned_request_buf()
819 struct cdns3_request *priv_req; in cdns3_ep_run_transfer() local
834 priv_req = to_cdns3_request(request); in cdns3_ep_run_transfer()
840 if (priv_req->flags & REQUEST_UNALIGNED) in cdns3_ep_run_transfer()
841 trb_dma = priv_req->aligned_buf->dma; in cdns3_ep_run_transfer()
846 priv_req->start_trb = priv_ep->enqueue; in cdns3_ep_run_transfer()
847 priv_req->trb = trb; in cdns3_ep_run_transfer()
931 priv_req->trb->control = control; in cdns3_ep_run_transfer()
935 priv_req->end_trb = priv_ep->enqueue; in cdns3_ep_run_transfer()
940 trb = priv_req->trb; in cdns3_ep_run_transfer()
942 priv_req->flags |= REQUEST_PENDING; in cdns3_ep_run_transfer()
959 trace_cdns3_prepare_trb(priv_ep, priv_req->trb); in cdns3_ep_run_transfer()
985 priv_req->start_trb * TRB_SIZE), in cdns3_ep_run_transfer()
1078 struct cdns3_request *priv_req) in cdns3_request_handled() argument
1081 struct cdns3_trb *trb = priv_req->trb; in cdns3_request_handled()
1089 trb = &priv_ep->trb_pool[priv_req->start_trb]; in cdns3_request_handled()
1111 if (priv_req->end_trb >= priv_ep->dequeue && in cdns3_request_handled()
1112 priv_req->end_trb < current_index) in cdns3_request_handled()
1115 if (priv_req->end_trb < current_index || in cdns3_request_handled()
1116 priv_req->end_trb >= priv_ep->dequeue) in cdns3_request_handled()
1121 trace_cdns3_request_handled(priv_req, current_index, handled); in cdns3_request_handled()
1129 struct cdns3_request *priv_req; in cdns3_transfer_completed() local
1135 priv_req = to_cdns3_request(request); in cdns3_transfer_completed()
1147 if (!cdns3_request_handled(priv_ep, priv_req)) in cdns3_transfer_completed()
1153 if (trb != priv_req->trb) in cdns3_transfer_completed()
1156 priv_req->trb, trb); in cdns3_transfer_completed()
1159 cdns3_move_deq_to_next_trb(priv_req); in cdns3_transfer_completed()
1160 cdns3_gadget_giveback(priv_ep, priv_req, 0); in cdns3_transfer_completed()
1726 struct cdns3_request *priv_req; in cdns3_gadget_ep_alloc_request() local
1728 priv_req = kzalloc(sizeof(*priv_req), gfp_flags); in cdns3_gadget_ep_alloc_request()
1729 if (!priv_req) in cdns3_gadget_ep_alloc_request()
1732 priv_req->priv_ep = priv_ep; in cdns3_gadget_ep_alloc_request()
1734 trace_cdns3_alloc_request(priv_req); in cdns3_gadget_ep_alloc_request()
1735 return &priv_req->request; in cdns3_gadget_ep_alloc_request()
1746 struct cdns3_request *priv_req = to_cdns3_request(request); in cdns3_gadget_ep_free_request() local
1748 if (priv_req->aligned_buf) in cdns3_gadget_ep_free_request()
1749 priv_req->aligned_buf->in_use = 0; in cdns3_gadget_ep_free_request()
1751 trace_cdns3_free_request(priv_req); in cdns3_gadget_ep_free_request()
1752 kfree(priv_req); in cdns3_gadget_ep_free_request()
1877 struct cdns3_request *priv_req; in cdns3_gadget_ep_disable() local
1930 priv_req = cdns3_next_priv_request(&priv_ep->wa2_descmiss_req_list); in cdns3_gadget_ep_disable()
1932 kfree(priv_req->request.buf); in cdns3_gadget_ep_disable()
1934 &priv_req->request); in cdns3_gadget_ep_disable()
1935 list_del_init(&priv_req->list); in cdns3_gadget_ep_disable()
1970 struct cdns3_request *priv_req; in __cdns3_gadget_ep_queue() local
1975 priv_req = to_cdns3_request(request); in __cdns3_gadget_ep_queue()
1976 trace_cdns3_ep_queue(priv_req); in __cdns3_gadget_ep_queue()
1980 priv_req); in __cdns3_gadget_ep_queue()
1986 ret = cdns3_prepare_aligned_request_buf(priv_req); in __cdns3_gadget_ep_queue()
2030 struct cdns3_request *priv_req; in cdns3_gadget_ep_queue() local
2036 priv_req = to_cdns3_request(zlp_request); in cdns3_gadget_ep_queue()
2037 priv_req->flags |= REQUEST_ZLP; in cdns3_gadget_ep_queue()
2061 struct cdns3_request *priv_req; in cdns3_gadget_ep_dequeue() local
2071 priv_req = to_cdns3_request(request); in cdns3_gadget_ep_dequeue()
2073 trace_cdns3_ep_dequeue(priv_req); in cdns3_gadget_ep_dequeue()
2093 if (priv_ep->wa1_trb == priv_req->trb) in cdns3_gadget_ep_dequeue()
2096 link_trb = priv_req->trb; in cdns3_gadget_ep_dequeue()
2097 cdns3_move_deq_to_next_trb(priv_req); in cdns3_gadget_ep_dequeue()
2098 cdns3_gadget_giveback(priv_ep, priv_req, -ECONNRESET); in cdns3_gadget_ep_dequeue()
2103 priv_req = to_cdns3_request(request); in cdns3_gadget_ep_dequeue()
2106 (priv_req->start_trb * TRB_SIZE)); in cdns3_gadget_ep_dequeue()