PHY CALIBRATION ROUTINES(9)
PHY Calibration routines
Kernel API Manual check, bestie β this whole page is the 9 section energy, and we're about to get into the PHY calibration routines. It's giving "hardware self-care checklist," ngl. β¨π
π Noise floor calibration π
Okay so when we tell the hardware to perform a noise floor calibration by setting the AR5K_PHY_AGCCTL_NF bit on AR5K_PHY_AGCCTL, it will periodically sample-and-hold the minimum noise level seen at the antennas. That value is then stored in a ring buffer of recently measured noise floor values, so we have a moving window of the last few samples. The median of the values in the history is then loaded into the hardware for its own use for RSSI and CCA measurements. This type of calibration doesn't interfere with traffic. slay, no drama. π
π¦ AGC calibration π¦
When we tell the hardware to perform an AGC (Automatic Gain Control) calibration by setting AR5K_PHY_AGCCTL_CAL, hw disconnects the antennas and does a calibration on the DC offsets of ADCs. During this period rx/tx gets disabled, so we have to deal with it on the driver part. lowkey a big deal β the driver part is not just vibing, it has to handle that window. π
πΈ I/Q calibration πΈ
When we tell the hardware to perform an I/Q calibration, it tries to correct I/Q imbalance and fix QAM constellation by sampling data from rxed frames. It doesn't interfere with traffic. iconic behavior, honestly. π«Ά
For more infos on AGC and I/Q calibration check out patent doc #03/094463. πβ¨
π SEE ALSO π
- Kernel file
./drivers/net/wireless/ath/ath5k/phy.cPHY related functions(9) ath5k_hw_radio_revision(9)ath5k_channel_ok(9)ath5k_hw_chan_has_spur_noise(9)ath5k_hw_rfb_op(9)ath5k_hw_write_ofdm_timings(9)ath5k_hw_phy_disable(9)ath5k_hw_wait_for_synth(9)RF Gain optimization(9)ath5k_hw_rfgain_opt_init(9)ath5k_hw_request_rfgain_probe(9)ath5k_hw_rf_gainf_corr(9)ath5k_hw_rf_check_gainf_readback(9)ath5k_hw_rf_gainf_adjust(9)ath5k_hw_gainf_calibrate(9)ath5k_hw_rfgain_init(9)ath5k_hw_rfregs_init(9)ath5k_hw_rf5110_chan2athchan(9)ath5k_hw_rf5110_channel(9)ath5k_hw_rf5111_chan2athchan(9)ath5k_hw_rf5111_channel(9)ath5k_hw_rf5112_channel(9)ath5k_hw_rf2425_channel(9)ath5k_hw_channel(9)ath5k_hw_read_measured_noise_floor(9)ath5k_hw_init_nfcal_hist(9)ath5k_hw_update_nfcal_hist(9)ath5k_hw_get_median_noise_floor(9)ath5k_hw_update_noise_floor(9)ath5k_hw_rf5110_calibrate(9)ath5k_hw_rf511x_iq_calibrate(9)ath5k_hw_phy_calibrate(9)ath5k_hw_set_spur_mitigation_filter(9)Antenna control(9)ath5k_hw_set_def_antenna(9)ath5k_hw_set_fast_div(9)ath5k_hw_set_antenna_switch(9)ath5k_hw_set_antenna_mode(9)ath5k_get_interpolated_value(9)ath5k_get_linear_pcdac_min(9)ath5k_create_power_curve(9)ath5k_get_chan_pcal_surrounding_piers(9)ath5k_get_rate_pcal_data(9)ath5k_get_max_ctl_power(9)Power to PCDAC table functions(9)ath5k_fill_pwr_to_pcdac_table(9)ath5k_combine_linear_pcdac_curves(9)ath5k_write_pcdac_table(9)Power to PDADC table functions(9)ath5k_combine_pwr_to_pdadc_curves(9)ath5k_write_pwr_to_pdadc_table(9)ath5k_setup_channel_powertable(9)ath5k_write_channel_powertable(9)Per-rate tx power setting(9)ath5k_setup_rate_powertable(9)ath5k_hw_txpower(9)ath5k_hw_set_txpower_limit(9)ath5k_hw_phy_init(9)
source/version: ./drivers/net/wireless/ath/ath5k Β· date: October 2026 Β· page: PHY Calibration routines(9) β bye bestie, hydrate and calibrate 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