Lines Matching refs:gadget
46 struct usb_gadget *gadget; member
473 int usb_gadget_frame_number(struct usb_gadget *gadget) in usb_gadget_frame_number() argument
477 ret = gadget->ops->get_frame(gadget); in usb_gadget_frame_number()
479 trace_usb_gadget_frame_number(gadget, ret); in usb_gadget_frame_number()
498 int usb_gadget_wakeup(struct usb_gadget *gadget) in usb_gadget_wakeup() argument
502 if (!gadget->ops->wakeup) { in usb_gadget_wakeup()
507 ret = gadget->ops->wakeup(gadget); in usb_gadget_wakeup()
510 trace_usb_gadget_wakeup(gadget, ret); in usb_gadget_wakeup()
525 int usb_gadget_set_selfpowered(struct usb_gadget *gadget) in usb_gadget_set_selfpowered() argument
529 if (!gadget->ops->set_selfpowered) { in usb_gadget_set_selfpowered()
534 ret = gadget->ops->set_selfpowered(gadget, 1); in usb_gadget_set_selfpowered()
537 trace_usb_gadget_set_selfpowered(gadget, ret); in usb_gadget_set_selfpowered()
553 int usb_gadget_clear_selfpowered(struct usb_gadget *gadget) in usb_gadget_clear_selfpowered() argument
557 if (!gadget->ops->set_selfpowered) { in usb_gadget_clear_selfpowered()
562 ret = gadget->ops->set_selfpowered(gadget, 0); in usb_gadget_clear_selfpowered()
565 trace_usb_gadget_clear_selfpowered(gadget, ret); in usb_gadget_clear_selfpowered()
584 int usb_gadget_vbus_connect(struct usb_gadget *gadget) in usb_gadget_vbus_connect() argument
588 if (!gadget->ops->vbus_session) { in usb_gadget_vbus_connect()
593 ret = gadget->ops->vbus_session(gadget, 1); in usb_gadget_vbus_connect()
596 trace_usb_gadget_vbus_connect(gadget, ret); in usb_gadget_vbus_connect()
614 int usb_gadget_vbus_draw(struct usb_gadget *gadget, unsigned mA) in usb_gadget_vbus_draw() argument
618 if (!gadget->ops->vbus_draw) { in usb_gadget_vbus_draw()
623 ret = gadget->ops->vbus_draw(gadget, mA); in usb_gadget_vbus_draw()
625 gadget->mA = mA; in usb_gadget_vbus_draw()
628 trace_usb_gadget_vbus_draw(gadget, ret); in usb_gadget_vbus_draw()
645 int usb_gadget_vbus_disconnect(struct usb_gadget *gadget) in usb_gadget_vbus_disconnect() argument
649 if (!gadget->ops->vbus_session) { in usb_gadget_vbus_disconnect()
654 ret = gadget->ops->vbus_session(gadget, 0); in usb_gadget_vbus_disconnect()
657 trace_usb_gadget_vbus_disconnect(gadget, ret); in usb_gadget_vbus_disconnect()
673 int usb_gadget_connect(struct usb_gadget *gadget) in usb_gadget_connect() argument
677 if (!gadget->ops->pullup) { in usb_gadget_connect()
682 if (gadget->deactivated) { in usb_gadget_connect()
687 gadget->connected = true; in usb_gadget_connect()
691 ret = gadget->ops->pullup(gadget, 1); in usb_gadget_connect()
693 gadget->connected = 1; in usb_gadget_connect()
696 trace_usb_gadget_connect(gadget, ret); in usb_gadget_connect()
715 int usb_gadget_disconnect(struct usb_gadget *gadget) in usb_gadget_disconnect() argument
719 if (!gadget->ops->pullup) { in usb_gadget_disconnect()
724 if (!gadget->connected) in usb_gadget_disconnect()
727 if (gadget->deactivated) { in usb_gadget_disconnect()
732 gadget->connected = false; in usb_gadget_disconnect()
736 ret = gadget->ops->pullup(gadget, 0); in usb_gadget_disconnect()
738 gadget->connected = 0; in usb_gadget_disconnect()
741 if (gadget->udc->driver) in usb_gadget_disconnect()
742 gadget->udc->driver->disconnect(gadget); in usb_gadget_disconnect()
746 trace_usb_gadget_disconnect(gadget, ret); in usb_gadget_disconnect()
763 int usb_gadget_deactivate(struct usb_gadget *gadget) in usb_gadget_deactivate() argument
767 if (gadget->deactivated) in usb_gadget_deactivate()
770 if (gadget->connected) { in usb_gadget_deactivate()
771 ret = usb_gadget_disconnect(gadget); in usb_gadget_deactivate()
779 gadget->connected = true; in usb_gadget_deactivate()
781 gadget->deactivated = true; in usb_gadget_deactivate()
784 trace_usb_gadget_deactivate(gadget, ret); in usb_gadget_deactivate()
799 int usb_gadget_activate(struct usb_gadget *gadget) in usb_gadget_activate() argument
803 if (!gadget->deactivated) in usb_gadget_activate()
806 gadget->deactivated = false; in usb_gadget_activate()
812 if (gadget->connected) in usb_gadget_activate()
813 ret = usb_gadget_connect(gadget); in usb_gadget_activate()
816 trace_usb_gadget_activate(gadget, ret); in usb_gadget_activate()
867 int usb_gadget_map_request(struct usb_gadget *gadget, in usb_gadget_map_request() argument
870 return usb_gadget_map_request_by_dev(gadget->dev.parent, req, is_in); in usb_gadget_map_request()
893 void usb_gadget_unmap_request(struct usb_gadget *gadget, in usb_gadget_unmap_request() argument
896 usb_gadget_unmap_request_by_dev(gadget->dev.parent, req, is_in); in usb_gadget_unmap_request()
947 int usb_gadget_ep_match_desc(struct usb_gadget *gadget, in usb_gadget_ep_match_desc() argument
971 if (!gadget_is_dualspeed(gadget) && usb_endpoint_maxp_mult(desc) > 1) in usb_gadget_ep_match_desc()
982 if (!gadget_is_dualspeed(gadget) && max > 1023) in usb_gadget_ep_match_desc()
988 if (ep_comp && gadget_is_superspeed(gadget)) { in usb_gadget_ep_match_desc()
1005 if (!gadget_is_dualspeed(gadget) && max > 64) in usb_gadget_ep_match_desc()
1025 int usb_gadget_check_config(struct usb_gadget *gadget) in usb_gadget_check_config() argument
1027 if (gadget->ops->check_config) in usb_gadget_check_config()
1028 return gadget->ops->check_config(gadget); in usb_gadget_check_config()
1037 struct usb_gadget *gadget = work_to_gadget(work); in usb_gadget_state_work() local
1038 struct usb_udc *udc = gadget->udc; in usb_gadget_state_work()
1044 void usb_gadget_set_state(struct usb_gadget *gadget, in usb_gadget_set_state() argument
1047 gadget->state = state; in usb_gadget_set_state()
1048 schedule_work(&gadget->work); in usb_gadget_set_state()
1057 usb_gadget_connect(udc->gadget); in usb_udc_connect_control()
1059 usb_gadget_disconnect(udc->gadget); in usb_udc_connect_control()
1071 void usb_udc_vbus_handler(struct usb_gadget *gadget, bool status) in usb_udc_vbus_handler() argument
1073 struct usb_udc *udc = gadget->udc; in usb_udc_vbus_handler()
1091 void usb_gadget_udc_reset(struct usb_gadget *gadget, in usb_gadget_udc_reset() argument
1094 driver->reset(gadget); in usb_gadget_udc_reset()
1095 usb_gadget_set_state(gadget, USB_STATE_DEFAULT); in usb_gadget_udc_reset()
1121 ret = udc->gadget->ops->udc_start(udc->gadget, udc->driver); in usb_gadget_udc_start()
1146 udc->gadget->ops->udc_stop(udc->gadget); in usb_gadget_udc_stop()
1163 struct usb_gadget *gadget = udc->gadget; in usb_gadget_udc_set_speed() local
1167 s = gadget->max_speed; in usb_gadget_udc_set_speed()
1169 s = min(speed, gadget->max_speed); in usb_gadget_udc_set_speed()
1171 if (s == USB_SPEED_SUPER_PLUS && gadget->ops->udc_set_ssp_rate) in usb_gadget_udc_set_speed()
1172 gadget->ops->udc_set_ssp_rate(gadget, gadget->max_ssp_rate); in usb_gadget_udc_set_speed()
1173 else if (gadget->ops->udc_set_speed) in usb_gadget_udc_set_speed()
1174 gadget->ops->udc_set_speed(gadget, s); in usb_gadget_udc_set_speed()
1189 struct usb_gadget *gadget = udc->gadget; in usb_gadget_enable_async_callbacks() local
1191 if (gadget->ops->udc_async_callbacks) in usb_gadget_enable_async_callbacks()
1192 gadget->ops->udc_async_callbacks(gadget, true); in usb_gadget_enable_async_callbacks()
1218 struct usb_gadget *gadget = udc->gadget; in usb_gadget_disable_async_callbacks() local
1220 if (gadget->ops->udc_async_callbacks) in usb_gadget_disable_async_callbacks()
1221 gadget->ops->udc_async_callbacks(gadget, false); in usb_gadget_disable_async_callbacks()
1254 void usb_initialize_gadget(struct device *parent, struct usb_gadget *gadget, in usb_initialize_gadget() argument
1257 INIT_WORK(&gadget->work, usb_gadget_state_work); in usb_initialize_gadget()
1258 gadget->dev.parent = parent; in usb_initialize_gadget()
1261 gadget->dev.release = release; in usb_initialize_gadget()
1263 gadget->dev.release = usb_udc_nop_release; in usb_initialize_gadget()
1265 device_initialize(&gadget->dev); in usb_initialize_gadget()
1266 gadget->dev.bus = &gadget_bus_type; in usb_initialize_gadget()
1277 int usb_add_gadget(struct usb_gadget *gadget) in usb_add_gadget() argument
1290 udc->dev.parent = gadget->dev.parent; in usb_add_gadget()
1292 kobject_name(&gadget->dev.parent->kobj)); in usb_add_gadget()
1296 udc->gadget = gadget; in usb_add_gadget()
1297 gadget->udc = udc; in usb_add_gadget()
1309 usb_gadget_set_state(gadget, USB_STATE_NOTATTACHED); in usb_add_gadget()
1315 gadget->id_number = ret; in usb_add_gadget()
1316 dev_set_name(&gadget->dev, "gadget.%d", ret); in usb_add_gadget()
1318 ret = device_add(&gadget->dev); in usb_add_gadget()
1325 ida_free(&gadget_id_numbers, gadget->id_number); in usb_add_gadget()
1328 flush_work(&gadget->work); in usb_add_gadget()
1354 int usb_add_gadget_udc_release(struct device *parent, struct usb_gadget *gadget, in usb_add_gadget_udc_release() argument
1359 usb_initialize_gadget(parent, gadget, release); in usb_add_gadget_udc_release()
1360 ret = usb_add_gadget(gadget); in usb_add_gadget_udc_release()
1362 usb_put_gadget(gadget); in usb_add_gadget_udc_release()
1388 name = kstrdup(udc->gadget->name, GFP_KERNEL); in usb_get_gadget_udc_name()
1405 int usb_add_gadget_udc(struct device *parent, struct usb_gadget *gadget) in usb_add_gadget_udc() argument
1407 return usb_add_gadget_udc_release(parent, gadget, NULL); in usb_add_gadget_udc()
1418 void usb_del_gadget(struct usb_gadget *gadget) in usb_del_gadget() argument
1420 struct usb_udc *udc = gadget->udc; in usb_del_gadget()
1425 dev_vdbg(gadget->dev.parent, "unregistering gadget\n"); in usb_del_gadget()
1432 flush_work(&gadget->work); in usb_del_gadget()
1433 device_del(&gadget->dev); in usb_del_gadget()
1434 ida_free(&gadget_id_numbers, gadget->id_number); in usb_del_gadget()
1445 void usb_del_gadget_udc(struct usb_gadget *gadget) in usb_del_gadget_udc() argument
1447 usb_del_gadget(gadget); in usb_del_gadget_udc()
1448 usb_put_gadget(gadget); in usb_del_gadget_udc()
1456 struct usb_gadget *gadget = dev_to_usb_gadget(dev); in gadget_match_driver() local
1457 struct usb_udc *udc = gadget->udc; in gadget_match_driver()
1476 struct usb_gadget *gadget = dev_to_usb_gadget(dev); in gadget_bind_driver() local
1477 struct usb_udc *udc = gadget->udc; in gadget_bind_driver()
1495 ret = driver->bind(udc->gadget, driver); in gadget_bind_driver()
1509 driver->unbind(udc->gadget); in gadget_bind_driver()
1526 struct usb_gadget *gadget = dev_to_usb_gadget(dev); in gadget_unbind_driver() local
1527 struct usb_udc *udc = gadget->udc; in gadget_unbind_driver()
1534 usb_gadget_disconnect(gadget); in gadget_unbind_driver()
1536 if (gadget->irq) in gadget_unbind_driver()
1537 synchronize_irq(gadget->irq); in gadget_unbind_driver()
1538 udc->driver->unbind(gadget); in gadget_unbind_driver()
1605 usb_gadget_wakeup(udc->gadget); in srp_store()
1617 device_lock(&udc->gadget->dev); in soft_connect_store()
1626 usb_gadget_connect(udc->gadget); in soft_connect_store()
1628 usb_gadget_disconnect(udc->gadget); in soft_connect_store()
1638 device_unlock(&udc->gadget->dev); in soft_connect_store()
1647 struct usb_gadget *gadget = udc->gadget; in state_show() local
1649 return sprintf(buf, "%s\n", usb_state_string(gadget->state)); in state_show()
1675 usb_speed_string(udc->gadget->param)); \
1687 struct usb_gadget *gadget = udc->gadget; \
1689 return scnprintf(buf, PAGE_SIZE, "%d\n", gadget->name); \
1731 ret = add_uevent_var(env, "USB_UDC_NAME=%s", udc->gadget->name); in usb_udc_uevent()