Lines Matching refs:req

46 	struct usb_request req;  member
211 static int fotg210_dma(struct fotg210_ep *ep, struct fotg210_request *req) in fotg210_dma() argument
216 uint8_t *buf = req->req.buf + req->req.actual; in fotg210_dma()
217 uint32_t len = req->req.length - req->req.actual; in fotg210_dma()
234 req->req.status = ret; in fotg210_dma()
305 req->req.status = ret; in fotg210_dma()
307 req->req.actual += len; in fotg210_dma()
325 struct usb_ctrlrequest *req = (struct usb_ctrlrequest *)tmp; in fotg210_setup() local
360 if (req->bRequestType & USB_DIR_IN) in fotg210_setup()
367 if ((req->bRequestType & USB_TYPE_MASK) == USB_TYPE_STANDARD) { in fotg210_setup()
368 switch (req->bRequest) { in fotg210_setup()
370 debug("fotg210: set_cfg(%d)\n", req->wValue & 0x00FF); in fotg210_setup()
371 if (!(req->wValue & 0x00FF)) { in fotg210_setup()
383 debug("fotg210: set_addr(0x%04X)\n", req->wValue); in fotg210_setup()
385 chip->addr = req->wValue & DEVADDR_ADDR_MASK; in fotg210_setup()
392 req->bRequestType & 0x03, req->wValue); in fotg210_setup()
393 switch (req->wValue) { in fotg210_setup()
395 ep_reset(chip, req->wIndex); in fotg210_setup()
408 req->wValue, req->wIndex & 0xf); in fotg210_setup()
409 switch (req->wValue) { in fotg210_setup()
411 id = req->wIndex & 0xf; in fotg210_setup()
442 if (chip->driver->setup(&chip->gadget, req) < 0) in fotg210_setup()
473 struct fotg210_request *req; in fotg210_recv() local
486 req = list_first_entry(&ep->queue, struct fotg210_request, queue); in fotg210_recv()
487 len = fotg210_dma(ep, req); in fotg210_recv()
488 if (len < ep->ep.maxpacket || req->req.length <= req->req.actual) { in fotg210_recv()
489 list_del_init(&req->queue); in fotg210_recv()
490 if (req->req.complete) in fotg210_recv()
491 req->req.complete(&ep->ep, &req->req); in fotg210_recv()
567 struct fotg210_request *req = malloc(sizeof(*req)); in fotg210_ep_alloc_request() local
569 if (req) { in fotg210_ep_alloc_request()
570 memset(req, 0, sizeof(*req)); in fotg210_ep_alloc_request()
571 INIT_LIST_HEAD(&req->queue); in fotg210_ep_alloc_request()
573 return &req->req; in fotg210_ep_alloc_request()
579 struct fotg210_request *req; in fotg210_ep_free_request() local
581 req = container_of(_req, struct fotg210_request, req); in fotg210_ep_free_request()
582 free(req); in fotg210_ep_free_request()
591 struct fotg210_request *req; in fotg210_ep_queue() local
593 req = container_of(_req, struct fotg210_request, req); in fotg210_ep_queue()
595 || !list_empty(&req->queue)) { in fotg210_ep_queue()
605 req->req.actual = 0; in fotg210_ep_queue()
606 req->req.status = -EINPROGRESS; in fotg210_ep_queue()
608 if (req->req.length == 0) { in fotg210_ep_queue()
609 req->req.status = 0; in fotg210_ep_queue()
610 if (req->req.complete) in fotg210_ep_queue()
611 req->req.complete(&ep->ep, &req->req); in fotg210_ep_queue()
617 int len = fotg210_dma(ep, req); in fotg210_ep_queue()
622 } while (req->req.length > req->req.actual); in fotg210_ep_queue()
626 int len = fotg210_dma(ep, req); in fotg210_ep_queue()
629 } while (req->req.length > req->req.actual); in fotg210_ep_queue()
631 list_add_tail(&req->queue, &ep->queue); in fotg210_ep_queue()
638 if (req->req.complete) in fotg210_ep_queue()
639 req->req.complete(&ep->ep, &req->req); in fotg210_ep_queue()
648 struct fotg210_request *req; in fotg210_ep_dequeue() local
651 list_for_each_entry(req, &ep->queue, queue) { in fotg210_ep_dequeue()
652 if (&req->req == _req) in fotg210_ep_dequeue()
655 if (&req->req != _req) in fotg210_ep_dequeue()
659 list_del_init(&req->queue); in fotg210_ep_dequeue()
662 if (req->req.status == -EINPROGRESS) { in fotg210_ep_dequeue()
663 req->req.status = -ECONNRESET; in fotg210_ep_dequeue()
664 if (req->req.complete) in fotg210_ep_dequeue()
665 req->req.complete(_ep, &req->req); in fotg210_ep_dequeue()