ath9k_hw_updatetxtriglevel(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ath9k_hw_updatetxtriglevel πŸ’…

okay so bestie, this is a page from the Kernel API Manual β€” it's ath9k_hw_updatetxtriglevel(9) and honestly it's giving "niche wireless driver internals that will absolutely come up in a job interview" vibes. let's get into it ✨


🌸 NAME 🌸

ath9k_hw_updatetxtriglevel β€” adjusts the frame trigger level πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

bool ath9k_hw_updatetxtriglevel (struct ath_hw *ah , bool bIncTrigLevel
);

like, that's the whole signature. it returns a bool and takes two args, no cap. πŸ’œ


✨ ARGUMENTS ✨

  • ah β€” the atheros hardware struct 🫢 this is your hardware bestie, the thing you're poking at.
  • bIncTrigLevel β€” whether or not the frame trigger level should be updated. literally that's it, that's the whole bool. ⭐

πŸ”₯ DESCRIPTION πŸ”₯

okay so the frame trigger level β€” sit down for this one β€” specifies the minimum number of bytes, measured in units of 64 bytes, that must be DMA'ed into the PCU TX FIFO before the PCU will initiate sending the frame on the air. πŸ‘‘

and the way that matters? it can mean we initiate transmit before a full frame is on the PCU TX FIFO. yeah. iconically chaotic. it resets to 0x1 β€” meaning 64 bytes or a full frame, whichever occurs first πŸ’…

⚠️ caution must be taken here, fr fr. you have to set the frame trigger level based on the DMA request size. for example, if the DMA request size is set to 128 bytes, the trigger level cannot exceed 6 * 64 = 384. why? because there need to be enough space in the tx FIFO for the requested transfer size. hence the tx FIFO will stop with 512 - 128 = 384 bytes. and if we set the threshold to a value beyond 6? the transmit will hang. πŸ’€ not cute. not the move.

current dual stream devices have a PCU TX FIFO size of 8 KB. current single stream devices have a PCU TX FIFO size of 4 KB β€” however 😭 there is a hardware issue which forces us to use 2 KB instead, so the frame trigger level must not exceed 2 KB for these chipsets. no cap, that's just the rules. 🧚


🌈 SEE ALSO 🌈

  • Kernel file ./drivers/net/wireless/ath/ath9k/mac.c β€” go read it, iykyk πŸ“

and that's the whole page bestie, you ate that 🫢 source + version from ./drivers/net/wireless/ath/ath9k, dated October 2026, signing off as ath9k_hw_updatetxtriglevel(9) β€” mwah πŸ’–πŸŽ€βœ¨

πŸ“¦ where this page comes from