bcm63xx_ep0_do_setup(9)
π bcm63xx_ep0_do_setup(9) π
okay so bestie, welcome to the Kernel API Manual β¨ this one's all about bcm63xx_ep0_do_setup β a little function with main character energy and a LOT of friends (seriously, wait till you see SEE ALSO, it's giving family reunion π).
πΈ NAME πΈ
bcm63xx_ep0_do_setup β parses a new SETUP packet and decides how to handle it. like, it reads the vibe check and picks a plan π
β¨ SYNOPSIS β¨
enum bcm63xx_ep0_state bcm63xx_ep0_do_setup (struct bcm63xx_udc *udc );
yep, that's the whole signature, no cap π«Ά
π¦ ARGUMENTS π¦
udcβ a reference to the device controller. that's the main character here, the whole state machine revolves around it π
π DESCRIPTION π
okay so real talk, this is what the return values mean π§
EP0_IDLEβ probably shouldn't ever happen. like, lowkey never. if you see it, that's a situation πEP0_REQUEUEβ slay, we're ready for the next packet β¨- anything else β the transaction needs multiple stages of handling. so it's not a one-and-done, it's a whole arc π
ngl the "probably shouldn't ever happen" part is doing a lot of heavy lifting there, so don't come for me if you hit it π it's literally in the manual.
π SEE ALSO π
the friend group is huge bestie, buckle up π
- the Kernel file
./drivers/usb/gadget/udc/bcm63xx_udc.c 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_idle(9)bcm63xx_ep0_one_round(9)bcm63xx_ep0_process(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)
like I said. HUGE. π
π bye bestie π
this page lives in ./drivers/usb/gadget/udc, dated October 2026, and it's literally titled bcm63xx_ep0_do_setup(9) β go read the source, it ate π
β¨π«Ά
π¦ 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