Lines Matching refs:mep

13 void mtu3_req_complete(struct mtu3_ep *mep,  in mtu3_req_complete()  argument
15 __releases(mep->mtu->lock) in mtu3_req_complete()
16 __acquires(mep->mtu->lock) in mtu3_req_complete()
29 if (mep->epnum) in mtu3_req_complete()
30 usb_gadget_unmap_request(&mtu->g, req, mep->is_in); in mtu3_req_complete()
33 mep->name, req, req->status, req->actual, req->length); in mtu3_req_complete()
35 usb_gadget_giveback_request(&mep->ep, req); in mtu3_req_complete()
39 static void nuke(struct mtu3_ep *mep, const int status) in nuke() argument
43 if (list_empty(&mep->req_list)) in nuke()
46 dev_dbg(mep->mtu->dev, "abort %s's req: sts %d\n", mep->name, status); in nuke()
49 if (mep->epnum) in nuke()
50 mtu3_qmu_flush(mep); in nuke()
52 while (!list_empty(&mep->req_list)) { in nuke()
53 mreq = list_first_entry(&mep->req_list, in nuke()
55 mtu3_req_complete(mep, &mreq->request, status); in nuke()
59 static int mtu3_ep_enable(struct mtu3_ep *mep) in mtu3_ep_enable() argument
63 struct mtu3 *mtu = mep->mtu; in mtu3_ep_enable()
70 desc = mep->desc; in mtu3_ep_enable()
71 comp_desc = mep->comp_desc; in mtu3_ep_enable()
72 mep->type = usb_endpoint_type(desc); in mtu3_ep_enable()
74 mep->maxp = max_packet & GENMASK(10, 0); in mtu3_ep_enable()
103 __func__, mep->maxp, interval, burst, mult); in mtu3_ep_enable()
105 mep->ep.maxpacket = mep->maxp; in mtu3_ep_enable()
106 mep->ep.desc = desc; in mtu3_ep_enable()
107 mep->ep.comp_desc = comp_desc; in mtu3_ep_enable()
110 mep->slot = usb_endpoint_xfer_int(desc) ? 0 : mtu->slot; in mtu3_ep_enable()
112 ret = mtu3_config_ep(mtu, mep, interval, burst, mult); in mtu3_ep_enable()
116 ret = mtu3_gpd_ring_alloc(mep); in mtu3_ep_enable()
118 mtu3_deconfig_ep(mtu, mep); in mtu3_ep_enable()
122 mtu3_qmu_start(mep); in mtu3_ep_enable()
127 static int mtu3_ep_disable(struct mtu3_ep *mep) in mtu3_ep_disable() argument
129 struct mtu3 *mtu = mep->mtu; in mtu3_ep_disable()
131 mtu3_qmu_stop(mep); in mtu3_ep_disable()
134 nuke(mep, -ESHUTDOWN); in mtu3_ep_disable()
135 mtu3_deconfig_ep(mtu, mep); in mtu3_ep_disable()
136 mtu3_gpd_ring_free(mep); in mtu3_ep_disable()
138 mep->desc = NULL; in mtu3_ep_disable()
139 mep->ep.desc = NULL; in mtu3_ep_disable()
140 mep->comp_desc = NULL; in mtu3_ep_disable()
141 mep->type = 0; in mtu3_ep_disable()
142 mep->flags = 0; in mtu3_ep_disable()
150 struct mtu3_ep *mep; in mtu3_gadget_ep_enable() local
164 mep = to_mtu3_ep(ep); in mtu3_gadget_ep_enable()
165 mtu = mep->mtu; in mtu3_gadget_ep_enable()
168 if (usb_endpoint_num(desc) != mep->epnum) in mtu3_gadget_ep_enable()
171 if (!!usb_endpoint_dir_in(desc) ^ !!mep->is_in) in mtu3_gadget_ep_enable()
176 if (mep->flags & MTU3_EP_ENABLED) { in mtu3_gadget_ep_enable()
178 mep->name); in mtu3_gadget_ep_enable()
183 mep->desc = desc; in mtu3_gadget_ep_enable()
184 mep->comp_desc = ep->comp_desc; in mtu3_gadget_ep_enable()
186 ret = mtu3_ep_enable(mep); in mtu3_gadget_ep_enable()
190 mep->flags = MTU3_EP_ENABLED; in mtu3_gadget_ep_enable()
197 trace_mtu3_gadget_ep_enable(mep); in mtu3_gadget_ep_enable()
204 struct mtu3_ep *mep = to_mtu3_ep(ep); in mtu3_gadget_ep_disable() local
205 struct mtu3 *mtu = mep->mtu; in mtu3_gadget_ep_disable()
208 dev_dbg(mtu->dev, "%s %s\n", __func__, mep->name); in mtu3_gadget_ep_disable()
209 trace_mtu3_gadget_ep_disable(mep); in mtu3_gadget_ep_disable()
211 if (!(mep->flags & MTU3_EP_ENABLED)) { in mtu3_gadget_ep_disable()
212 dev_warn(mtu->dev, "%s is already disabled\n", mep->name); in mtu3_gadget_ep_disable()
217 mtu3_ep_disable(mep); in mtu3_gadget_ep_disable()
218 mep->flags = 0; in mtu3_gadget_ep_disable()
230 struct mtu3_ep *mep = to_mtu3_ep(ep); in mtu3_alloc_request() local
238 mreq->epnum = mep->epnum; in mtu3_alloc_request()
239 mreq->mep = mep; in mtu3_alloc_request()
256 struct mtu3_ep *mep = to_mtu3_ep(ep); in mtu3_gadget_queue() local
258 struct mtu3 *mtu = mep->mtu; in mtu3_gadget_queue()
265 if (mreq->mep != mep) in mtu3_gadget_queue()
269 __func__, mep->is_in ? "TX" : "RX", mreq->epnum, ep->name, in mtu3_gadget_queue()
282 if (!mep->desc) { in mtu3_gadget_queue()
292 ret = usb_gadget_map_request(&mtu->g, req, mep->is_in); in mtu3_gadget_queue()
300 if (mtu3_prepare_transfer(mep)) { in mtu3_gadget_queue()
305 list_add_tail(&mreq->list, &mep->req_list); in mtu3_gadget_queue()
306 mtu3_insert_gpd(mep, mreq); in mtu3_gadget_queue()
307 mtu3_qmu_resume(mep); in mtu3_gadget_queue()
318 struct mtu3_ep *mep = to_mtu3_ep(ep); in mtu3_gadget_dequeue() local
321 struct mtu3 *mtu = mep->mtu; in mtu3_gadget_dequeue()
325 if (mreq->mep != mep) in mtu3_gadget_dequeue()
333 list_for_each_entry(r, &mep->req_list, list) { in mtu3_gadget_dequeue()
343 mtu3_qmu_flush(mep); /* REVISIT: set BPS ?? */ in mtu3_gadget_dequeue()
344 mtu3_req_complete(mep, req, -ECONNRESET); in mtu3_gadget_dequeue()
345 mtu3_qmu_start(mep); in mtu3_gadget_dequeue()
359 struct mtu3_ep *mep = to_mtu3_ep(ep); in mtu3_gadget_ep_set_halt() local
360 struct mtu3 *mtu = mep->mtu; in mtu3_gadget_ep_set_halt()
369 if (mep->type == USB_ENDPOINT_XFER_ISOC) { in mtu3_gadget_ep_set_halt()
374 mreq = next_request(mep); in mtu3_gadget_ep_set_halt()
388 mep->flags &= ~MTU3_EP_WEDGE; in mtu3_gadget_ep_set_halt()
393 mtu3_ep_stall_set(mep, value); in mtu3_gadget_ep_set_halt()
397 trace_mtu3_gadget_ep_set_halt(mep); in mtu3_gadget_ep_set_halt()
405 struct mtu3_ep *mep = to_mtu3_ep(ep); in mtu3_gadget_ep_set_wedge() local
407 mep->flags |= MTU3_EP_WEDGE; in mtu3_gadget_ep_set_wedge()
605 static void init_hw_ep(struct mtu3 *mtu, struct mtu3_ep *mep, in init_hw_ep() argument
608 mep->epnum = epnum; in init_hw_ep()
609 mep->mtu = mtu; in init_hw_ep()
610 mep->is_in = is_in; in init_hw_ep()
612 INIT_LIST_HEAD(&mep->req_list); in init_hw_ep()
614 sprintf(mep->name, "ep%d%s", epnum, in init_hw_ep()
617 mep->ep.name = mep->name; in init_hw_ep()
618 INIT_LIST_HEAD(&mep->ep.ep_list); in init_hw_ep()
622 usb_ep_set_maxpacket_limit(&mep->ep, 512); in init_hw_ep()
623 mep->ep.caps.type_control = true; in init_hw_ep()
624 mep->ep.ops = &mtu3_ep0_ops; in init_hw_ep()
625 mtu->g.ep0 = &mep->ep; in init_hw_ep()
627 usb_ep_set_maxpacket_limit(&mep->ep, 1024); in init_hw_ep()
628 mep->ep.caps.type_iso = true; in init_hw_ep()
629 mep->ep.caps.type_bulk = true; in init_hw_ep()
630 mep->ep.caps.type_int = true; in init_hw_ep()
631 mep->ep.ops = &mtu3_ep_ops; in init_hw_ep()
632 list_add_tail(&mep->ep.ep_list, &mtu->g.ep_list); in init_hw_ep()
635 dev_dbg(mtu->dev, "%s, name=%s, maxp=%d\n", __func__, mep->ep.name, in init_hw_ep()
636 mep->ep.maxpacket); in init_hw_ep()
639 mep->ep.caps.dir_in = true; in init_hw_ep()
640 mep->ep.caps.dir_out = true; in init_hw_ep()
642 mep->ep.caps.dir_in = true; in init_hw_ep()
644 mep->ep.caps.dir_out = true; in init_hw_ep()