STRUCT PCH_UDC_EP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct pch_udc_ep(9) ✨

okay so bestie, welcome to the Kernel API Manual πŸ’– today we're looking at struct pch_udc_ep β€” it's literally the structure that holds all the info for one PCH USB device Endpoint. one endpoint. all its little secrets. iconic behavior honestly πŸŽ€


🌸 NAME 🌸

struct pch_udc_ep β€” the structure holding a PCH USB device Endpoint's information πŸ¦‹


⭐ SYNOPSIS ⭐

no cap, here's the whole shape of it, exactly as it lives:

struct pch_udc_ep {
    struct usb_ep                   ep;
    dma_addr_t td_stp_phys;
    dma_addr_t td_data_phys;
    struct pch_udc_stp_dma_desc     *td_stp;
    struct pch_udc_data_dma_desc    *td_data;
    struct pch_udc_dev              *dev;
    unsigned long                   offset_addr;
    struct list_head                queue;
    unsigned num:5, in:1, halted:1;
    unsigned long                   epsts;
 };

like… look at those bitfields. num:5, in:1, halted:1. she's packed. she's efficient. we stan πŸ’…


πŸŽ€ Members πŸŽ€

time for the roll call, bestie β€” every single one, no skips:

  • ep β€” the embedded ep request 🫢
  • td_stp_phys β€” for setup request
  • td_data_phys β€” for data request
  • td_stp β€” for setup request
  • td_data β€” for data request
  • dev β€” a reference to the device struct ✨
  • offset_addr β€” offset address of ep register
  • queue β€” the queue for requests
  • num β€” endpoint number
  • in β€” endpoint is IN
  • halted β€” is the endpoint halted? πŸ€”
  • epsts β€” Endpoint status

πŸ”₯ SEE ALSO πŸ”₯

this list is long long, so buckle up bestie β€” Kernel file ./drivers/usb/gadget/udc/pch_udc.c struct, plus literally all of these:

struct pch_udc_data_dma_desc(9), struct pch_udc_stp_dma_desc(9), struct pch_udc_cfg_data(9), struct pch_vbus_gpio_data(9), struct pch_udc_dev(9), struct pch_udc_request(9), 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), 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), 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), 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), 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), 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), 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), 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), 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), pch_udc_init_setup_buff(9), pch_udc_start_next_txrequest(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), pch_udc_setup_ep0(9), pch_udc_pcd_reinit(9), pch_udc_pcd_init(9), init_dma_pools(9)

ok that's the whole roster. bestie said "see also: everyone." and honestly? respect. πŸ‘‘

and that's the page!! πŸ¦‹ this one came from ./drivers/usb/gadget/udc, dated October 2026 β€” so like, future vibes fr fr. mwah, go read the other 100 man pages now, iykyk πŸ’œπŸŒΈπŸŽ€

πŸ“¦ where this page comes from