Lines Matching refs:req

36 static void done(struct fusb300_ep *ep, struct fusb300_request *req,
254 struct fusb300_request *req; in fusb300_disable() local
262 req = list_entry(ep->queue.next, struct fusb300_request, queue); in fusb300_disable()
264 done(ep, req, -ECONNRESET); in fusb300_disable()
274 struct fusb300_request *req; in fusb300_alloc_request() local
276 req = kzalloc(sizeof(struct fusb300_request), gfp_flags); in fusb300_alloc_request()
277 if (!req) in fusb300_alloc_request()
279 INIT_LIST_HEAD(&req->queue); in fusb300_alloc_request()
281 return &req->req; in fusb300_alloc_request()
286 struct fusb300_request *req; in fusb300_free_request() local
288 req = container_of(_req, struct fusb300_request, req); in fusb300_free_request()
289 kfree(req); in fusb300_free_request()
334 struct fusb300_request *req) in fusb300_wrcxf() argument
340 u32 length = req->req.length - req->req.actual; in fusb300_wrcxf()
342 tmp = req->req.buf + req->req.actual; in fusb300_wrcxf()
352 req->req.actual += SS_CTL_MAX_PACKET_SIZE; in fusb300_wrcxf()
381 req->req.actual += length; in fusb300_wrcxf()
402 static void ep0_queue(struct fusb300_ep *ep, struct fusb300_request *req) in ep0_queue() argument
405 if (req->req.length) { in ep0_queue()
406 fusb300_wrcxf(ep, req); in ep0_queue()
409 __func__, req->req.length); in ep0_queue()
410 if ((req->req.length == req->req.actual) || in ep0_queue()
411 (req->req.actual < ep->ep.maxpacket)) in ep0_queue()
412 done(ep, req, 0); in ep0_queue()
414 if (!req->req.length) in ep0_queue()
415 done(ep, req, 0); in ep0_queue()
426 struct fusb300_request *req; in fusb300_queue() local
431 req = container_of(_req, struct fusb300_request, req); in fusb300_queue()
441 list_add_tail(&req->queue, &ep->queue); in fusb300_queue()
443 req->req.actual = 0; in fusb300_queue()
444 req->req.status = -EINPROGRESS; in fusb300_queue()
447 ep0_queue(ep, req); in fusb300_queue()
459 struct fusb300_request *req; in fusb300_dequeue() local
463 req = container_of(_req, struct fusb300_request, req); in fusb300_dequeue()
467 done(ep, req, -ECONNRESET); in fusb300_dequeue()
604 struct fusb300_request *req, in fusb300_rdfifo() argument
612 tmp = req->req.buf + req->req.actual; in fusb300_rdfifo()
613 req->req.actual += length; in fusb300_rdfifo()
615 if (req->req.actual > req->req.length) in fusb300_rdfifo()
867 static void done(struct fusb300_ep *ep, struct fusb300_request *req, in done() argument
870 list_del_init(&req->queue); in done()
874 req->req.status = -ESHUTDOWN; in done()
876 req->req.status = status; in done()
879 usb_gadget_giveback_request(&ep->ep, &req->req); in done()
942 struct fusb300_request *req) in fusb300_set_idma() argument
947 &req->req, DMA_TO_DEVICE); in fusb300_set_idma()
954 fusb300_fill_idma_prdtbl(ep, req->req.dma, req->req.length); in fusb300_set_idma()
959 &req->req, DMA_TO_DEVICE); in fusb300_set_idma()
964 struct fusb300_request *req = list_entry(ep->queue.next, in in_ep_fifo_handler() local
967 if (req->req.length) in in_ep_fifo_handler()
968 fusb300_set_idma(ep, req); in in_ep_fifo_handler()
969 done(ep, req, 0); in in_ep_fifo_handler()
975 struct fusb300_request *req = list_entry(ep->queue.next, in out_ep_fifo_handler() local
980 fusb300_rdfifo(ep, req, length); in out_ep_fifo_handler()
983 if ((req->req.length == req->req.actual) || (length < ep->ep.maxpacket)) in out_ep_fifo_handler()
984 done(ep, req, 0); in out_ep_fifo_handler()
1015 struct fusb300_request *req; in fusb300_ep0out() local
1017 req = list_first_entry(&ep->queue, in fusb300_ep0out()
1019 if (req->req.length) in fusb300_ep0out()
1020 fusb300_rdcxf(ep->fusb300, req->req.buf, in fusb300_ep0out()
1021 req->req.length); in fusb300_ep0out()
1022 done(ep, req, 0); in fusb300_ep0out()
1032 struct fusb300_request *req; in fusb300_ep0in() local
1036 req = list_entry(ep->queue.next, in fusb300_ep0in()
1038 if (req->req.length) in fusb300_ep0in()
1039 fusb300_wrcxf(ep, req); in fusb300_ep0in()
1040 if ((req->req.length - req->req.actual) < ep->ep.maxpacket) in fusb300_ep0in()
1041 done(ep, req, 0); in fusb300_ep0in()