usb_gadget_udc_start_locked(9)
π usb_gadget_udc_start_locked(9) β bestie edition π
okay so this is a page straight out of the Kernel API Manual and honestly? it's a little cutie. it's giving "quietly important background character who actually runs everything." let's get into it β¨
πΈ NAME πΈ
usb_gadget_udc_start_locked β the one that tells the usb device controller to start up. that's it, that's the vibe. π
β¨ SYNOPSIS β¨
int usb_gadget_udc_start_locked (struct usb_udc *udc );
π ARGUMENTS π
udcβ the UDC that's getting started. the main character of this whole function, no cap. π
π¦ DESCRIPTION π¦
so here's the tea: this call gets issued by the UDC Class driver when it's about to register a gadget driver to the device controller β and it happens before it calls the gadget driver's bind method. timing is everything, iykyk. β°
the whole point? it lets the controller stay powered off until it's strictly necessary for it to be powered on. lowkey a little energy-saving slay. πβ¨
returns zero on success β and if it doesn't work out, it returns a negative errno. (so like, if you see a negative number, that's the ick, not a win. π)
β οΈ note bestie: the caller should acquire connect_lock before invoking this function. don't skip that part, fr fr. π
π SEE ALSO π
the whole friend group, in order, exactly as listed, no gatekeeping:
- Kernel file
./drivers/usb/gadget/udc/core.c struct usb_udc(9)usb_ep_set_maxpacket_limit(9)usb_ep_enable(9)usb_ep_disable(9)usb_ep_alloc_request(9)usb_ep_free_request(9)usb_ep_queue(9)usb_ep_dequeue(9)usb_ep_set_halt(9)usb_ep_clear_halt(9)usb_ep_set_wedge(9)usb_ep_fifo_status(9)usb_ep_fifo_flush(9)usb_gadget_frame_number(9)usb_gadget_wakeup(9)usb_gadget_set_remote_wakeup(9)usb_gadget_set_selfpowered(9)usb_gadget_clear_selfpowered(9)usb_gadget_vbus_connect(9)usb_gadget_vbus_draw(9)usb_gadget_vbus_disconnect(9)usb_gadget_connect(9)usb_gadget_disconnect(9)usb_gadget_deactivate(9)usb_gadget_activate(9)usb_gadget_giveback_request(9)gadget_find_ep_by_name(9)usb_gadget_check_config(9)usb_udc_vbus_handler(9)usb_gadget_udc_reset(9)usb_gadget_udc_stop_locked(9)usb_gadget_udc_set_speed(9)usb_gadget_enable_async_callbacks(9)usb_gadget_disable_async_callbacks(9)usb_udc_release(9)usb_initialize_gadget(9)usb_add_gadget(9)usb_add_gadget_udc_release(9)usb_get_gadget_udc_name(9)usb_add_gadget_udc(9)usb_del_gadget(9)usb_del_gadget_udc(9)
and that's the whole page, bestie π«Ά this lil manual lives in ./drivers/usb/gadget/udc and it's dated October 2026 β go off, calendar icon. π
π mwah, hope this helped!! π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms