Lines Matching refs:loop

150 	[0].s = "loop input to output",
169 struct f_loopback *loop = func_to_loop(f);
187 loop->in_ep = usb_ep_autoconfig(cdev->gadget, &fs_loop_source_desc);
188 if (!loop->in_ep) {
195 loop->out_ep = usb_ep_autoconfig(cdev->gadget, &fs_loop_sink_desc);
196 if (!loop->out_ep)
215 f->name, loop->in_ep->name, loop->out_ep->name);
235 struct f_loopback *loop = ep->driver_data;
236 struct usb_composite_dev *cdev = loop->function.config->cdev;
241 if (ep == loop->out_ep) {
250 ep = loop->in_ep;
258 ep = loop->out_ep;
266 ERROR(cdev, "Unable to loop back buffer to %s: %d\n",
273 ERROR(cdev, "%s loop complete --> %d, %d/%d\n", ep->name,
286 usb_ep_free_request(ep == loop->in_ep ?
287 loop->out_ep : loop->in_ep,
294 static void disable_loopback(struct f_loopback *loop)
298 cdev = loop->function.config->cdev;
299 disable_endpoints(cdev, loop->in_ep, loop->out_ep, NULL, NULL);
300 VDBG(cdev, "%s disabled\n", loop->function.name);
309 struct f_loopback *loop)
321 for (i = 0; i < loop->qlen && result == 0; i++) {
324 in_req = usb_ep_alloc_request(loop->in_ep, GFP_ATOMIC);
328 out_req = lb_alloc_ep_req(loop->out_ep, loop->buflen);
340 result = usb_ep_queue(loop->out_ep, out_req, GFP_ATOMIC);
343 loop->out_ep->name, result);
351 free_ep_req(loop->out_ep, out_req);
353 usb_ep_free_request(loop->in_ep, in_req);
359 struct f_loopback *loop, struct usb_ep *ep)
363 result = config_ep_by_speed(cdev->gadget, &(loop->function), ep);
370 ep->driver_data = loop;
378 enable_loopback(struct usb_composite_dev *cdev, struct f_loopback *loop)
382 result = enable_endpoint(cdev, loop, loop->in_ep);
386 result = enable_endpoint(cdev, loop, loop->out_ep);
390 result = alloc_requests(cdev, loop);
394 DBG(cdev, "%s enabled\n", loop->function.name);
398 usb_ep_disable(loop->out_ep);
400 usb_ep_disable(loop->in_ep);
408 struct f_loopback *loop = func_to_loop(f);
412 disable_loopback(loop);
413 return enable_loopback(cdev, loop);
418 struct f_loopback *loop = func_to_loop(f);
420 disable_loopback(loop);
425 struct f_loopback *loop;
428 loop = kzalloc(sizeof *loop, GFP_KERNEL);
429 if (!loop)
438 loop->buflen = lb_opts->bulk_buflen;
439 loop->qlen = lb_opts->qlen;
440 if (!loop->qlen)
441 loop->qlen = 32;
443 loop->function.name = "loopback";
444 loop->function.bind = loopback_bind;
445 loop->function.set_alt = loopback_set_alt;
446 loop->function.disable = loopback_disable;
447 loop->function.strings = loopback_strings;
449 loop->function.free_func = lb_free_func;
451 return &loop->function;