Lines Matching refs:req
303 struct pxa25x_request *req; in pxa25x_ep_alloc_request() local
305 req = kzalloc(sizeof(*req), gfp_flags); in pxa25x_ep_alloc_request()
306 if (!req) in pxa25x_ep_alloc_request()
309 INIT_LIST_HEAD (&req->queue); in pxa25x_ep_alloc_request()
310 return &req->req; in pxa25x_ep_alloc_request()
320 struct pxa25x_request *req; in pxa25x_ep_free_request() local
322 req = container_of (_req, struct pxa25x_request, req); in pxa25x_ep_free_request()
323 WARN_ON(!list_empty (&req->queue)); in pxa25x_ep_free_request()
324 kfree(req); in pxa25x_ep_free_request()
332 static void done(struct pxa25x_ep *ep, struct pxa25x_request *req, int status) in done() argument
336 list_del_init(&req->queue); in done()
338 if (likely (req->req.status == -EINPROGRESS)) in done()
339 req->req.status = status; in done()
341 status = req->req.status; in done()
345 ep->ep.name, &req->req, status, in done()
346 req->req.actual, req->req.length); in done()
350 req->req.complete(&ep->ep, &req->req); in done()
361 write_packet(volatile u32 *uddr, struct pxa25x_request *req, unsigned max) in write_packet() argument
366 buf = req->req.buf + req->req.actual; in write_packet()
370 length = min(req->req.length - req->req.actual, max); in write_packet()
371 req->req.actual += length; in write_packet()
386 write_fifo (struct pxa25x_ep *ep, struct pxa25x_request *req) in write_fifo() argument
395 count = write_packet(ep->reg_uddr, req, max); in write_fifo()
401 if (likely(req->req.length != req->req.actual) in write_fifo()
402 || req->req.zero) in write_fifo()
413 req->req.length - req->req.actual, req); in write_fifo()
425 done (ep, req, 0); in write_fifo()
453 write_ep0_fifo (struct pxa25x_ep *ep, struct pxa25x_request *req) in write_ep0_fifo() argument
458 count = write_packet(&UDDR0, req, EP0_FIFO_SIZE); in write_ep0_fifo()
465 req->req.length - req->req.actual, req); in write_ep0_fifo()
473 count = req->req.length; in write_ep0_fifo()
474 done (ep, req, 0); in write_ep0_fifo()
513 read_fifo (struct pxa25x_ep *ep, struct pxa25x_request *req) in read_fifo() argument
527 buf = req->req.buf + req->req.actual; in read_fifo()
529 bufferspace = req->req.length - req->req.actual; in read_fifo()
534 req->req.actual += min (count, bufferspace); in read_fifo()
541 req, req->req.actual, req->req.length); in read_fifo()
550 if (req->req.status != -EOVERFLOW) in read_fifo()
553 req->req.status = -EOVERFLOW; in read_fifo()
565 req->req.status = -EHOSTUNREACH; in read_fifo()
571 if (is_short || req->req.actual == req->req.length) { in read_fifo()
572 done (ep, req, 0); in read_fifo()
590 read_ep0_fifo (struct pxa25x_ep *ep, struct pxa25x_request *req) in read_ep0_fifo() argument
595 buf = req->req.buf + req->req.actual; in read_ep0_fifo()
596 bufferspace = req->req.length - req->req.actual; in read_ep0_fifo()
606 if (req->req.status != -EOVERFLOW) in read_ep0_fifo()
608 req->req.status = -EOVERFLOW; in read_ep0_fifo()
611 req->req.actual++; in read_ep0_fifo()
619 if (req->req.actual >= req->req.length) in read_ep0_fifo()
631 struct pxa25x_request *req; in pxa25x_ep_queue() local
636 req = container_of(_req, struct pxa25x_request, req); in pxa25x_ep_queue()
638 || !list_empty(&req->queue))) { in pxa25x_ep_queue()
660 && req->req.length > usb_endpoint_maxp(ep->ep.desc))) in pxa25x_ep_queue()
679 if (write_ep0_fifo(ep, req)) in pxa25x_ep_queue()
680 req = NULL; in pxa25x_ep_queue()
692 done(ep, req, 0); in pxa25x_ep_queue()
700 && read_ep0_fifo(ep, req))) { in pxa25x_ep_queue()
702 done(ep, req, 0); in pxa25x_ep_queue()
703 req = NULL; in pxa25x_ep_queue()
715 && write_fifo(ep, req)) in pxa25x_ep_queue()
716 req = NULL; in pxa25x_ep_queue()
718 && read_fifo(ep, req)) { in pxa25x_ep_queue()
719 req = NULL; in pxa25x_ep_queue()
722 if (likely(req && ep->ep.desc)) in pxa25x_ep_queue()
727 if (likely(req != NULL)) in pxa25x_ep_queue()
728 list_add_tail(&req->queue, &ep->queue); in pxa25x_ep_queue()
740 struct pxa25x_request *req; in nuke() local
744 req = list_entry(ep->queue.next, in nuke()
747 done(ep, req, status); in nuke()
758 struct pxa25x_request *req; in pxa25x_ep_dequeue() local
768 list_for_each_entry (req, &ep->queue, queue) { in pxa25x_ep_dequeue()
769 if (&req->req == _req) in pxa25x_ep_dequeue()
772 if (&req->req != _req) { in pxa25x_ep_dequeue()
777 done(ep, req, -ECONNRESET); in pxa25x_ep_dequeue()
1083 struct pxa25x_request *req; in udc_seq_show() local
1106 list_for_each_entry(req, &ep->queue, queue) { in udc_seq_show()
1109 &req->req, req->req.actual, in udc_seq_show()
1110 req->req.length, req->req.buf); in udc_seq_show()
1403 struct pxa25x_request *req; in handle_ep0() local
1411 req = NULL; in handle_ep0()
1413 req = list_entry(ep->queue.next, struct pxa25x_request, queue); in handle_ep0()
1581 if (req) in handle_ep0()
1582 done(ep, req, 0); in handle_ep0()
1585 if (req) { in handle_ep0()
1587 (void) write_ep0_fifo(ep, req); in handle_ep0()
1593 if (req) { in handle_ep0()
1595 if (read_ep0_fifo(ep, req)) in handle_ep0()
1596 done(ep, req, 0); in handle_ep0()
1601 if (req) in handle_ep0()
1602 done(ep, req, 0); in handle_ep0()
1607 if (req) in handle_ep0()
1608 done(ep, req, 0); in handle_ep0()
1625 struct pxa25x_request *req; in handle_ep() local
1633 req = list_entry(ep->queue.next, in handle_ep()
1636 req = NULL; in handle_ep()
1648 if (req && likely ((udccs & UDCCS_BI_TFS) != 0)) in handle_ep()
1649 completed = write_fifo(ep, req); in handle_ep()
1661 if (likely(req)) { in handle_ep()
1662 completed = read_fifo(ep, req); in handle_ep()