dpaa2_io_ser..._multiple_fq(9)
π¦ NAME π¦
okay bestie, so this is dpaa2_io_service_enqueue_multiple_fq(9) from the Kernel API Manual β yes that's the whole giant name, the kernel really said "let's make it a paragraph" π β and what it does is: enqueue multiple frames to a frame queue using one fqid. One fqid, many frames, maximum efficiency, she's giving batch processing main character energy β¨
π SYNOPSIS π
int dpaa2_io_service_enqueue_multiple_fq (struct dpaa2_io *d , u32 fqid , const struct dpaa2_fd *fd , int nb );
that's the whole signature, no cap. four things go in, one int comes out π«Ά
π ARGUMENTS π
okay so here's what you're feeding her, one by one:
dβ the given DPIO service. like, the actual service object you're working with. this is the main character of the call tbh πfqidβ the given frame queue id. it's au32, it's the queue you're aiming at, and it's the one fqid for the whole batch (that's literally the whole point, iykyk π )fdβ the frame descriptor which is enqueued. it'sconst struct dpaa2_fd *, so you're passing a pointer and being very polite about not mutating it β¨nbβ number of frames to be enqueud. yeah, the original page says "enqueud" β we're keeping that, it's iconic, don't @ me π it's anint, it's how many frames you're pushing through
β¨ DESCRIPTION β¨
so what does it actually return, because that's the vibe check that matters:
0β slay, the enqueue worked, everything is fine, go off π-EBUSYβ the enqueue ring is not ready π she's busy, she's not taking new frames right now, try again later-ENODEVβ there is no dpio service π like genuinely none, no device, nothing to talk to
that's it, that's the whole contract. no hidden lore, no surprise fourth return value. periodt π
π SEE ALSO π
the source lives in this kernel file, go read it if you want the full behind-the-scenes:
./drivers/soc/fsl/dpio/dpio-service.c
and here's the whole friend group, all the sibling functions in (9) form β say hi to all of them, there are a lot:
dpaa2_io_service_select(9)dpaa2_io_create(9)dpaa2_io_down(9)dpaa2_io_irq(9)dpaa2_io_get_cpu(9)dpaa2_io_service_register(9)dpaa2_io_service_deregister(9)dpaa2_io_service_rearm(9)dpaa2_io_service_pull_fq(9)dpaa2_io_service_pull_channel(9)dpaa2_io_service_enqueue_fq(9)dpaa2_io_service_enqueue_multiple_desc_fq(9)dpaa2_io_service_enqueue_qd(9)dpaa2_io_service_release(9)dpaa2_io_service_acquire(9)dpaa2_io_store_create(9)dpaa2_io_store_destroy(9)dpaa2_io_store_next(9)dpaa2_io_query_fq_count(9)dpaa2_io_query_bp_count(9)dpaa2_io_set_irq_coalescing(9)dpaa2_io_get_irq_coalescing(9)dpaa2_io_set_adaptive_coalescing(9)dpaa2_io_get_adaptive_coalescing(9)dpaa2_io_update_net_dim(9)
π little reminder: this page came out of ./drivers/soc/fsl/dpio β that's the directory it calls home, and that's the version tag on the tin.
and that's the whole page bestie, mwah π β brought to you by the ./drivers/soc/fsl/dpio crew, dated October 2026, still out here documenting kernel functions with a (9) in the title like an absolute icon π§ββοΈπ
π¦ 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