STRUCT ATH_HW_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

okay so this is the Kernel API Manual page for struct ath_hw_ops(9), and the whole vibe is callbacks used by hardware code and driver code. no cap, that's the name line, bestie. πŸ’…


✨ SYNOPSIS ✨

here's the struct in all its main-character glory β€” every member, every callback, every semicolon, no skipping:

struct ath_hw_ops {
    void (*config_pci_powersave)(struct ath_hw *ah, bool power_off);
    void (*rx_enable)(struct ath_hw *ah);
    void (*set_desc_link)(void *ds, u32 link);
    int (*calibrate)(struct ath_hw *ah, struct ath9k_channel *chan, u8
rxchainmask, bool longcal);
    bool (*get_isr)(struct ath_hw *ah, enum ath9k_int *masked, u32
*sync_cause_p);
    void (*set_txdesc)(struct ath_hw *ah, void *ds, struct ath_tx_info
*i);
    int (*proc_txdesc)(struct ath_hw *ah, void *ds, struct ath_tx_status
*ts);
    int (*get_duration)(struct ath_hw *ah, const void *ds, int index);
    void (*antdiv_comb_conf_get)(struct ath_hw *ah, struct
ath_hw_antcomb_conf *antconf);
    void (*antdiv_comb_conf_set)(struct ath_hw *ah, struct
ath_hw_antcomb_conf *antconf);
    void (*spectral_scan_config)(struct ath_hw *ah, struct ath_spec_scan
*param);
    void (*spectral_scan_trigger)(struct ath_hw *ah);
    void (*spectral_scan_wait)(struct ath_hw *ah);
    void (*tx99_start)(struct ath_hw *ah, u32 qnum);
    void (*tx99_stop)(struct ath_hw *ah);
    void (*tx99_set_txpower)(struct ath_hw *ah, u8 power);
  #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT;
    void (*set_bt_ant_diversity)(struct ath_hw *hw, bool enable);
  #endif;
};

πŸ’… Members πŸ’…

the Members list is lowkey selective and only spills tea on these five, bestie β€” the rest are still up there in the struct, living their best lives:

  • config_pci_powersave β€” the original just lists this one here with no extra one-liner, so I'm not inventing lore. πŸ’€
  • calibrate β€” periodic calibration for NF, ANI, IQ, ADC gain, ADC-DC. yes, all of that, periodt. πŸ”₯
  • spectral_scan_config β€” set parameters for spectral scan and enable/disable it. iconic little config gremlin behavior. ✨
  • spectral_scan_trigger β€” trigger a spectral scan run. go go go πŸ¦‹
  • spectral_scan_wait β€” wait for a spectral scan run to finish. patience, bestie, patience 🫢

πŸ¦‹ Description πŸ¦‹

This structure contains callbacks designed to be used internally by hardware code and also by the lower level driver. it's giving teamwork, honestly β€” internal hardware code and the lower level driver both get to use these callbacks. πŸ’–


🌈 SEE ALSO 🌈

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

and that's the whole page, bestie! the footer energy is source/version ./drivers/net/wireless/ath/ath9k, date October 2026, and the title tag hanging out at the bottom is struct ath_hw_ops(9). bye bestie, slay responsibly πŸ’…βœ¨

πŸ“¦ where this page comes from