Lines Matching refs:req

142 	struct pxa27x_request *req;  in queues_dbg_show()  local
160 list_for_each_entry(req, &ep->queue, queue) { in queues_dbg_show()
162 &req->req, req->req.actual, in queues_dbg_show()
163 req->req.length, req->req.buf); in queues_dbg_show()
647 struct pxa27x_request *req; in pxa_ep_alloc_request() local
649 req = kzalloc(sizeof *req, gfp_flags); in pxa_ep_alloc_request()
650 if (!req) in pxa_ep_alloc_request()
653 INIT_LIST_HEAD(&req->queue); in pxa_ep_alloc_request()
654 req->in_use = 0; in pxa_ep_alloc_request()
655 req->udc_usb_ep = container_of(_ep, struct udc_usb_ep, usb_ep); in pxa_ep_alloc_request()
657 return &req->req; in pxa_ep_alloc_request()
669 struct pxa27x_request *req; in pxa_ep_free_request() local
671 req = container_of(_req, struct pxa27x_request, req); in pxa_ep_free_request()
672 WARN_ON(!list_empty(&req->queue)); in pxa_ep_free_request()
673 kfree(req); in pxa_ep_free_request()
686 static void ep_add_request(struct pxa_ep *ep, struct pxa27x_request *req) in ep_add_request() argument
688 if (unlikely(!req)) in ep_add_request()
690 ep_vdbg(ep, "req:%p, lg=%d, udccsr=0x%03x\n", req, in ep_add_request()
691 req->req.length, udc_ep_readl(ep, UDCCSR)); in ep_add_request()
693 req->in_use = 1; in ep_add_request()
694 list_add_tail(&req->queue, &ep->queue); in ep_add_request()
709 static void ep_del_request(struct pxa_ep *ep, struct pxa27x_request *req) in ep_del_request() argument
711 if (unlikely(!req)) in ep_del_request()
713 ep_vdbg(ep, "req:%p, lg=%d, udccsr=0x%03x\n", req, in ep_del_request()
714 req->req.length, udc_ep_readl(ep, UDCCSR)); in ep_del_request()
716 list_del_init(&req->queue); in ep_del_request()
717 req->in_use = 0; in ep_del_request()
733 static void req_done(struct pxa_ep *ep, struct pxa27x_request *req, int status, in req_done() argument
738 ep_del_request(ep, req); in req_done()
739 if (likely(req->req.status == -EINPROGRESS)) in req_done()
740 req->req.status = status; in req_done()
742 status = req->req.status; in req_done()
746 &req->req, status, in req_done()
747 req->req.actual, req->req.length); in req_done()
752 usb_gadget_giveback_request(&req->udc_usb_ep->usb_ep, &req->req); in req_done()
768 static void ep_end_out_req(struct pxa_ep *ep, struct pxa27x_request *req, in ep_end_out_req() argument
772 req_done(ep, req, 0, pflags); in ep_end_out_req()
786 static void ep0_end_out_req(struct pxa_ep *ep, struct pxa27x_request *req, in ep0_end_out_req() argument
790 ep_end_out_req(ep, req, pflags); in ep0_end_out_req()
804 static void ep_end_in_req(struct pxa_ep *ep, struct pxa27x_request *req, in ep_end_in_req() argument
808 req_done(ep, req, 0, pflags); in ep_end_in_req()
822 static void ep0_end_in_req(struct pxa_ep *ep, struct pxa27x_request *req, in ep0_end_in_req() argument
826 ep_end_in_req(ep, req, pflags); in ep0_end_in_req()
841 struct pxa27x_request *req; in nuke() local
846 req = list_entry(ep->queue.next, struct pxa27x_request, queue); in nuke()
847 req_done(ep, req, status, &flags); in nuke()
863 static int read_packet(struct pxa_ep *ep, struct pxa27x_request *req) in read_packet() argument
869 bufferspace = req->req.length - req->req.actual; in read_packet()
871 buf = (u32 *)(req->req.buf + req->req.actual); in read_packet()
881 req->req.actual += count; in read_packet()
900 static int write_packet(struct pxa_ep *ep, struct pxa27x_request *req, in write_packet() argument
907 buf = (u32 *)(req->req.buf + req->req.actual); in write_packet()
910 length = min(req->req.length - req->req.actual, max); in write_packet()
911 req->req.actual += length; in write_packet()
942 static int read_fifo(struct pxa_ep *ep, struct pxa27x_request *req) in read_fifo() argument
947 count = read_packet(ep, req); in read_fifo()
953 &req->req, req->req.actual, req->req.length); in read_fifo()
956 if (is_short || req->req.actual == req->req.length) { in read_fifo()
977 static int write_fifo(struct pxa_ep *ep, struct pxa27x_request *req) in write_fifo() argument
999 count = write_packet(ep, req, max); in write_fifo()
1008 if (likely(req->req.length > req->req.actual) in write_fifo()
1009 || req->req.zero) in write_fifo()
1029 req->req.length - req->req.actual, &req->req); in write_fifo()
1045 static int read_ep0_fifo(struct pxa_ep *ep, struct pxa27x_request *req) in read_ep0_fifo() argument
1050 count = read_packet(ep, req); in read_ep0_fifo()
1057 &req->req, req->req.actual, req->req.length); in read_ep0_fifo()
1059 if (is_short || req->req.actual >= req->req.length) { in read_ep0_fifo()
1083 static int write_ep0_fifo(struct pxa_ep *ep, struct pxa27x_request *req) in write_ep0_fifo() argument
1088 count = write_packet(ep, req, EP0_FIFO_SIZE); in write_ep0_fifo()
1100 req->req.length - req->req.actual, in write_ep0_fifo()
1101 &req->req, udc_ep_readl(ep, UDCCSR)); in write_ep0_fifo()
1123 struct pxa27x_request *req; in pxa_ep_queue() local
1131 req = container_of(_req, struct pxa27x_request, req); in pxa_ep_queue()
1155 && req->req.length > ep->fifo_size)) in pxa_ep_queue()
1172 if (req->in_use) { in pxa_ep_queue()
1173 ep_err(ep, "refusing to queue req %p (already queued)\n", req); in pxa_ep_queue()
1181 ep_add_request(ep, req); in pxa_ep_queue()
1188 ep_end_in_req(ep, req, NULL); in pxa_ep_queue()
1193 ep_del_request(ep, req); in pxa_ep_queue()
1200 if (write_ep0_fifo(ep, req)) in pxa_ep_queue()
1201 ep0_end_in_req(ep, req, NULL); in pxa_ep_queue()
1205 if (read_ep0_fifo(ep, req)) in pxa_ep_queue()
1206 ep0_end_out_req(ep, req, NULL); in pxa_ep_queue()
1211 ep_del_request(ep, req); in pxa_ep_queue()
1238 struct pxa27x_request *req; in pxa_ep_dequeue() local
1252 list_for_each_entry(req, &ep->queue, queue) { in pxa_ep_dequeue()
1253 if (&req->req == _req) { in pxa_ep_dequeue()
1261 req_done(ep, req, -ECONNRESET, NULL); in pxa_ep_dequeue()
1866 struct pxa27x_request *req) in handle_ep0_ctrl_req() argument
1985 struct pxa27x_request *req = NULL; in handle_ep0() local
1989 req = list_entry(ep->queue.next, struct pxa27x_request, queue); in handle_ep0()
1993 EP0_STNAME(udc), req, udccsr0, udc_ep_readl(ep, UDCBCR), in handle_ep0()
2020 handle_ep0_ctrl_req(udc, req); in handle_ep0()
2025 if (req && !ep_is_full(ep)) in handle_ep0()
2026 completed = write_ep0_fifo(ep, req); in handle_ep0()
2028 ep0_end_in_req(ep, req, NULL); in handle_ep0()
2031 if (epout_has_pkt(ep) && req) in handle_ep0()
2032 completed = read_ep0_fifo(ep, req); in handle_ep0()
2034 ep0_end_out_req(ep, req, NULL); in handle_ep0()
2068 struct pxa27x_request *req; in handle_ep() local
2085 req = list_entry(ep->queue.next, in handle_ep()
2088 req = NULL; in handle_ep()
2091 req, udccsr, loop++); in handle_ep()
2096 if (!req) in handle_ep()
2101 completed = write_fifo(ep, req); in handle_ep()
2104 completed = read_fifo(ep, req); in handle_ep()
2109 ep_end_in_req(ep, req, &flags); in handle_ep()
2111 ep_end_out_req(ep, req, &flags); in handle_ep()
2130 struct usb_ctrlrequest req ; in pxa27x_change_configuration() local
2138 req.bRequestType = 0; in pxa27x_change_configuration()
2139 req.bRequest = USB_REQ_SET_CONFIGURATION; in pxa27x_change_configuration()
2140 req.wValue = config; in pxa27x_change_configuration()
2141 req.wIndex = 0; in pxa27x_change_configuration()
2142 req.wLength = 0; in pxa27x_change_configuration()
2145 udc->driver->setup(&udc->gadget, &req); in pxa27x_change_configuration()
2160 struct usb_ctrlrequest req; in pxa27x_change_interface() local
2167 req.bRequestType = USB_RECIP_INTERFACE; in pxa27x_change_interface()
2168 req.bRequest = USB_REQ_SET_INTERFACE; in pxa27x_change_interface()
2169 req.wValue = alt; in pxa27x_change_interface()
2170 req.wIndex = iface; in pxa27x_change_interface()
2171 req.wLength = 0; in pxa27x_change_interface()
2174 udc->driver->setup(&udc->gadget, &req); in pxa27x_change_interface()