STRUCT ATH_HW_PRIVATE_OPS(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐Ÿ’– NAME ๐Ÿ’–

struct ath_hw_private_ops โ€” callbacks used internally by hardware code.

Bestie, welcome to the struct ath_hw_private_ops(9) page from the Kernel API Manual. This is the private callback club, and it is very much invite-only. ๐Ÿ’…

โœจ SYNOPSIS โœจ

okay so here's the whole struct โ€” every single pointer, exactly as written, no cap:

       struct ath_hw_private_ops {
           void (*init_hang_checks)(struct ath_hw *ah);
           bool (*detect_mac_hang)(struct ath_hw *ah);
           bool (*detect_bb_hang)(struct ath_hw *ah);
           void (*init_cal_settings)(struct ath_hw *ah);
           bool (*init_cal)(struct ath_hw *ah, struct ath9k_channel *chan);
           void (*init_mode_gain_regs)(struct ath_hw *ah);
           void (*setup_calibration)(struct ath_hw *ah, struct ath9k_cal_list
       *currCal);
           int (*rf_set_freq)(struct ath_hw *ah, struct ath9k_channel *chan);
           void (*spur_mitigate_freq)(struct ath_hw *ah, struct ath9k_channel
       *chan);
           bool (*set_rf_regs)(struct ath_hw *ah, struct ath9k_channel *chan,
       u16 modesIndex);
           void (*set_channel_regs)(struct ath_hw *ah, struct ath9k_channel
       *chan);
           void (*init_bb)(struct ath_hw *ah, struct ath9k_channel *chan);
           int (*process_ini)(struct ath_hw *ah, struct ath9k_channel *chan);
           void (*olc_init)(struct ath_hw *ah);
           void (*set_rfmode)(struct ath_hw *ah, struct ath9k_channel *chan);
           void (*mark_phy_inactive)(struct ath_hw *ah);
           void (*set_delta_slope)(struct ath_hw *ah, struct ath9k_channel
       *chan);
           bool (*rfbus_req)(struct ath_hw *ah);
           void (*rfbus_done)(struct ath_hw *ah);
           void (*restore_chainmask)(struct ath_hw *ah);
           u32 (*compute_pll_control)(struct ath_hw *ah, struct ath9k_channel
       *chan);
           bool (*ani_control)(struct ath_hw *ah, enum ath9k_ani_cmd cmd, int
       param);
           void (*do_getnf)(struct ath_hw *ah, int16_t
       nfarray[NUM_NF_READINGS]);
           void (*set_radar_params)(struct ath_hw *ah, struct ath_hw_radar_conf
       *conf);
           int (*fast_chan_change)(struct ath_hw *ah, struct ath9k_channel
       *chan, u8 *ini_reloaded);
           void (*ani_cache_ini_regs)(struct ath_hw *ah);
         #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT;
           bool (*is_aic_enabled)(struct ath_hw *ah);
         #endif ;
        };

๐Ÿซถ Members ๐Ÿซถ

  • init_cal_settings โ€” setup types of calibrations supported.
  • init_cal โ€” starts actual calibration.
  • init_mode_gain_regs โ€” Initialize TX/RX gain registers.
  • setup_calibration โ€” set up calibration.
  • rf_set_freq โ€” change frequency.
  • spur_mitigate_freq โ€” spur mitigation.
  • set_rf_regs โ€” the manpage gives no description here, so we're not inventing one, bestie ๐Ÿ™ˆ.
  • compute_pll_control โ€” compute the PLL control value to use for AR_RTC_PLL_CONTROL for a given channel.
  • ani_cache_ini_regs โ€” cache the values for ANI from the initial register settings through the register initialization.

๐ŸŒธ Description ๐ŸŒธ

This structure contains private callbacks designed to only be used internally by the hardware core. Translation: it's giving internal-only energy โ€” hardware core business, not for random outside code to touch. ๐Ÿ”ฅ

๐Ÿ”ฎ SEE ALSO ๐Ÿ”ฎ

  • Kernel file ./drivers/net/wireless/ath/ath9k/hw.h
  • struct ath_hw_radar_conf(9)
  • struct ath_spec_scan(9)
  • struct ath_hw_ops(9)

Sign-off: source path ./drivers/net/wireless/ath/ath9k, date October 2026, and this manual page is struct ath_hw_private_ops(9). Mwah, bye bestie ๐Ÿ’‹๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from