drivers/net/wireless/ath/ath9k/hw.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath9k/hw.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/ath9k/hw.h- Extension
.h- Size
- 36251 bytes
- Lines
- 1230
- Domain
- Driver Families
- Bucket
- drivers/net
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/if_ether.hlinux/delay.hlinux/gpio/consumer.hlinux/io.hlinux/firmware.hmac.hani.heeprom.hcalib.hreg.hreg_mci.hphy.hbtcoex.hdynack.h../regd.h
Detected Declarations
struct ath9k_hw_wowstruct ath9k_hw_capabilitiesstruct ath9k_ops_configstruct ath9k_hw_cal_datastruct ath9k_channelstruct ath9k_beacon_statestruct chan_centersstruct ath9k_hw_versionstruct ath_gen_timer_configurationstruct ath_gen_timerstruct ath_gen_timer_tablestruct ath_hw_antcomb_confstruct ath_hw_radar_confstruct ath_hw_private_opsstruct ath_spec_scanstruct ath_hw_opsstruct ath_nf_limitsstruct ath_hwstruct ath_bus_opsenum ath_hw_txq_subtypeenum ath_ini_subsysenum ath9k_hw_capsenum ath9k_hw_hang_checksenum ath9k_intenum ath9k_cal_flagsenum ath9k_power_modeenum ser_reg_modeenum ath9k_rx_qtypeenum ath_cal_listfunction get_streamsfunction ath9k_hw_btcoex_is_enabledfunction ath9k_hw_mci_is_enabledfunction ath9k_hw_get_btcoex_schemefunction ar9003_hw_attach_aic_opsfunction ath9k_hw_mci_is_enabledfunction ath9k_hw_btcoex_enablefunction ath9k_hw_wow_apply_patternfunction ath9k_hw_wow_wakeupfunction ath9k_hw_wow_enable
Annotated Snippet
struct ath9k_hw_wow {
u32 wow_event_mask;
u32 wow_event_mask2;
u8 max_patterns;
};
struct ath9k_hw_capabilities {
u32 hw_caps; /* ATH9K_HW_CAP_* from ath9k_hw_caps */
u16 rts_aggr_limit;
u8 tx_chainmask;
u8 rx_chainmask;
u8 chip_chainmask;
u8 max_txchains;
u8 max_rxchains;
u8 num_gpio_pins;
u32 gpio_mask;
u8 rx_hp_qdepth;
u8 rx_lp_qdepth;
u8 rx_status_len;
u8 tx_desc_len;
u8 txs_len;
};
#define AR_NO_SPUR 0x8000
#define AR_BASE_FREQ_2GHZ 2300
#define AR_BASE_FREQ_5GHZ 4900
#define AR_SPUR_FEEQ_BOUND_HT40 19
#define AR_SPUR_FEEQ_BOUND_HT20 10
enum ath9k_hw_hang_checks {
HW_BB_WATCHDOG = BIT(0),
HW_PHYRESTART_CLC_WAR = BIT(1),
HW_BB_RIFS_HANG = BIT(2),
HW_BB_DFS_HANG = BIT(3),
HW_BB_RX_CLEAR_STUCK_HANG = BIT(4),
HW_MAC_HANG = BIT(5),
};
#define AR_PCIE_PLL_PWRSAVE_CONTROL BIT(0)
#define AR_PCIE_PLL_PWRSAVE_ON_D3 BIT(1)
#define AR_PCIE_PLL_PWRSAVE_ON_D0 BIT(2)
#define AR_PCIE_CDR_PWRSAVE_ON_D3 BIT(3)
#define AR_PCIE_CDR_PWRSAVE_ON_D0 BIT(4)
struct ath9k_ops_config {
int dma_beacon_response_time;
int sw_beacon_response_time;
bool cwm_ignore_extcca;
u32 pcie_waen;
u8 analog_shiftreg;
u32 ofdm_trig_low;
u32 ofdm_trig_high;
u32 cck_trig_high;
u32 cck_trig_low;
bool enable_paprd;
int serialize_regmode;
bool rx_intr_mitigation;
bool tx_intr_mitigation;
u8 max_txtrig_level;
u16 ani_poll_interval; /* ANI poll interval in ms */
u16 hw_hang_checks;
u16 rimt_first;
u16 rimt_last;
/* Platform specific config */
u32 aspm_l1_fix;
u32 xlna_gpio;
u32 ant_ctrl_comm2g_switch_enable;
bool xatten_margin_cfg;
bool alt_mingainidx;
u8 pll_pwrsave;
bool tx_gain_buffalo;
bool led_active_high;
};
enum ath9k_int {
ATH9K_INT_RX = 0x00000001,
ATH9K_INT_RXDESC = 0x00000002,
ATH9K_INT_RXHP = 0x00000001,
ATH9K_INT_RXLP = 0x00000002,
ATH9K_INT_RXNOFRM = 0x00000008,
ATH9K_INT_RXEOL = 0x00000010,
ATH9K_INT_RXORN = 0x00000020,
ATH9K_INT_TX = 0x00000040,
ATH9K_INT_TXDESC = 0x00000080,
ATH9K_INT_TIM_TIMER = 0x00000100,
ATH9K_INT_MCI = 0x00000200,
ATH9K_INT_BB_WATCHDOG = 0x00000400,
ATH9K_INT_TXURN = 0x00000800,
ATH9K_INT_MIB = 0x00001000,
Annotation
- Immediate include surface: `linux/if_ether.h`, `linux/delay.h`, `linux/gpio/consumer.h`, `linux/io.h`, `linux/firmware.h`, `mac.h`, `ani.h`, `eeprom.h`.
- Detected declarations: `struct ath9k_hw_wow`, `struct ath9k_hw_capabilities`, `struct ath9k_ops_config`, `struct ath9k_hw_cal_data`, `struct ath9k_channel`, `struct ath9k_beacon_state`, `struct chan_centers`, `struct ath9k_hw_version`, `struct ath_gen_timer_configuration`, `struct ath_gen_timer`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.