STRUCT KNAV_DMA_RX_CFG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 β€” an enum 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 β€” an enum 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, an unsigned int doing its little offset thing πŸŽ€
  • dst_q β€” destination queue for a given flow, also an unsigned int. it's giving directions, it's giving destination energy πŸ—ΊοΈ
  • thresh β€” an enum 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, an unsigned int and 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