ath5k_hw_wri...ate_duration(9)
π NAME π
ath5k_hw_write_rate_duration β bestie, this one fills in the rate code to duration table β¨ (yes it's as niche as it sounds, and yes it's iconic)
So the manual name for this whole page is ath5k_hw_wri...ate_duration(9) (they truncated it in the title, not me, iykyk) π
β¨ SYNOPSIS β¨
void ath5k_hw_write_rate_duration (struct ath5k_hw *ah );
That's it. That's the whole vibe. One function, no return value (void), one pointer coming in π₯
π¦ ARGUMENTS π¦
ahβ Thestruct ath5k_hw. That's the hardware struct, the whole main character of this file. Hand it over and we're good π
πΈ DESCRIPTION πΈ
Okay so picture this: hardware just got reset, right? And we need to write the rate code to duration table. That's literally the job description. π
This function is a helper for ath5k_hw_pcu_init. Like, it does not fly solo β it's the supportive bestie of that call π«Ά
And here's the tea: it seems all this is doing is setting an ACK timeout on the hardware, based on the current mode, for each rate. That's the read. β
Now the fun part β the rates which are capable of short preamble (802.11b rates 2Mbps, 5.5Mbps, and 11Mbps) have a different rate code. So guess what? We write their value twice β one for long preamble and one for short. Two entries, same rate, different preamble energy πβ¨
π NOTE π
Band doesn't matter here!! Not even a little!! π
If we set the values for OFDM it works on both a and g modes. So all we have to do is set values for all g rates that include all OFDM and CCK rates. Boom. Done. No cap. π
π SEE ALSO π
Kernel file ./drivers/net/wireless/ath/ath5k/pcu.c β Protocol Control Unit (PCU) functions(9), ACK rates(9), and honestly the whole friend group:
ath5k_hw_get_frame_duration(9)ath5k_hw_get_default_slottime(9)ath5k_hw_get_default_sifs(9)ath5k_hw_update_mib_counters(9)ath5k_hw_set_ack_timeout(9)ath5k_hw_set_cts_timeout(9)ath5k_hw_set_lladdr(9)ath5k_hw_set_bssid(9)ath5k_hw_set_bssid_mask(9)ath5k_hw_set_mcast_filter(9)ath5k_hw_get_rx_filter(9)ath5k_hw_set_rx_filter(9)ath5k_hw_get_tsf64(9)ath5k_hw_set_tsf64(9)ath5k_hw_reset_tsf(9)ath5k_hw_init_beacon_timers(9)ath5k_check_timer_win(9)ath5k_hw_check_beacon_timers(9)ath5k_hw_set_coverage_class(9)ath5k_hw_start_rx_pcu(9)ath5k_hw_stop_rx_pcu(9)ath5k_hw_set_opmode(9)ath5k_hw_pcu_init(9)
Go read them too, bestie. The PCU lore is deep and we are obsessed π§
And that's the page!! Source lives at ./drivers/net/wireless/ath/ath5k, dated October 2026, and the manual itself is ath5k_hw_wri...ate_duration(9) π mwah, stay slaying, and remember to man 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