bcm63xx_ep0_process(9)
β¨ bcm63xx_ep0_process(9) β Kernel API Manual β¨
okay bestie, welcome to the absolute icon that is the ep0 worker thread / state machine π
π NAME π
bcm63xx_ep0_process β ep0 worker thread / state machine. thatβs the whole name, and yes she ate π
π¦ SYNOPSIS π¦
void bcm63xx_ep0_process (struct work_struct *w );
literally the whole signature, no cap π«Ά
πΈ ARGUMENTS πΈ
wβ Workqueue struct. thatβs the argument, bestie β¨
π DESCRIPTION π
okay so bcm63xx_ep0_process is triggered any time an event occurs on ep0. sheβs used to synchronize ep0 events and ensure that both HW and SW events occur in a well-defined order. no chaotic timeline here, periodt β¨
when the ep0 IUDMA queues are idle, it may synthesize SET_CONFIGURATION / SET_INTERFACE requests that were consumed by the USBD hardware. iykyk π
the worker function will continue iterating around the state machine until there is nothing left to do. usually, βnothing left to doβ means that weβre waiting for a new event from the hardware. and thatβs the vibe check ππ₯
π SEE ALSO π
kernel file: ./drivers/usb/gadget/udc/bcm63xx_udc.c
and the whole squad is right here, no one left behind π
struct iudma_ch_cfg(9)struct iudma_ch(9)struct bcm63xx_ep(9)struct bcm63xx_req(9)struct bcm63xx_udc(9)bcm63xx_ep_dma_select(9)bcm63xx_set_stall(9)bcm63xx_fifo_setup(9)bcm63xx_fifo_reset_ep(9)bcm63xx_fifo_reset(9)bcm63xx_ep_init(9)bcm63xx_ep_setup(9)iudma_write(9)iudma_read(9)iudma_reset_channel(9)iudma_init_channel(9)iudma_init(9)iudma_uninit(9)bcm63xx_set_ctrl_irqs(9)bcm63xx_select_phy_mode(9)bcm63xx_select_pullup(9)bcm63xx_uninit_udc_hw(9)bcm63xx_init_udc_hw(9)bcm63xx_ep_enable(9)bcm63xx_ep_disable(9)bcm63xx_udc_alloc_request(9)bcm63xx_udc_free_request(9)bcm63xx_udc_queue(9)bcm63xx_udc_dequeue(9)bcm63xx_udc_set_halt(9)bcm63xx_udc_set_wedge(9)bcm63xx_ep0_setup_callback(9)bcm63xx_ep0_spoof_set_cfg(9)bcm63xx_ep0_spoof_set_iface(9)bcm63xx_ep0_map_write(9)bcm63xx_ep0_complete(9)bcm63xx_ep0_nuke_reply(9)bcm63xx_ep0_read_complete(9)bcm63xx_ep0_internal_request(9)bcm63xx_ep0_do_setup(9)bcm63xx_ep0_do_idle(9)bcm63xx_ep0_one_round(9)bcm63xx_udc_get_frame(9)bcm63xx_udc_pullup(9)bcm63xx_udc_start(9)bcm63xx_udc_stop(9)bcm63xx_update_cfg_iface(9)bcm63xx_update_link_speed(9)bcm63xx_update_wedge(9)bcm63xx_udc_ctrl_isr(9)bcm63xx_udc_data_isr(9)bcm63xx_udc_init_debugfs(9)bcm63xx_udc_cleanup_debugfs(9)bcm63xx_udc_probe(9)bcm63xx_udc_remove(9)
source/version: ./drivers/usb/gadget/udc Β· date: October 2026 β mwah, thatβs the page, bestie ππ
π¦ 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