Lines Matching refs:req

44 	struct usb_request req;  member
209 static int fotg210_dma(struct fotg210_ep *ep, struct fotg210_request *req) in fotg210_dma() argument
214 uint8_t *buf = req->req.buf + req->req.actual; in fotg210_dma()
215 uint32_t len = req->req.length - req->req.actual; in fotg210_dma()
232 req->req.status = ret; in fotg210_dma()
303 req->req.status = ret; in fotg210_dma()
305 req->req.actual += len; in fotg210_dma()
323 struct usb_ctrlrequest *req = (struct usb_ctrlrequest *)tmp; in fotg210_setup() local
358 if (req->bRequestType & USB_DIR_IN) in fotg210_setup()
365 if ((req->bRequestType & USB_TYPE_MASK) == USB_TYPE_STANDARD) { in fotg210_setup()
366 switch (req->bRequest) { in fotg210_setup()
368 debug("fotg210: set_cfg(%d)\n", req->wValue & 0x00FF); in fotg210_setup()
369 if (!(req->wValue & 0x00FF)) { in fotg210_setup()
381 debug("fotg210: set_addr(0x%04X)\n", req->wValue); in fotg210_setup()
383 chip->addr = req->wValue & DEVADDR_ADDR_MASK; in fotg210_setup()
390 req->bRequestType & 0x03, req->wValue); in fotg210_setup()
391 switch (req->wValue) { in fotg210_setup()
393 ep_reset(chip, req->wIndex); in fotg210_setup()
406 req->wValue, req->wIndex & 0xf); in fotg210_setup()
407 switch (req->wValue) { in fotg210_setup()
409 id = req->wIndex & 0xf; in fotg210_setup()
440 if (chip->driver->setup(&chip->gadget, req) < 0) in fotg210_setup()
471 struct fotg210_request *req; in fotg210_recv() local
484 req = list_first_entry(&ep->queue, struct fotg210_request, queue); in fotg210_recv()
485 len = fotg210_dma(ep, req); in fotg210_recv()
486 if (len < ep->ep.maxpacket || req->req.length <= req->req.actual) { in fotg210_recv()
487 list_del_init(&req->queue); in fotg210_recv()
488 if (req->req.complete) in fotg210_recv()
489 req->req.complete(&ep->ep, &req->req); in fotg210_recv()
565 struct fotg210_request *req = malloc(sizeof(*req)); in fotg210_ep_alloc_request() local
567 if (req) { in fotg210_ep_alloc_request()
568 memset(req, 0, sizeof(*req)); in fotg210_ep_alloc_request()
569 INIT_LIST_HEAD(&req->queue); in fotg210_ep_alloc_request()
571 return &req->req; in fotg210_ep_alloc_request()
577 struct fotg210_request *req; in fotg210_ep_free_request() local
579 req = container_of(_req, struct fotg210_request, req); in fotg210_ep_free_request()
580 free(req); in fotg210_ep_free_request()
589 struct fotg210_request *req; in fotg210_ep_queue() local
591 req = container_of(_req, struct fotg210_request, req); in fotg210_ep_queue()
593 || !list_empty(&req->queue)) { in fotg210_ep_queue()
603 req->req.actual = 0; in fotg210_ep_queue()
604 req->req.status = -EINPROGRESS; in fotg210_ep_queue()
606 if (req->req.length == 0) { in fotg210_ep_queue()
607 req->req.status = 0; in fotg210_ep_queue()
608 if (req->req.complete) in fotg210_ep_queue()
609 req->req.complete(&ep->ep, &req->req); in fotg210_ep_queue()
615 int len = fotg210_dma(ep, req); in fotg210_ep_queue()
620 } while (req->req.length > req->req.actual); in fotg210_ep_queue()
624 int len = fotg210_dma(ep, req); in fotg210_ep_queue()
627 } while (req->req.length > req->req.actual); in fotg210_ep_queue()
629 list_add_tail(&req->queue, &ep->queue); in fotg210_ep_queue()
636 if (req->req.complete) in fotg210_ep_queue()
637 req->req.complete(&ep->ep, &req->req); in fotg210_ep_queue()
646 struct fotg210_request *req; in fotg210_ep_dequeue() local
649 list_for_each_entry(req, &ep->queue, queue) { in fotg210_ep_dequeue()
650 if (&req->req == _req) in fotg210_ep_dequeue()
653 if (&req->req != _req) in fotg210_ep_dequeue()
657 list_del_init(&req->queue); in fotg210_ep_dequeue()
660 if (req->req.status == -EINPROGRESS) { in fotg210_ep_dequeue()
661 req->req.status = -ECONNRESET; in fotg210_ep_dequeue()
662 if (req->req.complete) in fotg210_ep_dequeue()
663 req->req.complete(_ep, &req->req); in fotg210_ep_dequeue()