Lines Matching refs:req

29 static void next_fifo_transaction(struct usba_ep *ep, struct usba_request *req)  in next_fifo_transaction()  argument
33 transaction_len = req->req.length - req->req.actual; in next_fifo_transaction()
34 req->last_transaction = 1; in next_fifo_transaction()
37 req->last_transaction = 0; in next_fifo_transaction()
38 } else if (transaction_len == ep->ep.maxpacket && req->req.zero) { in next_fifo_transaction()
39 req->last_transaction = 0; in next_fifo_transaction()
43 ep->ep.name, req, transaction_len, in next_fifo_transaction()
44 req->last_transaction ? ", done" : ""); in next_fifo_transaction()
46 memcpy(ep->fifo, req->req.buf + req->req.actual, transaction_len); in next_fifo_transaction()
48 req->req.actual += transaction_len; in next_fifo_transaction()
51 static void submit_request(struct usba_ep *ep, struct usba_request *req) in submit_request() argument
54 ep->ep.name, req, req->req.length, req->using_dma); in submit_request()
56 req->req.actual = 0; in submit_request()
57 req->submitted = 1; in submit_request()
59 next_fifo_transaction(ep, req); in submit_request()
60 if (req->last_transaction) { in submit_request()
71 struct usba_request *req; in submit_next_request() local
78 req = list_entry(ep->queue.next, struct usba_request, queue); in submit_next_request()
79 if (!req->submitted) in submit_next_request()
80 submit_request(ep, req); in submit_next_request()
93 struct usba_request *req; in receive_data() local
108 req = list_entry(ep->queue.next, in receive_data()
115 if (req->req.actual + bytecount >= req->req.length) { in receive_data()
117 bytecount = req->req.length - req->req.actual; in receive_data()
120 memcpy(req->req.buf + req->req.actual, ep->fifo, bytecount); in receive_data()
121 req->req.actual += bytecount; in receive_data()
127 req->req.status = 0; in receive_data()
128 list_del_init(&req->queue); in receive_data()
131 req->req.complete(&ep->ep, &req->req); in receive_data()
146 request_complete(struct usba_ep *ep, struct usba_request *req, int status) in request_complete() argument
148 if (req->req.status == -EINPROGRESS) in request_complete()
149 req->req.status = status; in request_complete()
152 ep->ep.name, req, req->req.status, req->req.actual); in request_complete()
154 req->req.complete(&ep->ep, &req->req); in request_complete()
160 struct usba_request *req, *tmp_req; in request_complete_list() local
162 list_for_each_entry_safe(req, tmp_req, list, queue) { in request_complete_list()
163 list_del_init(&req->queue); in request_complete_list()
164 request_complete(ep, req, status); in request_complete_list()
312 struct usba_request *req; in usba_ep_alloc_request() local
316 req = calloc(1, sizeof(struct usba_request)); in usba_ep_alloc_request()
317 if (!req) in usba_ep_alloc_request()
320 INIT_LIST_HEAD(&req->queue); in usba_ep_alloc_request()
322 return &req->req; in usba_ep_alloc_request()
328 struct usba_request *req = to_usba_req(_req); in usba_ep_free_request() local
332 free(req); in usba_ep_free_request()
338 struct usba_request *req = to_usba_req(_req); in usba_ep_queue() local
345 ep->ep.name, req, _req->length); in usba_ep_queue()
351 req->submitted = 0; in usba_ep_queue()
352 req->using_dma = 0; in usba_ep_queue()
353 req->last_transaction = 0; in usba_ep_queue()
362 list_add_tail(&req->queue, &ep->queue); in usba_ep_queue()
381 struct usba_request *req = to_usba_req(_req); in usba_ep_dequeue() local
384 ep->ep.name, req); in usba_ep_dequeue()
390 list_del_init(&req->queue); in usba_ep_dequeue()
392 request_complete(ep, req, -ECONNRESET); in usba_ep_dequeue()
535 struct usba_request *req, *tmp_req; in reset_all_endpoints() local
540 list_for_each_entry_safe(req, tmp_req, &ep->queue, queue) { in reset_all_endpoints()
541 list_del_init(&req->queue); in reset_all_endpoints()
542 request_complete(ep, req, -ECONNRESET); in reset_all_endpoints()
844 struct usba_request *req; in usba_control_irq() local
855 req = NULL; in usba_control_irq()
857 req = list_entry(ep->queue.next, in usba_control_irq()
861 if (req->submitted) in usba_control_irq()
862 next_fifo_transaction(ep, req); in usba_control_irq()
864 submit_request(ep, req); in usba_control_irq()
866 if (req->last_transaction) { in usba_control_irq()
889 if (req) { in usba_control_irq()
890 list_del_init(&req->queue); in usba_control_irq()
891 request_complete(ep, req, 0); in usba_control_irq()
918 if (req) { in usba_control_irq()
919 list_del_init(&req->queue); in usba_control_irq()
920 request_complete(ep, req, 0); in usba_control_irq()
967 if (req) { in usba_control_irq()
968 list_del_init(&req->queue); in usba_control_irq()
969 request_complete(ep, req, status); in usba_control_irq()
1026 struct usba_request *req; in usba_ep_irq() local
1044 req = list_entry(ep->queue.next, struct usba_request, queue); in usba_ep_irq()
1046 if (req->submitted) in usba_ep_irq()
1047 next_fifo_transaction(ep, req); in usba_ep_irq()
1049 submit_request(ep, req); in usba_ep_irq()
1051 if (req->last_transaction) { in usba_ep_irq()
1052 list_del_init(&req->queue); in usba_ep_irq()
1054 request_complete(ep, req, 0); in usba_ep_irq()