Lines Matching refs:gadget
44 struct usb_gadget *gadget; member
57 int usb_gadget_map_request(struct usb_gadget *gadget, in usb_gadget_map_request() argument
66 mapped = dma_map_sg(&gadget->dev, req->sg, req->num_sgs, in usb_gadget_map_request()
69 dev_err(&gadget->dev, "failed to map SGs\n"); in usb_gadget_map_request()
75 req->dma = dma_map_single(&gadget->dev, req->buf, req->length, in usb_gadget_map_request()
78 if (dma_mapping_error(&gadget->dev, req->dma)) { in usb_gadget_map_request()
79 dev_err(&gadget->dev, "failed to map buffer\n"); in usb_gadget_map_request()
88 void usb_gadget_unmap_request(struct usb_gadget *gadget, in usb_gadget_unmap_request() argument
95 dma_unmap_sg(&gadget->dev, req->sg, req->num_mapped_sgs, in usb_gadget_unmap_request()
100 dma_unmap_single(&gadget->dev, req->dma, req->length, in usb_gadget_unmap_request()
131 struct usb_gadget *gadget = work_to_gadget(work); in usb_gadget_state_work() local
136 if (udc->gadget == gadget) in usb_gadget_state_work()
148 void usb_gadget_set_state(struct usb_gadget *gadget, in usb_gadget_set_state() argument
151 gadget->state = state; in usb_gadget_set_state()
152 schedule_work(&gadget->work); in usb_gadget_set_state()
167 void usb_gadget_udc_reset(struct usb_gadget *gadget, in usb_gadget_udc_reset() argument
170 driver->reset(gadget); in usb_gadget_udc_reset()
171 usb_gadget_set_state(gadget, USB_STATE_DEFAULT); in usb_gadget_udc_reset()
189 static inline int usb_gadget_udc_start(struct usb_gadget *gadget, in usb_gadget_udc_start() argument
192 return gadget->ops->udc_start(gadget, driver); in usb_gadget_udc_start()
207 static inline void usb_gadget_udc_stop(struct usb_gadget *gadget, in usb_gadget_udc_stop() argument
210 gadget->ops->udc_stop(gadget, driver); in usb_gadget_udc_stop()
245 int usb_add_gadget_udc_release(struct device *parent, struct usb_gadget *gadget, in usb_add_gadget_udc_release() argument
255 dev_set_name(&gadget->dev, "gadget"); in usb_add_gadget_udc_release()
256 INIT_WORK(&gadget->work, usb_gadget_state_work); in usb_add_gadget_udc_release()
257 gadget->dev.parent = parent; in usb_add_gadget_udc_release()
260 dma_set_coherent_mask(&gadget->dev, parent->coherent_dma_mask); in usb_add_gadget_udc_release()
261 gadget->dev.dma_parms = parent->dma_parms; in usb_add_gadget_udc_release()
262 gadget->dev.dma_mask = parent->dma_mask; in usb_add_gadget_udc_release()
266 gadget->dev.release = release; in usb_add_gadget_udc_release()
268 gadget->dev.release = usb_udc_nop_release; in usb_add_gadget_udc_release()
270 ret = device_register(&gadget->dev); in usb_add_gadget_udc_release()
283 udc->gadget = gadget; in usb_add_gadget_udc_release()
292 usb_gadget_set_state(gadget, USB_STATE_NOTATTACHED); in usb_add_gadget_udc_release()
304 device_del(&gadget->dev); in usb_add_gadget_udc_release()
307 put_device(&gadget->dev); in usb_add_gadget_udc_release()
323 int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget) in usb_add_gadget_udc() argument
325 return usb_add_gadget_udc_release(parent, gadget, NULL); in usb_add_gadget_udc()
332 udc->gadget->name); in usb_gadget_remove_driver()
336 usb_gadget_disconnect(udc->gadget); in usb_gadget_remove_driver()
337 udc->driver->disconnect(udc->gadget); in usb_gadget_remove_driver()
338 udc->driver->unbind(udc->gadget); in usb_gadget_remove_driver()
339 usb_gadget_udc_stop(udc->gadget, NULL); in usb_gadget_remove_driver()
343 udc->gadget->dev.driver = NULL; in usb_gadget_remove_driver()
353 void usb_del_gadget_udc(struct usb_gadget *gadget) in usb_del_gadget_udc() argument
359 if (udc->gadget == gadget) in usb_del_gadget_udc()
362 dev_err(gadget->dev.parent, "gadget not registered.\n"); in usb_del_gadget_udc()
368 dev_vdbg(gadget->dev.parent, "unregistering gadget\n"); in usb_del_gadget_udc()
377 flush_work(&gadget->work); in usb_del_gadget_udc()
379 device_unregister(&gadget->dev); in usb_del_gadget_udc()
394 udc->gadget->dev.driver = &driver->driver; in udc_bind_to_driver()
396 ret = driver->bind(udc->gadget, driver); in udc_bind_to_driver()
399 ret = usb_gadget_udc_start(udc->gadget, driver); in udc_bind_to_driver()
401 driver->unbind(udc->gadget); in udc_bind_to_driver()
404 usb_gadget_connect(udc->gadget); in udc_bind_to_driver()
414 udc->gadget->dev.driver = NULL; in udc_bind_to_driver()
481 usb_gadget_set_state(udc->gadget, in usb_gadget_unregister_driver()
500 usb_gadget_wakeup(udc->gadget); in usb_udc_srp_store()
517 usb_gadget_udc_start(udc->gadget, udc->driver); in usb_udc_softconn_store()
518 usb_gadget_connect(udc->gadget); in usb_udc_softconn_store()
520 usb_gadget_disconnect(udc->gadget); in usb_udc_softconn_store()
521 usb_gadget_udc_stop(udc->gadget, udc->driver); in usb_udc_softconn_store()
535 struct usb_gadget *gadget = udc->gadget; in state_show() local
537 return sprintf(buf, "%s\n", usb_state_string(gadget->state)); in state_show()
547 usb_speed_string(udc->gadget->param)); \
559 struct usb_gadget *gadget = udc->gadget; \
561 return snprintf(buf, PAGE_SIZE, "%d\n", gadget->name); \
600 ret = add_uevent_var(env, "USB_UDC_NAME=%s", udc->gadget->name); in usb_udc_uevent()