Lines Matching refs:req

30 	struct usb_request req;  member
46 static inline struct isp1760_request *req_to_udc_req(struct usb_request *req) in req_to_udc_req() argument
48 return container_of(req, struct isp1760_request, req); in req_to_udc_req()
127 struct isp1760_request *req, in isp1760_udc_request_complete() argument
134 req, status); in isp1760_udc_request_complete()
136 req->ep = NULL; in isp1760_udc_request_complete()
137 req->req.status = status; in isp1760_udc_request_complete()
138 req->req.complete(&ep->ep, &req->req); in isp1760_udc_request_complete()
180 struct isp1760_request *req) in isp1760_udc_receive() argument
191 __func__, len, req->req.actual, req->req.length); in isp1760_udc_receive()
193 len = min(len, req->req.length - req->req.actual); in isp1760_udc_receive()
208 buf = req->req.buf + req->req.actual; in isp1760_udc_receive()
219 req->req.actual += len; in isp1760_udc_receive()
228 __func__, req, req->req.actual, req->req.length, ep->maxpacket, in isp1760_udc_receive()
237 if (req->req.actual == req->req.length || len < ep->maxpacket) { in isp1760_udc_receive()
238 list_del(&req->queue); in isp1760_udc_receive()
246 struct isp1760_request *req) in isp1760_udc_transmit() argument
249 u32 *buf = req->req.buf + req->req.actual; in isp1760_udc_transmit()
252 req->packet_size = min(req->req.length - req->req.actual, in isp1760_udc_transmit()
256 __func__, req->packet_size, req->req.actual, in isp1760_udc_transmit()
257 req->req.length); in isp1760_udc_transmit()
261 if (req->packet_size) in isp1760_udc_transmit()
262 isp1760_udc_write(udc, DC_BUFLEN, req->packet_size); in isp1760_udc_transmit()
270 for (i = req->packet_size; i > 2; i -= 4, ++buf) in isp1760_udc_transmit()
277 if (!req->packet_size) in isp1760_udc_transmit()
284 struct isp1760_request *req; in isp1760_ep_rx_ready() local
311 req = list_first_entry(&ep->queue, struct isp1760_request, in isp1760_ep_rx_ready()
313 complete = isp1760_udc_receive(ep, req); in isp1760_ep_rx_ready()
318 isp1760_udc_request_complete(ep, req, 0); in isp1760_ep_rx_ready()
325 struct isp1760_request *req; in isp1760_ep_tx_complete() local
355 req = list_first_entry(&ep->queue, struct isp1760_request, in isp1760_ep_tx_complete()
357 req->req.actual += req->packet_size; in isp1760_ep_tx_complete()
359 need_zlp = req->req.actual == req->req.length && in isp1760_ep_tx_complete()
360 !(req->req.length % ep->maxpacket) && in isp1760_ep_tx_complete()
361 req->packet_size && req->req.zero; in isp1760_ep_tx_complete()
365 req, req->req.actual, req->req.length, ep->maxpacket, in isp1760_ep_tx_complete()
366 req->packet_size, req->req.zero, need_zlp); in isp1760_ep_tx_complete()
372 if (req->req.actual == req->req.length && !need_zlp) { in isp1760_ep_tx_complete()
373 complete = req; in isp1760_ep_tx_complete()
374 list_del(&req->queue); in isp1760_ep_tx_complete()
380 req = list_first_entry(&ep->queue, in isp1760_ep_tx_complete()
383 req = NULL; in isp1760_ep_tx_complete()
392 if (req) in isp1760_ep_tx_complete()
393 isp1760_udc_transmit(ep, req); in isp1760_ep_tx_complete()
436 struct isp1760_request *req; in __isp1760_udc_set_halt() local
438 req = list_first_entry(&ep->queue, in __isp1760_udc_set_halt()
440 isp1760_udc_transmit(ep, req); in __isp1760_udc_set_halt()
454 const struct usb_ctrlrequest *req) in isp1760_udc_get_status() argument
459 if (req->wLength != cpu_to_le16(2) || req->wValue != cpu_to_le16(0)) in isp1760_udc_get_status()
462 switch (req->bRequestType) { in isp1760_udc_get_status()
472 ep = isp1760_udc_find_ep(udc, le16_to_cpu(req->wIndex)); in isp1760_udc_get_status()
524 struct usb_ctrlrequest *req) in isp1760_ep0_setup_standard() argument
528 switch (req->bRequest) { in isp1760_ep0_setup_standard()
530 return isp1760_udc_get_status(udc, req); in isp1760_ep0_setup_standard()
533 switch (req->bRequestType) { in isp1760_ep0_setup_standard()
540 u16 index = le16_to_cpu(req->wIndex); in isp1760_ep0_setup_standard()
543 if (req->wLength != cpu_to_le16(0) || in isp1760_ep0_setup_standard()
544 req->wValue != cpu_to_le16(USB_ENDPOINT_HALT)) in isp1760_ep0_setup_standard()
577 switch (req->bRequestType) { in isp1760_ep0_setup_standard()
584 u16 index = le16_to_cpu(req->wIndex); in isp1760_ep0_setup_standard()
587 if (req->wLength != cpu_to_le16(0) || in isp1760_ep0_setup_standard()
588 req->wValue != cpu_to_le16(USB_ENDPOINT_HALT)) in isp1760_ep0_setup_standard()
612 if (req->bRequestType != (USB_DIR_OUT | USB_RECIP_DEVICE)) in isp1760_ep0_setup_standard()
615 return isp1760_udc_set_address(udc, le16_to_cpu(req->wValue)); in isp1760_ep0_setup_standard()
618 if (req->bRequestType != (USB_DIR_OUT | USB_RECIP_DEVICE)) in isp1760_ep0_setup_standard()
625 stall = udc->driver->setup(&udc->gadget, req) < 0; in isp1760_ep0_setup_standard()
629 usb_gadget_set_state(&udc->gadget, req->wValue ? in isp1760_ep0_setup_standard()
641 return udc->driver->setup(&udc->gadget, req) < 0; in isp1760_ep0_setup_standard()
650 } req; in isp1760_ep0_setup() local
659 if (count != sizeof(req)) { in isp1760_ep0_setup()
669 req.data[0] = isp1760_udc_read(udc, DC_DATAPORT); in isp1760_ep0_setup()
670 req.data[1] = isp1760_udc_read(udc, DC_DATAPORT); in isp1760_ep0_setup()
679 if (!req.r.wLength) in isp1760_ep0_setup()
681 else if (req.r.bRequestType & USB_DIR_IN) in isp1760_ep0_setup()
686 udc->ep0_dir = req.r.bRequestType & USB_DIR_IN; in isp1760_ep0_setup()
687 udc->ep0_length = le16_to_cpu(req.r.wLength); in isp1760_ep0_setup()
693 __func__, req.r.bRequestType, req.r.bRequest, in isp1760_ep0_setup()
694 le16_to_cpu(req.r.wValue), le16_to_cpu(req.r.wIndex), in isp1760_ep0_setup()
695 le16_to_cpu(req.r.wLength)); in isp1760_ep0_setup()
697 if ((req.r.bRequestType & USB_TYPE_MASK) == USB_TYPE_STANDARD) in isp1760_ep0_setup()
698 stall = isp1760_ep0_setup_standard(udc, &req.r); in isp1760_ep0_setup()
700 stall = udc->driver->setup(&udc->gadget, &req.r) < 0; in isp1760_ep0_setup()
775 struct isp1760_request *req, *nreq; in isp1760_ep_disable() local
801 list_for_each_entry_safe(req, nreq, &req_list, queue) { in isp1760_ep_disable()
802 list_del(&req->queue); in isp1760_ep_disable()
803 isp1760_udc_request_complete(uep, req, -ESHUTDOWN); in isp1760_ep_disable()
812 struct isp1760_request *req; in isp1760_ep_alloc_request() local
814 req = kzalloc(sizeof(*req), gfp_flags); in isp1760_ep_alloc_request()
816 return &req->req; in isp1760_ep_alloc_request()
821 struct isp1760_request *req = req_to_udc_req(_req); in isp1760_ep_free_request() local
823 kfree(req); in isp1760_ep_free_request()
829 struct isp1760_request *req = req_to_udc_req(_req); in isp1760_ep_queue() local
845 req->ep = uep; in isp1760_ep_queue()
852 __func__, _req->length, req); in isp1760_ep_queue()
860 __func__, req); in isp1760_ep_queue()
862 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
863 isp1760_udc_transmit(uep, req); in isp1760_ep_queue()
867 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
885 list_add_tail(&req->queue, &uep->queue); in isp1760_ep_queue()
887 isp1760_udc_transmit(uep, req); in isp1760_ep_queue()
889 complete = isp1760_udc_receive(uep, req); in isp1760_ep_queue()
899 req->ep = NULL; in isp1760_ep_queue()
904 isp1760_udc_request_complete(uep, req, 0); in isp1760_ep_queue()
911 struct isp1760_request *req = req_to_udc_req(_req); in isp1760_ep_dequeue() local
920 if (req->ep != uep) in isp1760_ep_dequeue()
921 req = NULL; in isp1760_ep_dequeue()
923 list_del(&req->queue); in isp1760_ep_dequeue()
927 if (!req) in isp1760_ep_dequeue()
930 isp1760_udc_request_complete(uep, req, -ECONNRESET); in isp1760_ep_dequeue()