drivers/net/wireless/ath/ath12k/wmi.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath12k/wmi.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/ath12k/wmi.h- Extension
.h- Size
- 194870 bytes
- Lines
- 6721
- 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
net/mac80211.hhtc.hcmn_defs.h
Detected Declarations
struct ath12k_basestruct ath12kstruct ath12k_link_vifstruct ath12k_fw_statsstruct ath12k_reg_tpc_power_infostruct wmi_cmd_hdrstruct wmi_tlvstruct ath12k_wmi_pdev_band_argstruct ath12k_wmi_ppe_threshold_argstruct ath12k_wmi_hal_reg_capabilities_ext_argstruct ath12k_wmi_host_mem_chunk_paramsstruct ath12k_wmi_host_mem_chunk_argstruct ath12k_wmi_resource_config_argstruct ath12k_wmi_init_cmd_argstruct ath12k_wmi_pdev_band_to_mac_paramsstruct ath12k_wmi_pdev_set_hw_mode_cmdstruct ath12k_wmi_ppe_threshold_paramsstruct ath12k_wmi_abi_version_paramsstruct wmi_init_cmdstruct ath12k_wmi_resource_config_paramsstruct wmi_service_ready_eventstruct wmi_service_ready_ext_eventstruct ath12k_wmi_soc_mac_phy_hw_mode_caps_paramsstruct ath12k_wmi_hw_mode_cap_paramsstruct ath12k_wmi_mac_phy_caps_paramsstruct ath12k_wmi_hal_reg_caps_ext_paramsstruct ath12k_wmi_soc_hal_reg_caps_paramsstruct wmi_service_ready_ext2_eventstruct ath12k_wmi_dbs_or_sbs_cap_paramsstruct ath12k_wmi_caps_ext_paramsstruct ath12k_wmi_mac_addr_paramsstruct ath12k_wmi_dma_ring_caps_paramsstruct ath12k_wmi_ready_event_min_paramsstruct wmi_ready_eventstruct wmi_service_available_eventstruct ath12k_wmi_vdev_create_argstruct wmi_vdev_create_cmdstruct ath12k_wmi_vdev_txrx_streams_paramsstruct wmi_vdev_create_mlo_paramsstruct wmi_vdev_start_mlo_paramsstruct wmi_partner_link_infostruct wmi_vdev_delete_cmdstruct ath12k_wmi_vdev_up_paramsstruct wmi_vdev_up_cmdstruct wmi_vdev_stop_cmdstruct wmi_vdev_down_cmdstruct ath12k_wmi_ssid_paramsstruct wmi_vdev_start_request_cmd
Annotated Snippet
struct wmi_cmd_hdr {
__le32 cmd_id;
} __packed;
struct wmi_tlv {
__le32 header;
u8 value[];
} __packed;
#define WMI_TLV_LEN GENMASK(15, 0)
#define WMI_TLV_TAG GENMASK(31, 16)
#define TLV_HDR_SIZE sizeof_field(struct wmi_tlv, header)
#define WMI_CMD_HDR_CMD_ID GENMASK(23, 0)
#define WMI_MAX_MEM_REQS 32
#define ATH12K_MAX_HW_LISTEN_INTERVAL 5
#define WMI_HOST_RC_DS_FLAG 0x01
#define WMI_HOST_RC_CW40_FLAG 0x02
#define WMI_HOST_RC_SGI_FLAG 0x04
#define WMI_HOST_RC_HT_FLAG 0x08
#define WMI_HOST_RC_RTSCTS_FLAG 0x10
#define WMI_HOST_RC_TX_STBC_FLAG 0x20
#define WMI_HOST_RC_RX_STBC_FLAG 0xC0
#define WMI_HOST_RC_RX_STBC_FLAG_S 6
#define WMI_HOST_RC_WEP_TKIP_FLAG 0x100
#define WMI_HOST_RC_TS_FLAG 0x200
#define WMI_HOST_RC_UAPSD_FLAG 0x400
#define WMI_HT_CAP_ENABLED 0x0001
#define WMI_HT_CAP_HT20_SGI 0x0002
#define WMI_HT_CAP_DYNAMIC_SMPS 0x0004
#define WMI_HT_CAP_TX_STBC 0x0008
#define WMI_HT_CAP_TX_STBC_MASK_SHIFT 3
#define WMI_HT_CAP_RX_STBC 0x0030
#define WMI_HT_CAP_RX_STBC_MASK_SHIFT 4
#define WMI_HT_CAP_LDPC 0x0040
#define WMI_HT_CAP_L_SIG_TXOP_PROT 0x0080
#define WMI_HT_CAP_MPDU_DENSITY 0x0700
#define WMI_HT_CAP_MPDU_DENSITY_MASK_SHIFT 8
#define WMI_HT_CAP_HT40_SGI 0x0800
#define WMI_HT_CAP_RX_LDPC 0x1000
#define WMI_HT_CAP_TX_LDPC 0x2000
#define WMI_HT_CAP_IBF_BFER 0x4000
/* These macros should be used when we wish to advertise STBC support for
* only 1SS or 2SS or 3SS.
*/
#define WMI_HT_CAP_RX_STBC_1SS 0x0010
#define WMI_HT_CAP_RX_STBC_2SS 0x0020
#define WMI_HT_CAP_RX_STBC_3SS 0x0030
#define WMI_HT_CAP_DEFAULT_ALL (WMI_HT_CAP_ENABLED | \
WMI_HT_CAP_HT20_SGI | \
WMI_HT_CAP_HT40_SGI | \
WMI_HT_CAP_TX_STBC | \
WMI_HT_CAP_RX_STBC | \
WMI_HT_CAP_LDPC)
#define WMI_VHT_CAP_MAX_MPDU_LEN_MASK 0x00000003
#define WMI_VHT_CAP_RX_LDPC 0x00000010
#define WMI_VHT_CAP_SGI_80MHZ 0x00000020
#define WMI_VHT_CAP_SGI_160MHZ 0x00000040
#define WMI_VHT_CAP_TX_STBC 0x00000080
#define WMI_VHT_CAP_RX_STBC_MASK 0x00000300
#define WMI_VHT_CAP_RX_STBC_MASK_SHIFT 8
#define WMI_VHT_CAP_SU_BFER 0x00000800
#define WMI_VHT_CAP_SU_BFEE 0x00001000
#define WMI_VHT_CAP_MAX_CS_ANT_MASK 0x0000E000
#define WMI_VHT_CAP_MAX_CS_ANT_MASK_SHIFT 13
#define WMI_VHT_CAP_MAX_SND_DIM_MASK 0x00070000
#define WMI_VHT_CAP_MAX_SND_DIM_MASK_SHIFT 16
#define WMI_VHT_CAP_MU_BFER 0x00080000
#define WMI_VHT_CAP_MU_BFEE 0x00100000
#define WMI_VHT_CAP_MAX_AMPDU_LEN_EXP 0x03800000
#define WMI_VHT_CAP_MAX_AMPDU_LEN_EXP_SHIT 23
#define WMI_VHT_CAP_RX_FIXED_ANT 0x10000000
#define WMI_VHT_CAP_TX_FIXED_ANT 0x20000000
#define WMI_VHT_CAP_MAX_MPDU_LEN_11454 0x00000002
/* These macros should be used when we wish to advertise STBC support for
* only 1SS or 2SS or 3SS.
*/
#define WMI_VHT_CAP_RX_STBC_1SS 0x00000100
#define WMI_VHT_CAP_RX_STBC_2SS 0x00000200
#define WMI_VHT_CAP_RX_STBC_3SS 0x00000300
#define WMI_VHT_CAP_DEFAULT_ALL (WMI_VHT_CAP_MAX_MPDU_LEN_11454 | \
WMI_VHT_CAP_SGI_80MHZ | \
Annotation
- Immediate include surface: `net/mac80211.h`, `htc.h`, `cmn_defs.h`.
- Detected declarations: `struct ath12k_base`, `struct ath12k`, `struct ath12k_link_vif`, `struct ath12k_fw_stats`, `struct ath12k_reg_tpc_power_info`, `struct wmi_cmd_hdr`, `struct wmi_tlv`, `struct ath12k_wmi_pdev_band_arg`, `struct ath12k_wmi_ppe_threshold_arg`, `struct ath12k_wmi_hal_reg_capabilities_ext_arg`.
- 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.