pch_udc_star...xt_txrequest(9)
π NAME π
pch_udc_start_next_txrequest β okay bestie, this is literally the function that starts the next transmission requirement β¨ (that's the whole description, don't come for me, it's what the manpage says π)
This one lives in the Kernel API Manual, so you already know it's giving kernel-dev main character energy π
β¨ SYNOPSIS β¨
void pch_udc_start_next_txrequest (struct pch_udc_ep *ep );
Returns nothing (void), takes exactly one thing. Minimalist. Iconic. Periodt π
π«Ά ARGUMENTS π«Ά
epβ the reference to the endpoint structure π¦ like, it's a pointer to astruct pch_udc_ep, and that's the tea. That's who you hand over. No cap.
π SEE ALSO π
Alright so this next bit is basically the whole group chat π¬ β the manpage points at the kernel file ./drivers/usb/gadget/udc/pch_udc.c plus a massive roll call of structs and functions. Not me dropping all of them, but every single one is here because we do not skip the boring parts in this house π
The structs first, because they're the moment π
struct pch_udc_data_dma_desc(9),struct pch_udc_stp_dma_desc(9),struct pch_udc_cfg_data(9)struct pch_udc_ep(9),struct pch_vbus_gpio_data(9),struct pch_udc_dev(9)struct pch_udc_request(9)
CSR / core-ish stuff πΈ
pch_udc_csr_busy(9),pch_udc_write_csr(9),pch_udc_read_csr(9),pch_udc_rmt_wakeup(9)pch_udc_get_frame(9),pch_udc_clear_selfpowered(9),pch_udc_set_selfpowered(9)pch_udc_set_disconnect(9),pch_udc_clear_disconnect(9),pch_udc_reconnect(9)pch_udc_vbus_session(9)
All the endpoint setters, lowkey a whole collection π¦
pch_udc_ep_set_stall(9),pch_udc_ep_clear_stall(9),pch_udc_ep_set_trfr_type(9)pch_udc_ep_set_bufsz(9),pch_udc_ep_set_maxpkt(9),pch_udc_ep_set_subptr(9)pch_udc_ep_set_ddptr(9),pch_udc_ep_set_pd(9),pch_udc_ep_set_rrdy(9)pch_udc_ep_clear_rrdy(9)
DMA + interrupts, the serious ones π₯
pch_udc_set_dma(9),pch_udc_clear_dma(9),pch_udc_set_csr_done(9)pch_udc_disable_interrupts(9),pch_udc_enable_interrupts(9)pch_udc_disable_ep_interrupts(9),pch_udc_enable_ep_interrupts(9)pch_udc_read_device_interrupts(9),pch_udc_write_device_interrupts(9)pch_udc_read_ep_interrupts(9),pch_udc_write_ep_interrupts(9)
Status + control registers π
pch_udc_read_device_status(9)pch_udc_read_ep_control(9),pch_udc_clear_ep_control(9)pch_udc_read_ep_status(9),pch_udc_clear_ep_status(9)
NAK, flush, enable/disable π
pch_udc_ep_set_nak(9),pch_udc_ep_clear_nak(9),pch_udc_ep_fifo_flush(9)pch_udc_ep_enable(9),pch_udc_ep_disable(9)pch_udc_wait_ep_stall(9)
Init / exit / PCD layer β
pch_udc_init(9),pch_udc_exit(9)pch_udc_pcd_get_frame(9),pch_udc_pcd_wakeup(9),pch_udc_pcd_selfpowered(9)pch_udc_pcd_pullup(9),pch_udc_pcd_vbus_session(9),pch_udc_pcd_vbus_draw(9)
VBUS GPIO squad π
pch_vbus_gpio_get_value(9),pch_vbus_gpio_work_fall(9),pch_vbus_gpio_work_rise(9)pch_vbus_gpio_irq(9),pch_vbus_gpio_init(9),pch_vbus_gpio_free(9)
Request helpers + DMA chain π§
complete_req(9),empty_req_queue(9)pch_udc_free_dma_chain(9),pch_udc_create_dma_chain(9)prepare_dma(9),process_zlp(9)pch_udc_start_rxrequest(9)
Gadget-side PCD entry points π
pch_udc_pcd_ep_enable(9),pch_udc_pcd_ep_disable(9)pch_udc_alloc_request(9),pch_udc_free_request(9)pch_udc_pcd_queue(9),pch_udc_pcd_dequeue(9)pch_udc_pcd_set_halt(9),pch_udc_pcd_set_wedge(9)pch_udc_pcd_fifo_flush(9)
Transfer completion + service handlers π
pch_udc_init_setup_buff(9)pch_udc_complete_transfer(9),pch_udc_complete_receiver(9)pch_udc_svc_data_in(9),pch_udc_svc_data_out(9)pch_udc_svc_control_in(9),pch_udc_svc_control_out(9)pch_udc_postsvc_epinters(9),pch_udc_read_all_epstatus(9)pch_udc_activate_control_ep(9)pch_udc_svc_ur_interrupt(9),pch_udc_svc_enum_interrupt(9)pch_udc_svc_intf_interrupt(9),pch_udc_svc_cfg_interrupt(9)pch_udc_dev_isr(9),pch_udc_isr(9)
Setup / reinit / pools, the finale π
Lowkey the whole pch_udc.c file is in the SEE ALSO because everything in that driver is connected, iykyk π
And that's the page, bestie! π«Άπ This one came out of the Kernel API Manual source-path ./drivers/usb/gadget/udc, dated October 2026 β go read the real thing if you need the deep lore, and slay your kernel journey β¨π
π
π¦ 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