pxa_ep_alloc_request(9)
π pxa_ep_alloc_request(9) π
okay so this is a page from the Kernel API Manual and it's all about pxa_ep_alloc_request β yes bestie, we're in the USB gadget weeds today, buckle up π
β¨ NAME β¨
pxa_ep_alloc_request β allocate a usb request. that's it, that's the whole job, and honestly? she slays at it π
π¦ SYNOPSIS π¦
struct usb_request * pxa_ep_alloc_request (struct usb_ep *_ep , gfp_t
gfp_flags );
like, you hand her an endpoint and some gfp_flags, and she hands you back a struct usb_request *. iconic behavior fr β¨
πΈ ARGUMENTS πΈ
_epβ the usb endpoint. that's the whole description. lowkey minimal but okay πgfp_flagsβ the original page literally gives us nothing here bestie, no description at all, and I'm not out here inventing technical facts, so this is a mystery flavored withgfp_flagsπ
π DESCRIPTION π
so for the pxa27x, these can just wrap kmalloc/kfree. no cap, that's the whole implementation vibe β allocate, free, done, main character energy π«Ά
but β and this is the important part, don't skip it β gadget drivers must still pass correctly initialized endpoints, because other controller drivers may care about how it's currently set up (dma issues etc). so like, do your homework before you call her, okay? the endpoint needs to actually be set up right or things get weird ππ₯
β SEE ALSO β
the crossover episode is long, bestie. grab a snack π. all of these live in the Kernel file ./drivers/usb/gadget/udc/pxa27x_udc.c:
is_match_usb_pxa(9)find_pxa_ep(9)update_pxa_ep_matches(9)pio_irq_enable(9)pio_irq_disable(9)udc_set_mask_UDCCR(9)udc_clear_mask_UDCCR(9)ep_write_UDCCSR(9)ep_count_bytes_remain(9)ep_is_empty(9)ep_is_full(9)epout_has_pkt(9)set_ep0state(9)ep0_idle(9)inc_ep_stats_reqs(9)inc_ep_stats_bytes(9)pxa_ep_setup(9)pxa_eps_setup(9)pxa_ep_free_request(9)ep_add_request(9)ep_del_request(9)req_done(9)ep_end_out_req(9)ep0_end_out_req(9)ep_end_in_req(9)ep0_end_in_req(9)nuke(9)read_packet(9)write_packet(9)read_fifo(9)write_fifo(9)read_ep0_fifo(9)write_ep0_fifo(9)pxa_ep_queue(9)pxa_ep_dequeue(9)pxa_ep_set_halt(9)pxa_ep_fifo_status(9)pxa_ep_fifo_flush(9)pxa_ep_enable(9)pxa_ep_disable(9)dplus_pullup(9)pxa_udc_get_frame(9)pxa_udc_wakeup(9)should_enable_udc(9)should_disable_udc(9)pxa_udc_pullup(9)pxa_udc_vbus_session(9)pxa_udc_vbus_draw(9)pxa_udc_phy_event(9)udc_disable(9)udc_init_data(9)udc_enable(9)pxa27x_udc_start(9)stop_activity(9)pxa27x_udc_stop(9)handle_ep0_ctrl_req(9)handle_ep0(9)handle_ep(9)pxa27x_change_configuration(9)pxa27x_change_interface(9)irq_udc_suspend(9)irq_udc_resume(9)irq_udc_reconfig(9)irq_udc_reset(9)pxa_udc_irq(9)pxa_udc_probe(9)pxa_udc_remove(9)pxa_udc_suspend(9)pxa_udc_resume(9)
ngl, nuke(9) being in that list is sending me π but no, it's a real function, go read it, iykyk.
and that's the page, bestie!! πβ¨ this one lives at ./drivers/usb/gadget/udc, dated October 2026 β mwah, kisses, go allocate some requests responsibly πππ¦
π¦ 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