Lines Matching refs:dep

30 static void __dwc3_ep0_do_control_status(struct dwc3 *dwc, struct dwc3_ep *dep);
32 struct dwc3_ep *dep, struct dwc3_request *req);
36 static void dwc3_ep0_prepare_one_trb(struct dwc3_ep *dep,
42 dwc = dep->dwc;
43 trb = &dwc->ep0_trb[dep->trb_enqueue];
46 dep->trb_enqueue++;
62 trace_dwc3_prepare_trb(dep, trb);
65 static int dwc3_ep0_start_trans(struct dwc3_ep *dep)
71 if (dep->flags & DWC3_EP_TRANSFER_STARTED)
74 dwc = dep->dwc;
80 ret = dwc3_send_gadget_ep_cmd(dep, DWC3_DEPCMD_STARTTRANSFER, &params);
89 static int __dwc3_gadget_ep0_queue(struct dwc3_ep *dep,
92 struct dwc3 *dwc = dep->dwc;
96 req->epnum = dep->number;
98 list_add_tail(&req->list, &dep->pending_list);
109 if (dep->flags & DWC3_EP_PENDING_REQUEST) {
112 direction = !!(dep->flags & DWC3_EP0_DIR_IN);
121 dep->flags &= ~(DWC3_EP_PENDING_REQUEST |
184 dep->flags &= ~DWC3_EP0_DIR_IN;
194 struct dwc3_ep *dep = to_dwc3_ep(ep);
195 struct dwc3 *dwc = dep->dwc;
202 if (!dep->endpoint.desc || !dwc->pullups_connected || !dwc->connected) {
204 dep->name);
210 if (!list_empty(&dep->pending_list)) {
215 ret = __dwc3_gadget_ep0_queue(dep, req);
225 struct dwc3_ep *dep;
228 dep = dwc->eps[1];
229 dep->flags = DWC3_EP_ENABLED;
232 dep = dwc->eps[0];
233 __dwc3_gadget_ep_set_halt(dep, 1, false);
234 dep->flags = DWC3_EP_ENABLED;
237 if (!list_empty(&dep->pending_list)) {
240 req = next_request(&dep->pending_list);
242 dwc3_gadget_giveback(dep, req, -ESHUTDOWN);
244 dwc3_gadget_giveback(dep, req, -ECONNRESET);
255 struct dwc3_ep *dep = to_dwc3_ep(ep);
256 struct dwc3 *dwc = dep->dwc;
265 struct dwc3_ep *dep = to_dwc3_ep(ep);
266 struct dwc3 *dwc = dep->dwc;
279 struct dwc3_ep *dep;
285 dep = dwc->eps[0];
286 dwc3_ep0_prepare_one_trb(dep, dwc->ep0_trb_addr, 8,
288 ret = dwc3_ep0_start_trans(dep);
310 struct dwc3_ep *dep;
318 dep = dwc->eps[epnum];
319 if (dep == NULL)
322 if (dep->flags & DWC3_EP_ENABLED)
323 return dep;
337 struct dwc3_ep *dep;
379 dep = dwc3_wIndex_to_dep(dwc, ctrl->wIndex);
380 if (!dep)
383 if (dep->flags & DWC3_EP_STALL)
393 dep = dwc->eps[0];
394 dwc->ep0_usb_req.dep = dep;
399 return __dwc3_gadget_ep0_queue(dep, &dwc->ep0_usb_req);
537 struct dwc3_ep *dep;
545 dep = dwc3_wIndex_to_dep(dwc, ctrl->wIndex);
546 if (!dep)
549 if (set == 0 && (dep->flags & DWC3_EP_WEDGE))
552 ret = __dwc3_gadget_ep_set_halt(dep, set, true);
557 if (!set && (dep->flags & DWC3_EP_END_TRANSFER_PENDING))
692 struct dwc3_ep *dep = to_dwc3_ep(ep);
693 struct dwc3 *dwc = dep->dwc;
736 struct dwc3_ep *dep;
759 dep = dwc->eps[0];
760 dwc->ep0_usb_req.dep = dep;
761 dwc->ep0_usb_req.request.length = dep->endpoint.maxpacket;
765 return __dwc3_gadget_ep0_queue(dep, &dwc->ep0_usb_req);
918 struct dwc3_ep *dep;
922 dep = dwc->eps[0];
925 trace_dwc3_complete_trb(dep, trb);
927 if (!list_empty(&dep->pending_list)) {
928 r = next_request(&dep->pending_list);
930 dwc3_gadget_giveback(dep, r, 0);
956 struct dwc3_ep *dep = dwc->eps[event->endpoint_number];
958 dep->flags &= ~DWC3_EP_TRANSFER_STARTED;
959 dep->resource_index = 0;
980 struct dwc3_ep *dep, struct dwc3_request *req)
985 req->direction = !!dep->number;
989 trb_length = dep->endpoint.maxpacket;
991 dwc3_ep0_prepare_one_trb(dep, dwc->bounce_addr, trb_length,
993 ret = dwc3_ep0_start_trans(dep);
994 } else if (!IS_ALIGNED(req->request.length, dep->endpoint.maxpacket)
995 && (dep->number == 0)) {
1000 &req->request, dep->number);
1004 maxpacket = dep->endpoint.maxpacket;
1009 dwc3_ep0_prepare_one_trb(dep, req->request.dma,
1014 req->trb = &dwc->ep0_trb[dep->trb_enqueue - 1];
1017 dwc3_ep0_prepare_one_trb(dep, dwc->bounce_addr,
1021 ret = dwc3_ep0_start_trans(dep);
1022 } else if (IS_ALIGNED(req->request.length, dep->endpoint.maxpacket) &&
1026 &req->request, dep->number);
1031 dwc3_ep0_prepare_one_trb(dep, req->request.dma,
1036 req->trb = &dwc->ep0_trb[dep->trb_enqueue - 1];
1039 trb_length = dep->endpoint.maxpacket;
1042 dwc3_ep0_prepare_one_trb(dep, dwc->bounce_addr,
1045 ret = dwc3_ep0_start_trans(dep);
1048 &req->request, dep->number);
1052 dwc3_ep0_prepare_one_trb(dep, req->request.dma,
1056 req->trb = &dwc->ep0_trb[dep->trb_enqueue];
1058 ret = dwc3_ep0_start_trans(dep);
1064 static int dwc3_ep0_start_control_status(struct dwc3_ep *dep)
1066 struct dwc3 *dwc = dep->dwc;
1072 dwc3_ep0_prepare_one_trb(dep, dwc->ep0_trb_addr, 0, type, false);
1073 return dwc3_ep0_start_trans(dep);
1076 static void __dwc3_ep0_do_control_status(struct dwc3 *dwc, struct dwc3_ep *dep)
1078 WARN_ON(dwc3_ep0_start_control_status(dep));
1084 struct dwc3_ep *dep = dwc->eps[event->endpoint_number];
1086 __dwc3_ep0_do_control_status(dwc, dep);
1102 void dwc3_ep0_end_control_data(struct dwc3 *dwc, struct dwc3_ep *dep)
1113 if (!dep->resource_index && dep->number)
1118 cmd |= DWC3_DEPCMD_PARAM(dep->resource_index);
1120 ret = dwc3_send_gadget_ep_cmd(dep, cmd, &params);
1122 dep->resource_index = 0;
1142 struct dwc3_ep *dep = dwc->eps[dwc->ep0_expect_in];
1145 dwc3_ep0_end_control_data(dwc, dep);
1164 struct dwc3_ep *dep = dwc->eps[0];
1172 if (!list_empty(&dep->pending_list)) {
1189 struct dwc3_ep *dep = dwc->eps[event->endpoint_number];
1209 dep->flags &= ~DWC3_EP_END_TRANSFER_PENDING;
1210 dep->flags &= ~DWC3_EP_TRANSFER_STARTED;