drivers/net/wireless/ath/ath12k/hw.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath12k/hw.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/ath12k/hw.h- Extension
.h- Size
- 7579 bytes
- Lines
- 312
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/mhi.hlinux/uuid.hwmi.hhal.h
Detected Declarations
struct hal_rx_descstruct hal_tcl_data_cmdstruct htt_rx_ring_tlv_filterstruct ath12k_hw_ring_maskstruct ath12k_hw_paramsstruct ath12k_hw_opsstruct ath12k_fw_ieenum ath12k_hw_rate_cckenum ath12k_hw_rate_ofdmenum ath12k_busenum hal_encrypt_typeenum ath12k_m3_fw_loadersenum ath12k_bd_ie_board_typeenum ath12k_bd_ie_regdb_typeenum ath12k_bd_ie_typefunction ath12k_hw_get_mac_from_pdev_idfunction ath12k_hw_mac_id_to_pdev_idfunction ath12k_hw_mac_id_to_srng_id
Annotated Snippet
struct ath12k_hw_ring_mask {
u8 tx[ATH12K_EXT_IRQ_GRP_NUM_MAX];
u8 rx_mon_dest[ATH12K_EXT_IRQ_GRP_NUM_MAX];
u8 rx_mon_status[ATH12K_EXT_IRQ_GRP_NUM_MAX];
u8 rx[ATH12K_EXT_IRQ_GRP_NUM_MAX];
u8 rx_err[ATH12K_EXT_IRQ_GRP_NUM_MAX];
u8 rx_wbm_rel[ATH12K_EXT_IRQ_GRP_NUM_MAX];
u8 reo_status[ATH12K_EXT_IRQ_GRP_NUM_MAX];
u8 host2rxdma[ATH12K_EXT_IRQ_GRP_NUM_MAX];
u8 tx_mon_dest[ATH12K_EXT_IRQ_GRP_NUM_MAX];
};
enum ath12k_m3_fw_loaders {
ath12k_m3_fw_loader_driver,
ath12k_m3_fw_loader_remoteproc,
};
struct ath12k_hw_params {
const char *name;
u16 hw_rev;
struct {
const char *dir;
size_t board_size;
size_t cal_offset;
enum ath12k_m3_fw_loaders m3_loader;
bool download_aux_ucode:1;
} fw;
u8 max_radios;
bool single_pdev_only:1;
u32 qmi_service_ins_id;
bool internal_sleep_clock:1;
const struct ath12k_hw_ops *hw_ops;
const struct ath12k_hw_ring_mask *ring_mask;
const struct ce_attr *host_ce_config;
u32 ce_count;
const struct ce_pipe_config *target_ce_config;
u32 target_ce_count;
const struct service_to_pipe *svc_to_ce_map;
u32 svc_to_ce_map_len;
bool rxdma1_enable:1;
int num_rxdma_per_pdev;
int num_rxdma_dst_ring;
bool rx_mac_buf_ring:1;
bool vdev_start_delay:1;
u16 interface_modes;
bool supports_monitor:1;
bool idle_ps:1;
bool download_calib:1;
bool supports_suspend:1;
bool tcl_ring_retry:1;
bool reoq_lut_support:1;
bool supports_shadow_regs:1;
bool supports_aspm:1;
bool current_cc_support:1;
u32 num_tcl_banks;
u32 max_tx_ring;
const struct mhi_controller_config *mhi_config;
void (*wmi_init)(struct ath12k_base *ab,
struct ath12k_wmi_resource_config_arg *config);
u64 qmi_cnss_feature_bitmap;
u32 rfkill_pin;
u32 rfkill_cfg;
u32 rfkill_on_level;
u32 rddm_size;
u8 def_num_link;
u16 max_mlo_peer;
u32 otp_board_id_register;
bool supports_sta_ps;
const guid_t *acpi_guid;
bool supports_dynamic_smps_6ghz;
u32 iova_mask;
Annotation
- Immediate include surface: `linux/mhi.h`, `linux/uuid.h`, `wmi.h`, `hal.h`.
- Detected declarations: `struct hal_rx_desc`, `struct hal_tcl_data_cmd`, `struct htt_rx_ring_tlv_filter`, `struct ath12k_hw_ring_mask`, `struct ath12k_hw_params`, `struct ath12k_hw_ops`, `struct ath12k_fw_ie`, `enum ath12k_hw_rate_cck`, `enum ath12k_hw_rate_ofdm`, `enum ath12k_bus`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
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.