Lines Matching refs:req

364 		u32 mul = hwreq->req.length / hwep->ep.maxpacket;  in add_td_to_list()
366 if (hwreq->req.length == 0 in add_td_to_list()
367 || hwreq->req.length % hwep->ep.maxpacket) in add_td_to_list()
372 temp = (u32) (hwreq->req.dma + hwreq->req.actual); in add_td_to_list()
382 hwreq->req.actual += length; in add_td_to_list()
417 unsigned rest = hwreq->req.length; in _hardware_enqueue()
422 if (hwreq->req.status == -EALREADY) in _hardware_enqueue()
425 hwreq->req.status = -EALREADY; in _hardware_enqueue()
427 ret = usb_gadget_map_request(&ci->gadget, &hwreq->req, hwep->dir); in _hardware_enqueue()
435 if (hwreq->req.dma % PAGE_SIZE) in _hardware_enqueue()
442 unsigned count = min(hwreq->req.length - hwreq->req.actual, in _hardware_enqueue()
448 if (hwreq->req.zero && hwreq->req.length in _hardware_enqueue()
449 && (hwreq->req.length % hwep->ep.maxpacket == 0)) in _hardware_enqueue()
458 if (!hwreq->req.no_interrupt) in _hardware_enqueue()
462 hwreq->req.actual = 0; in _hardware_enqueue()
494 u32 mul = hwreq->req.length / hwep->ep.maxpacket; in _hardware_enqueue()
496 if (hwreq->req.length == 0 in _hardware_enqueue()
497 || hwreq->req.length % hwep->ep.maxpacket) in _hardware_enqueue()
549 unsigned actual = hwreq->req.length; in _hardware_dequeue()
552 if (hwreq->req.status != -EALREADY) in _hardware_dequeue()
555 hwreq->req.status = 0; in _hardware_dequeue()
565 hwreq->req.status = -EALREADY; in _hardware_dequeue()
573 hwreq->req.status = tmptoken & TD_STATUS; in _hardware_dequeue()
574 if ((TD_STATUS_HALTED & hwreq->req.status)) { in _hardware_dequeue()
575 hwreq->req.status = -EPIPE; in _hardware_dequeue()
577 } else if ((TD_STATUS_DT_ERR & hwreq->req.status)) { in _hardware_dequeue()
578 hwreq->req.status = -EPROTO; in _hardware_dequeue()
580 } else if ((TD_STATUS_TR_ERR & hwreq->req.status)) { in _hardware_dequeue()
581 hwreq->req.status = -EILSEQ; in _hardware_dequeue()
587 hwreq->req.status = -EPROTO; in _hardware_dequeue()
603 usb_gadget_unmap_request(&hwep->ci->gadget, &hwreq->req, hwep->dir); in _hardware_dequeue()
605 hwreq->req.actual += actual; in _hardware_dequeue()
607 if (hwreq->req.status) in _hardware_dequeue()
608 return hwreq->req.status; in _hardware_dequeue()
610 return hwreq->req.actual; in _hardware_dequeue()
644 hwreq->req.status = -ESHUTDOWN; in _ep_nuke()
646 if (hwreq->req.complete != NULL) { in _ep_nuke()
648 usb_gadget_giveback_request(&hwep->ep, &hwreq->req); in _ep_nuke()
780 static void isr_get_status_complete(struct usb_ep *ep, struct usb_request *req) in isr_get_status_complete() argument
782 if (ep == NULL || req == NULL) in isr_get_status_complete()
785 kfree(req->buf); in isr_get_status_complete()
786 usb_ep_free_request(ep, req); in isr_get_status_complete()
794 static int _ep_queue(struct usb_ep *ep, struct usb_request *req, in _ep_queue() argument
798 struct ci_hw_req *hwreq = container_of(req, struct ci_hw_req, req); in _ep_queue()
802 if (ep == NULL || req == NULL || hwep->ep.desc == NULL) in _ep_queue()
806 if (req->length) in _ep_queue()
818 hwreq->req.length > (1 + hwep->ep.mult) * hwep->ep.maxpacket) { in _ep_queue()
830 hwreq->req.status = -EINPROGRESS; in _ep_queue()
831 hwreq->req.actual = 0; in _ep_queue()
856 struct usb_request *req = NULL; in isr_get_status_response() local
864 req = usb_ep_alloc_request(&hwep->ep, gfp_flags); in isr_get_status_response()
866 if (req == NULL) in isr_get_status_response()
869 req->complete = isr_get_status_complete; in isr_get_status_response()
870 req->length = 2; in isr_get_status_response()
871 req->buf = kzalloc(req->length, gfp_flags); in isr_get_status_response()
872 if (req->buf == NULL) { in isr_get_status_response()
878 *(u16 *)req->buf = (ci->remote_wakeup << 1) | in isr_get_status_response()
885 *(u16 *)req->buf = hw_ep_get_halt(ci, num, dir); in isr_get_status_response()
889 retval = _ep_queue(&hwep->ep, req, gfp_flags); in isr_get_status_response()
896 kfree(req->buf); in isr_get_status_response()
899 usb_ep_free_request(&hwep->ep, req); in isr_get_status_response()
913 isr_setup_status_complete(struct usb_ep *ep, struct usb_request *req) in isr_setup_status_complete() argument
915 struct ci_hdrc *ci = req->context; in isr_setup_status_complete()
972 if (hwreq->req.complete != NULL) { in isr_tr_complete_low()
975 hwreq->req.length) in isr_tr_complete_low()
977 usb_gadget_giveback_request(&hweptemp->ep, &hwreq->req); in isr_tr_complete_low()
1006 struct usb_ctrlrequest req; in isr_setup_packet_handler() local
1020 memcpy(&req, &hwep->qh.ptr->setup, sizeof(req)); in isr_setup_packet_handler()
1023 type = req.bRequestType; in isr_setup_packet_handler()
1027 switch (req.bRequest) { in isr_setup_packet_handler()
1030 le16_to_cpu(req.wValue) == in isr_setup_packet_handler()
1032 if (req.wLength != 0) in isr_setup_packet_handler()
1034 num = le16_to_cpu(req.wIndex); in isr_setup_packet_handler()
1049 le16_to_cpu(req.wValue) == in isr_setup_packet_handler()
1051 if (req.wLength != 0) in isr_setup_packet_handler()
1064 if (le16_to_cpu(req.wLength) != 2 || in isr_setup_packet_handler()
1065 le16_to_cpu(req.wValue) != 0) in isr_setup_packet_handler()
1067 err = isr_get_status_response(ci, &req); in isr_setup_packet_handler()
1072 if (le16_to_cpu(req.wLength) != 0 || in isr_setup_packet_handler()
1073 le16_to_cpu(req.wIndex) != 0) in isr_setup_packet_handler()
1075 ci->address = (u8)le16_to_cpu(req.wValue); in isr_setup_packet_handler()
1081 le16_to_cpu(req.wValue) == in isr_setup_packet_handler()
1083 if (req.wLength != 0) in isr_setup_packet_handler()
1085 num = le16_to_cpu(req.wIndex); in isr_setup_packet_handler()
1097 if (req.wLength != 0) in isr_setup_packet_handler()
1099 switch (le16_to_cpu(req.wValue)) { in isr_setup_packet_handler()
1105 tmode = le16_to_cpu(req.wIndex) >> 8; in isr_setup_packet_handler()
1140 if (req.wLength == 0) /* no data phase */ in isr_setup_packet_handler()
1144 err = ci->driver->setup(&ci->gadget, &req); in isr_setup_packet_handler()
1323 return (hwreq == NULL) ? NULL : &hwreq->req; in ep_alloc_request()
1331 static void ep_free_request(struct usb_ep *ep, struct usb_request *req) in ep_free_request() argument
1334 struct ci_hw_req *hwreq = container_of(req, struct ci_hw_req, req); in ep_free_request()
1338 if (ep == NULL || req == NULL) { in ep_free_request()
1364 static int ep_queue(struct usb_ep *ep, struct usb_request *req, in ep_queue() argument
1371 if (ep == NULL || req == NULL || hwep->ep.desc == NULL) in ep_queue()
1375 retval = _ep_queue(ep, req, gfp_flags); in ep_queue()
1385 static int ep_dequeue(struct usb_ep *ep, struct usb_request *req) in ep_dequeue() argument
1388 struct ci_hw_req *hwreq = container_of(req, struct ci_hw_req, req); in ep_dequeue()
1392 if (ep == NULL || req == NULL || hwreq->req.status != -EALREADY || in ep_dequeue()
1410 usb_gadget_unmap_request(&hwep->ci->gadget, req, hwep->dir); in ep_dequeue()
1412 req->status = -ECONNRESET; in ep_dequeue()
1414 if (hwreq->req.complete != NULL) { in ep_dequeue()
1416 usb_gadget_giveback_request(&hwep->ep, &hwreq->req); in ep_dequeue()