dwc2_hc_continue_transfer(9)
π dwc2_hc_continue_transfer(9) β like, the continuation era of your transfer π
okay so this is a page straight out of the Kernel API Manual, bestie, and it's about one very specific little function. buckle up π
β¨ NAME β¨
dwc2_hc_continue_transfer β the function that continues a data transfer that was started by a previous call to dwc2_hc_start_transfer(). that's it. that's the whole vibe. it's the "part two" of your transfer, the sequel nobody asked for but everybody needed π¦
β¨ SYNOPSIS β¨
int dwc2_hc_continue_transfer (struct dwc2_hsotg *hsotg , struct
dwc2_host_chan *chan );
two pointers in, one int out. she's lowkey simple like that π
β¨ ARGUMENTS β¨
hsotgβ the programming view of the DWC_otg controller. this is your main character β the whole controller, in struct form πchanβ the info needed to initialize the host channel. like, specifically that channel's little packet of setup deets π
β¨ DESCRIPTION β¨
okay so, listen up, because this part is important and i'm not gonna let you skip it π
the caller has to make sure there's enough space in the request queue and in the Tx Data FIFO. that's on you, not on the function. don't come crying if you didn't vibe check the queue first.
this function should only be called in Slave mode. periodt. in DMA mode, the controller just does its own thing autonomously to complete transfers that were programmed to a host channel β she doesn't need you hovering π
now the fun part, per-transfer-type:
- for an OUT transfer, a new data packet gets loaded into the appropriate FIFO if there's any data remaining to be queued. no leftover data? no packet. bye π«Ά
- for an IN transfer, another data packet is always requested. every single time. she's greedy like that, and honestly? iconic π₯
- for the SETUP phase of a control transfer, this function... does nothing. literally nothing. it's giving "showed up to the group project and contributed zero" π
β¨ RETURN β¨
1β a new request got queued π0β no more requests are required for this transfer, we're done here β
β¨ SEE ALSO β¨
this is the part where the manpage just dumps the whole friend group on you. all from the kernel file ./drivers/usb/dwc2/hcd.c, bestie, every single one π
dwc2_enable_common_interrupts(9)dwc2_enable_host_interrupts(9)dwc2_disable_host_interrupts(9)dwc2_calc_frame_interval(9)dwc2_read_packet(9)dwc2_dump_channel_info(9)dwc2_hc_init(9)dwc2_hc_halt(9)dwc2_hc_cleanup(9)dwc2_hc_set_even_odd_frame(9)dwc2_hc_write_packet(9)dwc2_hc_do_ping(9)dwc2_hc_start_transfer(9)dwc2_hc_start_transfer_ddma(9)dwc2_hcd_start(9)dwc2_hcd_connect(9)dwc2_hcd_disconnect(9)dwc2_hcd_rem_wakeup(9)dwc2_hcd_stop(9)dwc2_core_init(9)dwc2_core_host_init(9)dwc2_assign_and_init_hc(9)dwc2_hcd_select_transactions(9)dwc2_queue_transaction(9)dwc2_hcd_queue_transactions(9)dwc2_port_suspend(9)dwc2_port_resume(9)dwc2_host_get_tt_info(9)dwc2_host_put_tt_info(9)dwc2_backup_host_registers(9)dwc2_restore_host_registers(9)dwc2_host_enter_hibernation(9)dwc2_host_enter_partial_power_down(9)dwc2_host_enter_clock_gating(9)dwc2_host_exit_clock_gating(9)
and that's the page, bestie π§ this little gem lives in ./drivers/usb/dwc2, stamped October 2026, and you can find her filed under dwc2_hc_continue_transfer(9). mwah πβ¨
π¦ 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