Lines Matching refs:udc
740 if (gadget->udc->driver) in usb_gadget_disconnect()
741 gadget->udc->driver->disconnect(gadget); in usb_gadget_disconnect()
1038 struct usb_udc *udc = gadget->udc; in usb_gadget_state_work() local
1040 if (udc) in usb_gadget_state_work()
1041 sysfs_notify(&udc->dev.kobj, NULL, "state"); in usb_gadget_state_work()
1054 static void usb_udc_connect_control(struct usb_udc *udc) in usb_udc_connect_control() argument
1056 if (udc->vbus) in usb_udc_connect_control()
1057 usb_gadget_connect(udc->gadget); in usb_udc_connect_control()
1059 usb_gadget_disconnect(udc->gadget); in usb_udc_connect_control()
1073 struct usb_udc *udc = gadget->udc; in usb_udc_vbus_handler() local
1075 if (udc) { in usb_udc_vbus_handler()
1076 udc->vbus = status; in usb_udc_vbus_handler()
1077 usb_udc_connect_control(udc); in usb_udc_vbus_handler()
1112 static inline int usb_gadget_udc_start(struct usb_udc *udc) in usb_gadget_udc_start() argument
1116 if (udc->started) { in usb_gadget_udc_start()
1117 dev_err(&udc->dev, "UDC had already started\n"); in usb_gadget_udc_start()
1121 ret = udc->gadget->ops->udc_start(udc->gadget, udc->driver); in usb_gadget_udc_start()
1123 udc->started = true; in usb_gadget_udc_start()
1139 static inline void usb_gadget_udc_stop(struct usb_udc *udc) in usb_gadget_udc_stop() argument
1141 if (!udc->started) { in usb_gadget_udc_stop()
1142 dev_err(&udc->dev, "UDC had already stopped\n"); in usb_gadget_udc_stop()
1146 udc->gadget->ops->udc_stop(udc->gadget); in usb_gadget_udc_stop()
1147 udc->started = false; in usb_gadget_udc_stop()
1160 static inline void usb_gadget_udc_set_speed(struct usb_udc *udc, in usb_gadget_udc_set_speed() argument
1163 struct usb_gadget *gadget = udc->gadget; in usb_gadget_udc_set_speed()
1187 static inline void usb_gadget_enable_async_callbacks(struct usb_udc *udc) in usb_gadget_enable_async_callbacks() argument
1189 struct usb_gadget *gadget = udc->gadget; in usb_gadget_enable_async_callbacks()
1216 static inline void usb_gadget_disable_async_callbacks(struct usb_udc *udc) in usb_gadget_disable_async_callbacks() argument
1218 struct usb_gadget *gadget = udc->gadget; in usb_gadget_disable_async_callbacks()
1233 struct usb_udc *udc; in usb_udc_release() local
1235 udc = container_of(dev, struct usb_udc, dev); in usb_udc_release()
1237 kfree(udc); in usb_udc_release()
1279 struct usb_udc *udc; in usb_add_gadget() local
1282 udc = kzalloc(sizeof(*udc), GFP_KERNEL); in usb_add_gadget()
1283 if (!udc) in usb_add_gadget()
1286 device_initialize(&udc->dev); in usb_add_gadget()
1287 udc->dev.release = usb_udc_release; in usb_add_gadget()
1288 udc->dev.class = udc_class; in usb_add_gadget()
1289 udc->dev.groups = usb_udc_attr_groups; in usb_add_gadget()
1290 udc->dev.parent = gadget->dev.parent; in usb_add_gadget()
1291 ret = dev_set_name(&udc->dev, "%s", in usb_add_gadget()
1296 udc->gadget = gadget; in usb_add_gadget()
1297 gadget->udc = udc; in usb_add_gadget()
1299 udc->started = false; in usb_add_gadget()
1302 list_add_tail(&udc->list, &udc_list); in usb_add_gadget()
1305 ret = device_add(&udc->dev); in usb_add_gadget()
1310 udc->vbus = true; in usb_add_gadget()
1329 device_del(&udc->dev); in usb_add_gadget()
1333 list_del(&udc->list); in usb_add_gadget()
1337 put_device(&udc->dev); in usb_add_gadget()
1381 struct usb_udc *udc; in usb_get_gadget_udc_name() local
1386 list_for_each_entry(udc, &udc_list, list) { in usb_get_gadget_udc_name()
1387 if (!udc->driver) { in usb_get_gadget_udc_name()
1388 name = kstrdup(udc->gadget->name, GFP_KERNEL); in usb_get_gadget_udc_name()
1420 struct usb_udc *udc = gadget->udc; in usb_del_gadget() local
1422 if (!udc) in usb_del_gadget()
1428 list_del(&udc->list); in usb_del_gadget()
1431 kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE); in usb_del_gadget()
1435 device_unregister(&udc->dev); in usb_del_gadget()
1457 struct usb_udc *udc = gadget->udc; in gadget_match_driver() local
1463 strcmp(driver->udc_name, dev_name(&udc->dev)) != 0) in gadget_match_driver()
1477 struct usb_udc *udc = gadget->udc; in gadget_bind_driver() local
1488 udc->driver = driver; in gadget_bind_driver()
1491 dev_dbg(&udc->dev, "binding gadget driver [%s]\n", driver->function); in gadget_bind_driver()
1493 usb_gadget_udc_set_speed(udc, driver->max_speed); in gadget_bind_driver()
1495 ret = driver->bind(udc->gadget, driver); in gadget_bind_driver()
1499 ret = usb_gadget_udc_start(udc); in gadget_bind_driver()
1502 usb_gadget_enable_async_callbacks(udc); in gadget_bind_driver()
1503 usb_udc_connect_control(udc); in gadget_bind_driver()
1505 kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); in gadget_bind_driver()
1509 driver->unbind(udc->gadget); in gadget_bind_driver()
1513 dev_err(&udc->dev, "failed to start %s: %d\n", in gadget_bind_driver()
1517 udc->driver = NULL; in gadget_bind_driver()
1527 struct usb_udc *udc = gadget->udc; in gadget_unbind_driver() local
1528 struct usb_gadget_driver *driver = udc->driver; in gadget_unbind_driver()
1530 dev_dbg(&udc->dev, "unbinding gadget driver [%s]\n", driver->function); in gadget_unbind_driver()
1532 kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); in gadget_unbind_driver()
1535 usb_gadget_disable_async_callbacks(udc); in gadget_unbind_driver()
1538 udc->driver->unbind(gadget); in gadget_unbind_driver()
1539 usb_gadget_udc_stop(udc); in gadget_unbind_driver()
1543 udc->driver = NULL; in gadget_unbind_driver()
1602 struct usb_udc *udc = container_of(dev, struct usb_udc, dev); in srp_store() local
1605 usb_gadget_wakeup(udc->gadget); in srp_store()
1614 struct usb_udc *udc = container_of(dev, struct usb_udc, dev); in soft_connect_store() local
1617 device_lock(&udc->gadget->dev); in soft_connect_store()
1618 if (!udc->driver) { in soft_connect_store()
1625 usb_gadget_udc_start(udc); in soft_connect_store()
1626 usb_gadget_connect(udc->gadget); in soft_connect_store()
1628 usb_gadget_disconnect(udc->gadget); in soft_connect_store()
1629 usb_gadget_udc_stop(udc); in soft_connect_store()
1638 device_unlock(&udc->gadget->dev); in soft_connect_store()
1646 struct usb_udc *udc = container_of(dev, struct usb_udc, dev); in state_show() local
1647 struct usb_gadget *gadget = udc->gadget; in state_show()
1656 struct usb_udc *udc = container_of(dev, struct usb_udc, dev); in function_show() local
1661 drv = udc->driver; in function_show()
1673 struct usb_udc *udc = container_of(dev, struct usb_udc, dev); \
1675 usb_speed_string(udc->gadget->param)); \
1686 struct usb_udc *udc = container_of(dev, struct usb_udc, dev); \
1687 struct usb_gadget *gadget = udc->gadget; \
1728 struct usb_udc *udc = container_of(dev, struct usb_udc, dev); in usb_udc_uevent() local
1731 ret = add_uevent_var(env, "USB_UDC_NAME=%s", udc->gadget->name); in usb_udc_uevent()
1738 if (udc->driver) in usb_udc_uevent()
1740 udc->driver->function); in usb_udc_uevent()