Lines Matching defs:mep

13 void mtu3_req_complete(struct mtu3_ep *mep,
15 __releases(mep->mtu->lock)
16 __acquires(mep->mtu->lock)
29 if (mep->epnum)
30 usb_gadget_unmap_request(&mtu->g, req, mep->is_in);
33 mep->name, req, req->status, req->actual, req->length);
35 usb_gadget_giveback_request(&mep->ep, req);
39 static void nuke(struct mtu3_ep *mep, const int status)
43 if (list_empty(&mep->req_list))
46 dev_dbg(mep->mtu->dev, "abort %s's req: sts %d\n", mep->name, status);
49 if (mep->epnum)
50 mtu3_qmu_flush(mep);
52 while (!list_empty(&mep->req_list)) {
53 mreq = list_first_entry(&mep->req_list,
55 mtu3_req_complete(mep, &mreq->request, status);
59 static int mtu3_ep_enable(struct mtu3_ep *mep)
63 struct mtu3 *mtu = mep->mtu;
69 desc = mep->desc;
70 comp_desc = mep->comp_desc;
71 mep->type = usb_endpoint_type(desc);
72 mep->maxp = usb_endpoint_maxp(desc);
108 __func__, mep->maxp, interval, burst, mult);
110 mep->ep.maxpacket = mep->maxp;
111 mep->ep.desc = desc;
112 mep->ep.comp_desc = comp_desc;
115 mep->slot = usb_endpoint_xfer_int(desc) ? 0 : mtu->slot;
117 ret = mtu3_config_ep(mtu, mep, interval, burst, mult);
121 ret = mtu3_gpd_ring_alloc(mep);
123 mtu3_deconfig_ep(mtu, mep);
127 mtu3_qmu_start(mep);
132 static int mtu3_ep_disable(struct mtu3_ep *mep)
134 struct mtu3 *mtu = mep->mtu;
136 mtu3_qmu_stop(mep);
139 nuke(mep, -ESHUTDOWN);
140 mtu3_deconfig_ep(mtu, mep);
141 mtu3_gpd_ring_free(mep);
143 mep->desc = NULL;
144 mep->ep.desc = NULL;
145 mep->comp_desc = NULL;
146 mep->type = 0;
147 mep->flags = 0;
155 struct mtu3_ep *mep;
169 mep = to_mtu3_ep(ep);
170 mtu = mep->mtu;
173 if (usb_endpoint_num(desc) != mep->epnum)
176 if (!!usb_endpoint_dir_in(desc) ^ !!mep->is_in)
181 if (mep->flags & MTU3_EP_ENABLED) {
183 mep->name);
188 mep->desc = desc;
189 mep->comp_desc = ep->comp_desc;
191 ret = mtu3_ep_enable(mep);
195 mep->flags = MTU3_EP_ENABLED;
202 trace_mtu3_gadget_ep_enable(mep);
209 struct mtu3_ep *mep = to_mtu3_ep(ep);
210 struct mtu3 *mtu = mep->mtu;
213 dev_dbg(mtu->dev, "%s %s\n", __func__, mep->name);
214 trace_mtu3_gadget_ep_disable(mep);
216 if (!(mep->flags & MTU3_EP_ENABLED)) {
217 dev_warn(mtu->dev, "%s is already disabled\n", mep->name);
222 mtu3_ep_disable(mep);
223 mep->flags = 0;
235 struct mtu3_ep *mep = to_mtu3_ep(ep);
243 mreq->epnum = mep->epnum;
244 mreq->mep = mep;
262 struct mtu3_ep *mep = to_mtu3_ep(ep);
264 struct mtu3 *mtu = mep->mtu;
271 if (mreq->mep != mep)
275 __func__, mep->is_in ? "TX" : "RX", mreq->epnum, ep->name,
288 if (!mep->desc) {
298 ret = usb_gadget_map_request(&mtu->g, req, mep->is_in);
306 if (mtu3_prepare_transfer(mep)) {
311 list_add_tail(&mreq->list, &mep->req_list);
312 mtu3_insert_gpd(mep, mreq);
313 mtu3_qmu_resume(mep);
324 struct mtu3_ep *mep = to_mtu3_ep(ep);
327 struct mtu3 *mtu = mep->mtu;
331 if (mreq->mep != mep)
339 list_for_each_entry(r, &mep->req_list, list) {
349 mtu3_qmu_flush(mep); /* REVISIT: set BPS ?? */
350 mtu3_req_complete(mep, req, -ECONNRESET);
351 mtu3_qmu_start(mep);
365 struct mtu3_ep *mep = to_mtu3_ep(ep);
366 struct mtu3 *mtu = mep->mtu;
375 if (mep->type == USB_ENDPOINT_XFER_ISOC) {
380 mreq = next_request(mep);
394 mep->flags &= ~MTU3_EP_WEDGE;
399 mtu3_ep_stall_set(mep, value);
403 trace_mtu3_gadget_ep_set_halt(mep);
411 struct mtu3_ep *mep = to_mtu3_ep(ep);
413 mep->flags |= MTU3_EP_WEDGE;
611 static void init_hw_ep(struct mtu3 *mtu, struct mtu3_ep *mep,
614 mep->epnum = epnum;
615 mep->mtu = mtu;
616 mep->is_in = is_in;
618 INIT_LIST_HEAD(&mep->req_list);
620 sprintf(mep->name, "ep%d%s", epnum,
623 mep->ep.name = mep->name;
624 INIT_LIST_HEAD(&mep->ep.ep_list);
628 usb_ep_set_maxpacket_limit(&mep->ep, 512);
629 mep->ep.caps.type_control = true;
630 mep->ep.ops = &mtu3_ep0_ops;
631 mtu->g.ep0 = &mep->ep;
633 usb_ep_set_maxpacket_limit(&mep->ep, 1024);
634 mep->ep.caps.type_iso = true;
635 mep->ep.caps.type_bulk = true;
636 mep->ep.caps.type_int = true;
637 mep->ep.ops = &mtu3_ep_ops;
638 list_add_tail(&mep->ep.ep_list, &mtu->g.ep_list);
641 dev_dbg(mtu->dev, "%s, name=%s, maxp=%d\n", __func__, mep->ep.name,
642 mep->ep.maxpacket);
645 mep->ep.caps.dir_in = true;
646 mep->ep.caps.dir_out = true;
648 mep->ep.caps.dir_in = true;
650 mep->ep.caps.dir_out = true;