bcm63xx_update_cfg_iface(9)
π bcm63xx_update_cfg_iface(9) β like, the whole page
okay so bestie, we're in the Kernel API Manual today and the star of the show is bcm63xx_update_cfg_iface β¨ pull up a chair, this one's short but it matters.
πΈ NAME πΈ
bcm63xx_update_cfg_iface β read the current configuration/interface settings, no big deal, just keeping us all in sync π
π SYNOPSIS π
void bcm63xx_update_cfg_iface (struct bcm63xx_udc *udc );
that's it. that's the whole call. one argument, zero return, absolute icon behavior π
π¦ ARGUMENTS π¦
udcβ a reference to the device controller π«Ά hand it over and we're good.
π₯ DESCRIPTION π₯
so here's the vibe: this controller intercepts SET_CONFIGURATION and SET_INTERFACE messages. like, it just snatches them up before anyone else can even look at them π
the driver never sees the raw control packets coming in on the ep0 IUDMA channel β nope, not happening, not even a peek π but!! at least we get an interrupt event to tell us that new values are waiting in the USBD_STATUS register. so we're not completely in the dark, we just get the group-chat notification instead of the full message. slay for small mercies honestly β¨
π§ SEE ALSO π§
lowkey a whole friend group here, let's do the roll call π β starting with the kernel file itself:
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_setup(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_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)
yeah. that's the whole crew. read them, love them, iykyk π
ngl there's no OPTIONS section here, no exit statuses, no env vars β this page is a snack-sized one and we respect that π
and that's the page!! brought to you from ./drivers/usb/gadget/udc, dated October 2026 β mwah, go read a driver, ily π
π¦ 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