Lines Matching refs:request
32 static inline void map_dma_buffer(struct musb_request *request, in map_dma_buffer() argument
38 request->map_state = UN_MAPPED; in map_dma_buffer()
49 musb_ep->packet_sz, request->request.buf, in map_dma_buffer()
50 request->request.length); in map_dma_buffer()
54 if (request->request.dma == DMA_ADDR_INVALID) { in map_dma_buffer()
60 request->request.buf, in map_dma_buffer()
61 request->request.length, in map_dma_buffer()
62 request->tx in map_dma_buffer()
69 request->request.dma = dma_addr; in map_dma_buffer()
70 request->map_state = MUSB_MAPPED; in map_dma_buffer()
73 request->request.dma, in map_dma_buffer()
74 request->request.length, in map_dma_buffer()
75 request->tx in map_dma_buffer()
78 request->map_state = PRE_MAPPED; in map_dma_buffer()
83 static inline void unmap_dma_buffer(struct musb_request *request, in unmap_dma_buffer() argument
86 struct musb_ep *musb_ep = request->ep; in unmap_dma_buffer()
88 if (!is_buffer_mapped(request) || !musb_ep->dma) in unmap_dma_buffer()
91 if (request->request.dma == DMA_ADDR_INVALID) { in unmap_dma_buffer()
96 if (request->map_state == MUSB_MAPPED) { in unmap_dma_buffer()
98 request->request.dma, in unmap_dma_buffer()
99 request->request.length, in unmap_dma_buffer()
100 request->tx in unmap_dma_buffer()
103 request->request.dma = DMA_ADDR_INVALID; in unmap_dma_buffer()
106 request->request.dma, in unmap_dma_buffer()
107 request->request.length, in unmap_dma_buffer()
108 request->tx in unmap_dma_buffer()
112 request->map_state = UN_MAPPED; in unmap_dma_buffer()
124 struct usb_request *request, in musb_g_giveback() argument
133 req = to_musb_request(request); in musb_g_giveback()
136 if (req->request.status == -EINPROGRESS) in musb_g_giveback()
137 req->request.status = status; in musb_g_giveback()
143 if (!dma_mapping_error(&musb->g.dev, request->dma)) in musb_g_giveback()
147 usb_gadget_giveback_request(&req->ep->end_point, &req->request); in musb_g_giveback()
195 musb_g_giveback(ep, &req->request, status); in nuke()
228 struct usb_request *request; in txstate() local
250 request = &req->request; in txstate()
252 (int)(request->length - request->actual)); in txstate()
276 request_size = min_t(size_t, request->length - request->actual, in txstate()
279 use_dma = (request->dma != DMA_ADDR_INVALID && request_size); in txstate()
292 request->dma + request->actual, request_size); in txstate()
360 request->dma + request->actual, in txstate()
372 request->zero, in txstate()
373 request->dma + request->actual, in txstate()
386 (u8 *) (request->buf + request->actual)); in txstate()
387 request->actual += fifo_count; in txstate()
396 request->actual, request->length, in txstate()
410 struct usb_request *request; in musb_g_tx() local
418 request = &req->request; in musb_g_tx()
442 epnum, request); in musb_g_tx()
454 if (request) { in musb_g_tx()
468 request->actual += musb_ep->dma->actual_len; in musb_g_tx()
470 epnum, csr, musb_ep->dma->actual_len, request); in musb_g_tx()
477 if ((request->zero && request->length) in musb_g_tx()
478 && (request->length % musb_ep->packet_sz == 0) in musb_g_tx()
479 && (request->actual == request->length)) in musb_g_tx()
484 (request->actual & in musb_g_tx()
498 request->zero = 0; in musb_g_tx()
501 if (request->actual == request->length) { in musb_g_tx()
502 musb_g_giveback(musb_ep, request, 0); in musb_g_tx()
532 struct usb_request *request = &req->request; in rxstate() local
578 !request->short_not_ok, in rxstate()
579 request->dma + request->actual, in rxstate()
580 request->length - request->actual)) { in rxstate()
603 if (request->short_not_ok && fifo_count == musb_ep->packet_sz) in rxstate()
608 if (request->actual < request->length) { in rxstate()
659 request->length - in rxstate()
660 request->actual, in rxstate()
670 transfer_size = min(request->length - request->actual, in rxstate()
679 request->dma in rxstate()
680 + request->actual, in rxstate()
688 (request->actual < request->length)) { in rxstate()
700 else if (request->short_not_ok) in rxstate()
702 request->length - in rxstate()
703 request->actual, in rxstate()
707 request->length - in rxstate()
708 request->actual, in rxstate()
729 request->dma in rxstate()
730 + request->actual, in rxstate()
736 len = request->length - request->actual; in rxstate()
747 u32 dma_addr = request->dma + request->actual; in rxstate()
775 (request->buf + request->actual)); in rxstate()
776 request->actual += fifo_count; in rxstate()
790 if (request->actual == request->length || in rxstate()
792 musb_g_giveback(musb_ep, request, 0); in rxstate()
802 struct usb_request *request; in musb_g_rx() local
821 request = &req->request; in musb_g_rx()
827 csr, dma ? " (dma)" : "", request); in musb_g_rx()
841 musb_dbg(musb, "%s iso overrun on %p", musb_ep->name, request); in musb_g_rx()
842 if (request->status == -EINPROGRESS) in musb_g_rx()
843 request->status = -EOVERFLOW; in musb_g_rx()
864 request->actual += musb_ep->dma->actual_len; in musb_g_rx()
878 if ((request->actual < request->length) in musb_g_rx()
891 musb_g_giveback(musb_ep, request, 0); in musb_g_rx()
1142 struct musb_request *request = NULL; in musb_alloc_request() local
1144 request = kzalloc(sizeof *request, gfp_flags); in musb_alloc_request()
1145 if (!request) in musb_alloc_request()
1148 request->request.dma = DMA_ADDR_INVALID; in musb_alloc_request()
1149 request->epnum = musb_ep->current_epnum; in musb_alloc_request()
1150 request->ep = musb_ep; in musb_alloc_request()
1152 trace_musb_req_alloc(request); in musb_alloc_request()
1153 return &request->request; in musb_alloc_request()
1162 struct musb_request *request = to_musb_request(req); in musb_free_request() local
1164 trace_musb_req_free(request); in musb_free_request()
1165 kfree(request); in musb_free_request()
1203 struct musb_request *request; in musb_gadget_queue() local
1216 request = to_musb_request(req); in musb_gadget_queue()
1217 request->musb = musb; in musb_gadget_queue()
1219 if (request->ep != musb_ep) in musb_gadget_queue()
1233 trace_musb_req_enq(request); in musb_gadget_queue()
1236 request->request.actual = 0; in musb_gadget_queue()
1237 request->request.status = -EINPROGRESS; in musb_gadget_queue()
1238 request->epnum = musb_ep->current_epnum; in musb_gadget_queue()
1239 request->tx = musb_ep->is_in; in musb_gadget_queue()
1241 map_dma_buffer(request, musb, musb_ep); in musb_gadget_queue()
1250 unmap_dma_buffer(request, musb); in musb_gadget_queue()
1255 list_add_tail(&request->list, &musb_ep->req_list); in musb_gadget_queue()
1258 if (!musb_ep->busy && &request->list == musb_ep->req_list.next) { in musb_gadget_queue()
1261 request); in musb_gadget_queue()
1275 static int musb_gadget_dequeue(struct usb_ep *ep, struct usb_request *request) in musb_gadget_dequeue() argument
1278 struct musb_request *req = to_musb_request(request); in musb_gadget_dequeue()
1284 if (!ep || !request || req->ep != musb_ep) in musb_gadget_dequeue()
1297 request, ep->name); in musb_gadget_dequeue()
1304 musb_g_giveback(musb_ep, request, -ECONNRESET); in musb_gadget_dequeue()
1316 musb_g_giveback(musb_ep, request, -ECONNRESET); in musb_gadget_dequeue()
1321 musb_g_giveback(musb_ep, request, -ECONNRESET); in musb_gadget_dequeue()
1344 struct musb_request *request; in musb_gadget_set_halt() local
1360 request = next_request(musb_ep); in musb_gadget_set_halt()
1362 if (request) { in musb_gadget_set_halt()
1408 if (!musb_ep->busy && !value && request) { in musb_gadget_set_halt()
1410 musb_ep_restart(musb, request); in musb_gadget_set_halt()