Lines Matching refs:gadget
38 struct usb_gadget *gadget; member
466 int usb_gadget_frame_number(struct usb_gadget *gadget) in usb_gadget_frame_number() argument
470 ret = gadget->ops->get_frame(gadget); in usb_gadget_frame_number()
472 trace_usb_gadget_frame_number(gadget, ret); in usb_gadget_frame_number()
491 int usb_gadget_wakeup(struct usb_gadget *gadget) in usb_gadget_wakeup() argument
495 if (!gadget->ops->wakeup) { in usb_gadget_wakeup()
500 ret = gadget->ops->wakeup(gadget); in usb_gadget_wakeup()
503 trace_usb_gadget_wakeup(gadget, ret); in usb_gadget_wakeup()
518 int usb_gadget_set_selfpowered(struct usb_gadget *gadget) in usb_gadget_set_selfpowered() argument
522 if (!gadget->ops->set_selfpowered) { in usb_gadget_set_selfpowered()
527 ret = gadget->ops->set_selfpowered(gadget, 1); in usb_gadget_set_selfpowered()
530 trace_usb_gadget_set_selfpowered(gadget, ret); in usb_gadget_set_selfpowered()
546 int usb_gadget_clear_selfpowered(struct usb_gadget *gadget) in usb_gadget_clear_selfpowered() argument
550 if (!gadget->ops->set_selfpowered) { in usb_gadget_clear_selfpowered()
555 ret = gadget->ops->set_selfpowered(gadget, 0); in usb_gadget_clear_selfpowered()
558 trace_usb_gadget_clear_selfpowered(gadget, ret); in usb_gadget_clear_selfpowered()
577 int usb_gadget_vbus_connect(struct usb_gadget *gadget) in usb_gadget_vbus_connect() argument
581 if (!gadget->ops->vbus_session) { in usb_gadget_vbus_connect()
586 ret = gadget->ops->vbus_session(gadget, 1); in usb_gadget_vbus_connect()
589 trace_usb_gadget_vbus_connect(gadget, ret); in usb_gadget_vbus_connect()
607 int usb_gadget_vbus_draw(struct usb_gadget *gadget, unsigned mA) in usb_gadget_vbus_draw() argument
611 if (!gadget->ops->vbus_draw) { in usb_gadget_vbus_draw()
616 ret = gadget->ops->vbus_draw(gadget, mA); in usb_gadget_vbus_draw()
618 gadget->mA = mA; in usb_gadget_vbus_draw()
621 trace_usb_gadget_vbus_draw(gadget, ret); in usb_gadget_vbus_draw()
638 int usb_gadget_vbus_disconnect(struct usb_gadget *gadget) in usb_gadget_vbus_disconnect() argument
642 if (!gadget->ops->vbus_session) { in usb_gadget_vbus_disconnect()
647 ret = gadget->ops->vbus_session(gadget, 0); in usb_gadget_vbus_disconnect()
650 trace_usb_gadget_vbus_disconnect(gadget, ret); in usb_gadget_vbus_disconnect()
667 int usb_gadget_connect(struct usb_gadget *gadget) in usb_gadget_connect() argument
671 if (!gadget->ops->pullup) { in usb_gadget_connect()
676 if (gadget->deactivated) { in usb_gadget_connect()
681 gadget->connected = true; in usb_gadget_connect()
685 ret = gadget->ops->pullup(gadget, 1); in usb_gadget_connect()
687 gadget->connected = 1; in usb_gadget_connect()
690 trace_usb_gadget_connect(gadget, ret); in usb_gadget_connect()
709 int usb_gadget_disconnect(struct usb_gadget *gadget) in usb_gadget_disconnect() argument
713 if (!gadget->ops->pullup) { in usb_gadget_disconnect()
718 if (!gadget->connected) in usb_gadget_disconnect()
721 if (gadget->deactivated) { in usb_gadget_disconnect()
726 gadget->connected = false; in usb_gadget_disconnect()
730 ret = gadget->ops->pullup(gadget, 0); in usb_gadget_disconnect()
732 gadget->connected = 0; in usb_gadget_disconnect()
733 gadget->udc->driver->disconnect(gadget); in usb_gadget_disconnect()
737 trace_usb_gadget_disconnect(gadget, ret); in usb_gadget_disconnect()
754 int usb_gadget_deactivate(struct usb_gadget *gadget) in usb_gadget_deactivate() argument
758 if (gadget->deactivated) in usb_gadget_deactivate()
761 if (gadget->connected) { in usb_gadget_deactivate()
762 ret = usb_gadget_disconnect(gadget); in usb_gadget_deactivate()
770 gadget->connected = true; in usb_gadget_deactivate()
772 gadget->deactivated = true; in usb_gadget_deactivate()
775 trace_usb_gadget_deactivate(gadget, ret); in usb_gadget_deactivate()
790 int usb_gadget_activate(struct usb_gadget *gadget) in usb_gadget_activate() argument
794 if (!gadget->deactivated) in usb_gadget_activate()
797 gadget->deactivated = false; in usb_gadget_activate()
803 if (gadget->connected) in usb_gadget_activate()
804 ret = usb_gadget_connect(gadget); in usb_gadget_activate()
807 trace_usb_gadget_activate(gadget, ret); in usb_gadget_activate()
858 int usb_gadget_map_request(struct usb_gadget *gadget, in usb_gadget_map_request() argument
861 return usb_gadget_map_request_by_dev(gadget->dev.parent, req, is_in); in usb_gadget_map_request()
884 void usb_gadget_unmap_request(struct usb_gadget *gadget, in usb_gadget_unmap_request() argument
887 usb_gadget_unmap_request_by_dev(gadget->dev.parent, req, is_in); in usb_gadget_unmap_request()
940 int usb_gadget_ep_match_desc(struct usb_gadget *gadget, in usb_gadget_ep_match_desc() argument
964 if (!gadget_is_dualspeed(gadget) && usb_endpoint_maxp_mult(desc) > 1) in usb_gadget_ep_match_desc()
975 if (!gadget_is_dualspeed(gadget) && max > 1023) in usb_gadget_ep_match_desc()
981 if (ep_comp && gadget_is_superspeed(gadget)) { in usb_gadget_ep_match_desc()
998 if (!gadget_is_dualspeed(gadget) && max > 64) in usb_gadget_ep_match_desc()
1011 struct usb_gadget *gadget = work_to_gadget(work); in usb_gadget_state_work() local
1012 struct usb_udc *udc = gadget->udc; in usb_gadget_state_work()
1018 void usb_gadget_set_state(struct usb_gadget *gadget, in usb_gadget_set_state() argument
1021 gadget->state = state; in usb_gadget_set_state()
1022 schedule_work(&gadget->work); in usb_gadget_set_state()
1031 usb_gadget_connect(udc->gadget); in usb_udc_connect_control()
1033 usb_gadget_disconnect(udc->gadget); in usb_udc_connect_control()
1045 void usb_udc_vbus_handler(struct usb_gadget *gadget, bool status) in usb_udc_vbus_handler() argument
1047 struct usb_udc *udc = gadget->udc; in usb_udc_vbus_handler()
1065 void usb_gadget_udc_reset(struct usb_gadget *gadget, in usb_gadget_udc_reset() argument
1068 driver->reset(gadget); in usb_gadget_udc_reset()
1069 usb_gadget_set_state(gadget, USB_STATE_DEFAULT); in usb_gadget_udc_reset()
1088 return udc->gadget->ops->udc_start(udc->gadget, udc->driver); in usb_gadget_udc_start()
1104 udc->gadget->ops->udc_stop(udc->gadget); in usb_gadget_udc_stop()
1120 if (udc->gadget->ops->udc_set_speed) { in usb_gadget_udc_set_speed()
1123 s = min(speed, udc->gadget->max_speed); in usb_gadget_udc_set_speed()
1124 udc->gadget->ops->udc_set_speed(udc->gadget, s); in usb_gadget_udc_set_speed()
1179 void usb_initialize_gadget(struct device *parent, struct usb_gadget *gadget, in usb_initialize_gadget() argument
1182 dev_set_name(&gadget->dev, "gadget"); in usb_initialize_gadget()
1183 INIT_WORK(&gadget->work, usb_gadget_state_work); in usb_initialize_gadget()
1184 gadget->dev.parent = parent; in usb_initialize_gadget()
1187 gadget->dev.release = release; in usb_initialize_gadget()
1189 gadget->dev.release = usb_udc_nop_release; in usb_initialize_gadget()
1191 device_initialize(&gadget->dev); in usb_initialize_gadget()
1202 int usb_add_gadget(struct usb_gadget *gadget) in usb_add_gadget() argument
1215 udc->dev.parent = gadget->dev.parent; in usb_add_gadget()
1217 kobject_name(&gadget->dev.parent->kobj)); in usb_add_gadget()
1221 ret = device_add(&gadget->dev); in usb_add_gadget()
1225 udc->gadget = gadget; in usb_add_gadget()
1226 gadget->udc = udc; in usb_add_gadget()
1235 usb_gadget_set_state(gadget, USB_STATE_NOTATTACHED); in usb_add_gadget()
1248 flush_work(&gadget->work); in usb_add_gadget()
1255 device_del(&gadget->dev); in usb_add_gadget()
1275 int usb_add_gadget_udc_release(struct device *parent, struct usb_gadget *gadget, in usb_add_gadget_udc_release() argument
1280 usb_initialize_gadget(parent, gadget, release); in usb_add_gadget_udc_release()
1281 ret = usb_add_gadget(gadget); in usb_add_gadget_udc_release()
1283 usb_put_gadget(gadget); in usb_add_gadget_udc_release()
1309 name = kstrdup(udc->gadget->name, GFP_KERNEL); in usb_get_gadget_udc_name()
1326 int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget) in usb_add_gadget_udc() argument
1328 return usb_add_gadget_udc_release(parent, gadget, NULL); in usb_add_gadget_udc()
1339 usb_gadget_disconnect(udc->gadget); in usb_gadget_remove_driver()
1340 if (udc->gadget->irq) in usb_gadget_remove_driver()
1341 synchronize_irq(udc->gadget->irq); in usb_gadget_remove_driver()
1342 udc->driver->unbind(udc->gadget); in usb_gadget_remove_driver()
1347 udc->gadget->dev.driver = NULL; in usb_gadget_remove_driver()
1358 void usb_del_gadget(struct usb_gadget *gadget) in usb_del_gadget() argument
1360 struct usb_udc *udc = gadget->udc; in usb_del_gadget()
1365 dev_vdbg(gadget->dev.parent, "unregistering gadget\n"); in usb_del_gadget()
1379 flush_work(&gadget->work); in usb_del_gadget()
1381 device_del(&gadget->dev); in usb_del_gadget()
1391 void usb_del_gadget_udc(struct usb_gadget *gadget) in usb_del_gadget_udc() argument
1393 usb_del_gadget(gadget); in usb_del_gadget_udc()
1394 usb_put_gadget(gadget); in usb_del_gadget_udc()
1409 udc->gadget->dev.driver = &driver->driver; in udc_bind_to_driver()
1413 ret = driver->bind(udc->gadget, driver); in udc_bind_to_driver()
1418 driver->unbind(udc->gadget); in udc_bind_to_driver()
1431 udc->gadget->dev.driver = NULL; in udc_bind_to_driver()
1494 usb_gadget_set_state(udc->gadget, in usb_gadget_unregister_driver()
1525 usb_gadget_wakeup(udc->gadget); in srp_store()
1543 usb_gadget_connect(udc->gadget); in soft_connect_store()
1545 usb_gadget_disconnect(udc->gadget); in soft_connect_store()
1560 struct usb_gadget *gadget = udc->gadget; in state_show() local
1562 return sprintf(buf, "%s\n", usb_state_string(gadget->state)); in state_show()
1584 usb_speed_string(udc->gadget->param)); \
1596 struct usb_gadget *gadget = udc->gadget; \
1598 return scnprintf(buf, PAGE_SIZE, "%d\n", gadget->name); \
1640 ret = add_uevent_var(env, "USB_UDC_NAME=%s", udc->gadget->name); in usb_udc_uevent()