Lines Matching refs:req

140 	struct pxa27x_request *req;
158 list_for_each_entry(req, &ep->queue, queue) {
160 &req->req, req->req.actual,
161 req->req.length, req->req.buf);
576 struct pxa27x_request *req;
578 req = kzalloc(sizeof *req, gfp_flags);
579 if (!req)
582 INIT_LIST_HEAD(&req->queue);
583 req->in_use = 0;
584 req->udc_usb_ep = container_of(_ep, struct udc_usb_ep, usb_ep);
586 return &req->req;
598 struct pxa27x_request *req;
600 req = container_of(_req, struct pxa27x_request, req);
601 WARN_ON(!list_empty(&req->queue));
602 kfree(req);
608 * @req: usb request
615 static void ep_add_request(struct pxa_ep *ep, struct pxa27x_request *req)
617 if (unlikely(!req))
619 ep_vdbg(ep, "req:%p, lg=%d, udccsr=0x%03x\n", req,
620 req->req.length, udc_ep_readl(ep, UDCCSR));
622 req->in_use = 1;
623 list_add_tail(&req->queue, &ep->queue);
630 * @req: usb request
638 static void ep_del_request(struct pxa_ep *ep, struct pxa27x_request *req)
640 if (unlikely(!req))
642 ep_vdbg(ep, "req:%p, lg=%d, udccsr=0x%03x\n", req,
643 req->req.length, udc_ep_readl(ep, UDCCSR));
645 list_del_init(&req->queue);
646 req->in_use = 0;
654 * @req: pxa request
662 static void req_done(struct pxa_ep *ep, struct pxa27x_request *req, int status,
667 ep_del_request(ep, req);
668 if (likely(req->req.status == -EINPROGRESS))
669 req->req.status = status;
671 status = req->req.status;
674 ep_dbg(ep, "complete req %p stat %d len %u/%u\n",
675 &req->req, status,
676 req->req.actual, req->req.length);
681 usb_gadget_giveback_request(&req->udc_usb_ep->usb_ep, &req->req);
690 * @req: pxa request
697 static void ep_end_out_req(struct pxa_ep *ep, struct pxa27x_request *req,
701 req_done(ep, req, 0, pflags);
707 * @req: pxa request
715 static void ep0_end_out_req(struct pxa_ep *ep, struct pxa27x_request *req,
719 ep_end_out_req(ep, req, pflags);
726 * @req: pxa request
733 static void ep_end_in_req(struct pxa_ep *ep, struct pxa27x_request *req,
737 req_done(ep, req, 0, pflags);
743 * @req: pxa request
751 static void ep0_end_in_req(struct pxa_ep *ep, struct pxa27x_request *req,
755 ep_end_in_req(ep, req, pflags);
770 struct pxa27x_request *req;
775 req = list_entry(ep->queue.next, struct pxa27x_request, queue);
776 req_done(ep, req, status, &flags);
784 * @req: usb request
792 static int read_packet(struct pxa_ep *ep, struct pxa27x_request *req)
798 bufferspace = req->req.length - req->req.actual;
800 buf = (u32 *)(req->req.buf + req->req.actual);
810 req->req.actual += count;
820 * @req: usb request
829 static int write_packet(struct pxa_ep *ep, struct pxa27x_request *req,
836 buf = (u32 *)(req->req.buf + req->req.actual);
839 length = min(req->req.length - req->req.actual, max);
840 req->req.actual += length;
860 * @req: usb request
871 static int read_fifo(struct pxa_ep *ep, struct pxa27x_request *req)
876 count = read_packet(ep, req);
880 ep_dbg(ep, "read udccsr:%03x, count:%d bytes%s req %p %d/%d\n",
882 &req->req, req->req.actual, req->req.length);
885 if (is_short || req->req.actual == req->req.length) {
897 * @req: pxa usb request
906 static int write_fifo(struct pxa_ep *ep, struct pxa27x_request *req)
926 count = write_packet(ep, req, max);
935 if (likely(req->req.length > req->req.actual)
936 || req->req.zero)
954 ep_dbg(ep, "wrote count:%d bytes%s%s, left:%d req=%p\n",
956 req->req.length - req->req.actual, &req->req);
964 * @req: pxa usb request
972 static int read_ep0_fifo(struct pxa_ep *ep, struct pxa27x_request *req)
977 count = read_packet(ep, req);
982 ep_dbg(ep, "read udccsr:%03x, count:%d bytes%s req %p %d/%d\n",
984 &req->req, req->req.actual, req->req.length);
986 if (is_short || req->req.actual >= req->req.length) {
998 * @req: request
1010 static int write_ep0_fifo(struct pxa_ep *ep, struct pxa27x_request *req)
1015 count = write_packet(ep, req, EP0_FIFO_SIZE);
1025 ep_dbg(ep, "in %d bytes%s%s, %d left, req=%p, udccsr0=0x%03x\n",
1027 req->req.length - req->req.actual,
1028 &req->req, udc_ep_readl(ep, UDCCSR));
1050 struct pxa27x_request *req;
1058 req = container_of(_req, struct pxa27x_request, req);
1081 && req->req.length > ep->fifo_size))
1088 ep_dbg(ep, "queue req %p(first=%s), len %d buf %p\n",
1098 if (req->in_use) {
1099 ep_err(ep, "refusing to queue req %p (already queued)\n", req);
1107 ep_add_request(ep, req);
1114 ep_end_in_req(ep, req, NULL);
1119 ep_del_request(ep, req);
1126 if (write_ep0_fifo(ep, req))
1127 ep0_end_in_req(ep, req, NULL);
1131 if (read_ep0_fifo(ep, req))
1132 ep0_end_out_req(ep, req, NULL);
1137 ep_del_request(ep, req);
1164 struct pxa27x_request *req;
1178 list_for_each_entry(req, &ep->queue, queue) {
1179 if (&req->req == _req) {
1187 req_done(ep, req, -ECONNRESET, NULL);
1813 * @req: control request
1816 struct pxa27x_request *req)
1935 struct pxa27x_request *req = NULL;
1939 req = list_entry(ep->queue.next, struct pxa27x_request, queue);
1942 ep_dbg(ep, "state=%s, req=%p, udccsr0=0x%03x, udcbcr=%d, irq_msk=%x\n",
1943 EP0_STNAME(udc), req, udccsr0, udc_ep_readl(ep, UDCBCR),
1970 handle_ep0_ctrl_req(udc, req);
1975 if (req && !ep_is_full(ep))
1976 completed = write_ep0_fifo(ep, req);
1978 ep0_end_in_req(ep, req, NULL);
1981 if (epout_has_pkt(ep) && req)
1982 completed = read_ep0_fifo(ep, req);
1984 ep0_end_out_req(ep, req, NULL);
2018 struct pxa27x_request *req;
2035 req = list_entry(ep->queue.next,
2038 req = NULL;
2040 ep_dbg(ep, "req:%p, udccsr 0x%03x loop=%d\n",
2041 req, udccsr, loop++);
2046 if (!req)
2051 completed = write_fifo(ep, req);
2054 completed = read_fifo(ep, req);
2059 ep_end_in_req(ep, req, &flags);
2061 ep_end_out_req(ep, req, &flags);
2080 struct usb_ctrlrequest req ;
2088 req.bRequestType = 0;
2089 req.bRequest = USB_REQ_SET_CONFIGURATION;
2090 req.wValue = config;
2091 req.wIndex = 0;
2092 req.wLength = 0;
2095 udc->driver->setup(&udc->gadget, &req);
2110 struct usb_ctrlrequest req;
2117 req.bRequestType = USB_RECIP_INTERFACE;
2118 req.bRequest = USB_REQ_SET_INTERFACE;
2119 req.wValue = alt;
2120 req.wIndex = iface;
2121 req.wLength = 0;
2124 udc->driver->setup(&udc->gadget, &req);