Lines Matching refs:gadget
46 struct usb_gadget *gadget; member
60 int usb_gadget_map_request(struct usb_gadget *gadget, in usb_gadget_map_request() argument
69 mapped = dma_map_sg(&gadget->dev, req->sg, req->num_sgs, in usb_gadget_map_request()
72 dev_err(&gadget->dev, "failed to map SGs\n"); in usb_gadget_map_request()
78 req->dma = dma_map_single(&gadget->dev, req->buf, req->length, in usb_gadget_map_request()
81 if (dma_mapping_error(&gadget->dev, req->dma)) { in usb_gadget_map_request()
82 dev_err(&gadget->dev, "failed to map buffer\n"); in usb_gadget_map_request()
91 void usb_gadget_unmap_request(struct usb_gadget *gadget, in usb_gadget_unmap_request() argument
98 dma_unmap_sg(&gadget->dev, req->sg, req->num_mapped_sgs, in usb_gadget_unmap_request()
103 dma_unmap_single(&gadget->dev, req->dma, req->length, in usb_gadget_unmap_request()
134 struct usb_gadget *gadget = work_to_gadget(work); in usb_gadget_state_work() local
135 struct usb_udc *udc = gadget->udc; in usb_gadget_state_work()
141 void usb_gadget_set_state(struct usb_gadget *gadget, in usb_gadget_set_state() argument
144 gadget->state = state; in usb_gadget_set_state()
145 schedule_work(&gadget->work); in usb_gadget_set_state()
154 usb_gadget_connect(udc->gadget); in usb_udc_connect_control()
156 usb_gadget_disconnect(udc->gadget); in usb_udc_connect_control()
168 void usb_udc_vbus_handler(struct usb_gadget *gadget, bool status) in usb_udc_vbus_handler() argument
170 struct usb_udc *udc = gadget->udc; in usb_udc_vbus_handler()
188 void usb_gadget_udc_reset(struct usb_gadget *gadget, in usb_gadget_udc_reset() argument
191 driver->reset(gadget); in usb_gadget_udc_reset()
192 usb_gadget_set_state(gadget, USB_STATE_DEFAULT); in usb_gadget_udc_reset()
211 return udc->gadget->ops->udc_start(udc->gadget, udc->driver); in usb_gadget_udc_start()
228 udc->gadget->ops->udc_stop(udc->gadget); in usb_gadget_udc_stop()
263 int usb_add_gadget_udc_release(struct device *parent, struct usb_gadget *gadget, in usb_add_gadget_udc_release() argument
273 dev_set_name(&gadget->dev, "gadget"); in usb_add_gadget_udc_release()
274 INIT_WORK(&gadget->work, usb_gadget_state_work); in usb_add_gadget_udc_release()
275 gadget->dev.parent = parent; in usb_add_gadget_udc_release()
278 dma_set_coherent_mask(&gadget->dev, parent->coherent_dma_mask); in usb_add_gadget_udc_release()
279 gadget->dev.dma_parms = parent->dma_parms; in usb_add_gadget_udc_release()
280 gadget->dev.dma_mask = parent->dma_mask; in usb_add_gadget_udc_release()
284 gadget->dev.release = release; in usb_add_gadget_udc_release()
286 gadget->dev.release = usb_udc_nop_release; in usb_add_gadget_udc_release()
288 ret = device_register(&gadget->dev); in usb_add_gadget_udc_release()
301 udc->gadget = gadget; in usb_add_gadget_udc_release()
302 gadget->udc = udc; in usb_add_gadget_udc_release()
311 usb_gadget_set_state(gadget, USB_STATE_NOTATTACHED); in usb_add_gadget_udc_release()
324 device_del(&gadget->dev); in usb_add_gadget_udc_release()
327 put_device(&gadget->dev); in usb_add_gadget_udc_release()
343 int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget) in usb_add_gadget_udc() argument
345 return usb_add_gadget_udc_release(parent, gadget, NULL); in usb_add_gadget_udc()
356 usb_gadget_disconnect(udc->gadget); in usb_gadget_remove_driver()
357 udc->driver->disconnect(udc->gadget); in usb_gadget_remove_driver()
358 udc->driver->unbind(udc->gadget); in usb_gadget_remove_driver()
363 udc->gadget->dev.driver = NULL; in usb_gadget_remove_driver()
373 void usb_del_gadget_udc(struct usb_gadget *gadget) in usb_del_gadget_udc() argument
375 struct usb_udc *udc = gadget->udc; in usb_del_gadget_udc()
380 dev_vdbg(gadget->dev.parent, "unregistering gadget\n"); in usb_del_gadget_udc()
390 flush_work(&gadget->work); in usb_del_gadget_udc()
392 device_unregister(&gadget->dev); in usb_del_gadget_udc()
407 udc->gadget->dev.driver = &driver->driver; in udc_bind_to_driver()
409 ret = driver->bind(udc->gadget, driver); in udc_bind_to_driver()
414 driver->unbind(udc->gadget); in udc_bind_to_driver()
427 udc->gadget->dev.driver = NULL; in udc_bind_to_driver()
494 usb_gadget_set_state(udc->gadget, in usb_gadget_unregister_driver()
513 usb_gadget_wakeup(udc->gadget); in usb_udc_srp_store()
531 usb_gadget_connect(udc->gadget); in usb_udc_softconn_store()
533 usb_gadget_disconnect(udc->gadget); in usb_udc_softconn_store()
534 udc->driver->disconnect(udc->gadget); in usb_udc_softconn_store()
549 struct usb_gadget *gadget = udc->gadget; in state_show() local
551 return sprintf(buf, "%s\n", usb_state_string(gadget->state)); in state_show()
561 usb_speed_string(udc->gadget->param)); \
573 struct usb_gadget *gadget = udc->gadget; \
575 return snprintf(buf, PAGE_SIZE, "%d\n", gadget->name); \
616 ret = add_uevent_var(env, "USB_UDC_NAME=%s", udc->gadget->name); in usb_udc_uevent()