pch_udc_activate_control_ep(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… pch_udc_activate_control_ep(9) β€” Kernel API Manual ✨

okay so bestie, welcome to the Kernel API Manual, and today's main character is pch_udc_activate_control_ep(9) πŸŽ€ she's a tiny function with a big job and honestly? she ate.


🌸 NAME 🌸

pch_udc_activate_control_ep β€” the function that enables the control endpoints for traffic after a reset πŸ’– literally her whole personality is "reset happened, time to get the control endpoints talking again."


✨ SYNOPSIS ✨

void pch_udc_activate_control_ep (struct pch_udc_dev *dev );

returns void, so no error codes to stress about β€” she just does the thing and dips 🫢


πŸ¦‹ ARGUMENTS πŸ¦‹

  • dev β€” a reference to the device structure. yeah, that's it, one arg, and she's holding a pointer to the pch_udc_dev so she knows which device she's out here activating 😌

πŸ‘‘ SEE ALSO πŸ‘‘

okay this is the part where the manpage just keeps going and I respect it fr fr β€” here's the whole extended friend group πŸ’œ

The kernel file: ./drivers/usb/gadget/udc/pch_udc.c

The struct besties: 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)

The CSR + wakeup + frame + selfpowered + disconnect + vbus-session crowd: 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)

The endpoint-config girlies: 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)

The interrupt squad πŸ”₯: 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)

The status/control readers and clearers: 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)

The pcd crew 🧚: 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)

The VBUS gpio hive: 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 + DMA handling: 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)

More endpoint-request ops: 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)

The transfer + service-routine icons 🌈: 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_svc_ur_interrupt(9), pch_udc_svc_enum_interrupt(9), pch_udc_svc_intf_interrupt(9), pch_udc_svc_cfg_interrupt(9)

The ISR + init + pool finale πŸ’€βœ¨: 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)


ngl bestie, if you're debugging a reset and the control endpoints are being weird, this is the page to keep open. she's small but she's doing the work πŸ’…

and that's the whole vibe check πŸ¦‹ brought to you by ./drivers/usb/gadget/udc, dated October 2026 β€” mwah, go read the source, ily, bye πŸ’–πŸŽ€πŸŒΈ

πŸ“¦ where this page comes from