Lines Matching refs:loop

158 	[0].s = "loop input to output",
178 struct f_loopback *loop = func_to_loop(f);
189 loop->in_ep = usb_ep_autoconfig(cdev->gadget, &fs_loop_source_desc);
190 if (!loop->in_ep) {
196 loop->in_ep->driver_data = cdev; /* claim */
198 loop->out_ep = usb_ep_autoconfig(cdev->gadget, &fs_loop_sink_desc);
199 if (!loop->out_ep)
201 loop->out_ep->driver_data = cdev; /* claim */
224 f->name, loop->in_ep->name, loop->out_ep->name);
236 struct f_loopback *loop = ep->driver_data;
237 struct usb_composite_dev *cdev = loop->function.config->cdev;
243 if (ep == loop->out_ep) {
244 /* loop this OUT packet back IN to the host */
247 status = usb_ep_queue(loop->in_ep, req, GFP_ATOMIC);
252 ERROR(cdev, "can't loop %s to %s: %d\n",
253 ep->name, loop->in_ep->name,
259 status = usb_ep_queue(loop->out_ep, req, GFP_ATOMIC);
267 ERROR(cdev, "%s loop complete --> %d, %d/%d\n", ep->name,
284 static void disable_loopback(struct f_loopback *loop)
288 cdev = loop->function.config->cdev;
289 disable_endpoints(cdev, loop->in_ep, loop->out_ep);
290 VDBG(cdev, "%s disabled\n", loop->function.name);
294 enable_loopback(struct usb_composite_dev *cdev, struct f_loopback *loop)
302 ep = loop->in_ep;
303 result = config_ep_by_speed(cdev->gadget, &(loop->function), ep);
309 ep->driver_data = loop;
312 ep = loop->out_ep;
313 result = config_ep_by_speed(cdev->gadget, &(loop->function), ep);
320 ep = loop->in_ep;
325 ep->driver_data = loop;
347 DBG(cdev, "%s enabled\n", loop->function.name);
354 struct f_loopback *loop = func_to_loop(f);
358 if (loop->in_ep->driver_data)
359 disable_loopback(loop);
360 return enable_loopback(cdev, loop);
365 struct f_loopback *loop = func_to_loop(f);
367 disable_loopback(loop);
374 struct f_loopback *loop;
377 loop = kzalloc(sizeof *loop, GFP_KERNEL);
378 if (!loop)
381 loop->function.name = "loopback";
382 loop->function.descriptors = fs_loopback_descs;
383 loop->function.bind = loopback_bind;
384 loop->function.unbind = loopback_unbind;
385 loop->function.set_alt = loopback_set_alt;
386 loop->function.disable = loopback_disable;
388 status = usb_add_function(c, &loop->function);
390 kfree(loop);