STRUCT KNAV_DMA_RX_CFG(9)
π struct knav_dma_rx_cfg(9) β Rx flow configuration π
okay so bestie, welcome to the kernel API manual β¨ this whole page is literally about one struct β struct knav_dma_rx_cfg β and it's the entire vibe check for how a receive (Rx) flow gets set up. ngl it's giving "small struct, big job" energy π
πΈ NAME πΈ
struct knav_dma_rx_cfg β Rx flow configuration. that's it, that's the whole name section, and it ate π
β SYNOPSIS β
here's the whole layout, character for character, no cap π«Ά
struct knav_dma_rx_cfg {
bool einfo_present;
bool psinfo_present;
enum knav_dma_rx_err_mode err_mode;
enum knav_dma_desc_type desc_type;
bool psinfo_at_sop;
unsigned int sop_offset;
unsigned int dst_q;
enum knav_dma_rx_thresholds thresh;
unsigned int fdq[KNAV_DMA_FDQ_PER_CHAN];
unsigned int sz_thresh0;
unsigned int sz_thresh1;
unsigned int sz_thresh2;
};
she's a struct with range, she's a struct with lore, she is everything π
π¦ Members π¦
okay now the main character section β every single field, lemme introduce you π
einfo_presentβ extended packet info present? say less, it's a bool and it's telling you whether that extended packet info is in the building β¨psinfo_presentβ PS words present. are the PS words here or are they ghosting you? this bool knows πerr_modeβ anenum knav_dma_rx_err_mode, and it's literally the error behaviour when you hit buffer starvation. that's the moment, that's the drama πdesc_typeβ anenum knav_dma_desc_typeβ host or monolithic desc, pick your icon πpsinfo_at_sopβ bool, and it's true when the PS word is located at start of packet. lowkey positional queen πsop_offsetβ start of packet offset, anunsigned intdoing its little offset thing πdst_qβ destination queue for a given flow, also anunsigned int. it's giving directions, it's giving destination energy πΊοΈthreshβ anenum knav_dma_rx_thresholdsβ the Rx flow size threshold, the moment where size gets judged (lovingly) βfdqβ the Free desc Queue array!unsigned int fdq[KNAV_DMA_FDQ_PER_CHAN];β a whole array, per channel, living her best life π¦sz_thresh0β RX packet size threshold 0, anunsigned intand the first of her name πΈsz_thresh1β RX packet size threshold 1, yes there's a second one, she's not alone πsz_thresh2β RX packet size threshold 2, the third threshold, completing the threshold trio, periodt π₯
fr fr bestie, write these fields exactly as they are β kernel code does not appreciate creative reinterpretation π
π₯ SEE ALSO π₯
go read these next, iykyk π
- Kernel file
./include/linux/soc/ti/knav_dma.h struct knav_dma_tx_cfg(9)struct knav_dma_cfg(9)struct knav_dma_desc(9)
the Tx one is right there if you wanna see the other side of the story, and the desc/cfg ones are the supporting cast, all iconic, all worth a read π«Ά
π sign-off π
that's the whole page babes π this one lives at ./include/linux/soc/ti, dated October 2026, and it's filed under the header struct knav_dma_rx_cfg(9) β same name, same manual, no notes. go configure some Rx flows and slay β¨ππ
π¦ 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