drivers/net/wireless/ath/ath12k/dp_htt.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath12k/dp_htt.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/ath12k/dp_htt.h- Extension
.h- Size
- 64470 bytes
- Lines
- 1547
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct ath12k_dpstruct htt_tx_wbm_completionstruct htt_ver_req_cmdstruct htt_srng_setup_cmdstruct htt_ppdu_stats_cfg_cmdstruct htt_rx_ring_selection_cfg_cmdstruct htt_rx_ring_tlv_filterstruct htt_tx_ring_selection_cfg_cmdstruct htt_tx_ring_tlv_filterstruct htt_t2h_version_conf_msgstruct htt_t2h_peer_map_eventstruct htt_t2h_peer_unmap_eventstruct htt_resp_msgstruct htt_t2h_vdev_txrx_stats_indstruct htt_t2h_vdev_common_stats_tlvstruct ath12k_htt_ppdu_stats_msgstruct htt_tlvstruct htt_ppdu_stats_commonstruct htt_ppdu_stats_user_ratestruct htt_ppdu_stats_usr_cmpltn_cmnstruct htt_ppdu_stats_usr_cmpltn_ack_ba_statusstruct htt_ppdu_user_statsstruct htt_ppdu_statsstruct htt_ppdu_stats_infostruct ath12k_htt_mlo_offset_msgstruct htt_ext_stats_cfg_hdrstruct htt_ext_stats_cfg_cmdstruct htt_ext_stats_cfg_paramsstruct htt_mac_addrenum htt_h2t_msg_typeenum htt_srng_ring_typeenum htt_srng_ring_idenum htt_ppdu_stats_tag_typeenum htt_stats_internal_ppdu_frametypeenum htt_rx_filter_tlv_flagsenum htt_rx_mgmt_pkt_filter_tlv_flags0enum htt_rx_mgmt_pkt_filter_tlv_flags1enum htt_rx_ctrl_pkt_filter_tlv_flags2enum htt_rx_ctrl_pkt_filter_tlv_flags3enum htt_rx_data_pkt_filter_tlv_flasg3enum htt_tx_mon_upstream_tlv_flags0enum htt_t2h_msg_typeenum HTT_PPDU_STATS_BWenum htt_ppdu_stats_gienum HTT_PPDU_STATS_PPDU_TYPEenum htt_ppdu_stats_usr_compln_statusenum vdev_stats_offload_timer_duration
Annotated Snippet
struct htt_tx_wbm_completion {
__le32 rsvd0[2];
__le32 info0;
__le32 info1;
__le32 info2;
__le32 info3;
__le32 info4;
__le32 rsvd1;
} __packed;
enum htt_h2t_msg_type {
HTT_H2T_MSG_TYPE_VERSION_REQ = 0,
HTT_H2T_MSG_TYPE_SRING_SETUP = 0xb,
HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG = 0xc,
HTT_H2T_MSG_TYPE_EXT_STATS_CFG = 0x10,
HTT_H2T_MSG_TYPE_PPDU_STATS_CFG = 0x11,
HTT_H2T_MSG_TYPE_VDEV_TXRX_STATS_CFG = 0x1a,
HTT_H2T_MSG_TYPE_TX_MONITOR_CFG = 0x1b,
};
#define HTT_VER_REQ_INFO_MSG_ID GENMASK(7, 0)
#define HTT_OPTION_TCL_METADATA_VER_V1 1
#define HTT_OPTION_TCL_METADATA_VER_V2 2
#define HTT_OPTION_TAG GENMASK(7, 0)
#define HTT_OPTION_LEN GENMASK(15, 8)
#define HTT_OPTION_VALUE GENMASK(31, 16)
#define HTT_TCL_METADATA_VER_SZ 4
struct htt_ver_req_cmd {
__le32 ver_reg_info;
__le32 tcl_metadata_version;
} __packed;
enum htt_srng_ring_type {
HTT_HW_TO_SW_RING,
HTT_SW_TO_HW_RING,
HTT_SW_TO_SW_RING,
};
enum htt_srng_ring_id {
HTT_RXDMA_HOST_BUF_RING,
HTT_RXDMA_MONITOR_STATUS_RING,
HTT_RXDMA_MONITOR_BUF_RING,
HTT_RXDMA_MONITOR_DESC_RING,
HTT_RXDMA_MONITOR_DEST_RING,
HTT_HOST1_TO_FW_RXBUF_RING,
HTT_HOST2_TO_FW_RXBUF_RING,
HTT_RXDMA_NON_MONITOR_DEST_RING,
HTT_RXDMA_HOST_BUF_RING2,
HTT_TX_MON_HOST2MON_BUF_RING,
HTT_TX_MON_MON2HOST_DEST_RING,
HTT_RX_MON_HOST2MON_BUF_RING,
HTT_RX_MON_MON2HOST_DEST_RING,
};
/* host -> target HTT_SRING_SETUP message
*
* After target is booted up, Host can send SRING setup message for
* each host facing LMAC SRING. Target setups up HW registers based
* on setup message and confirms back to Host if response_required is set.
* Host should wait for confirmation message before sending new SRING
* setup message
*
* The message would appear as follows:
*
* |31 24|23 20|19|18 16|15|14 8|7 0|
* |--------------- +-----------------+----------------+------------------|
* | ring_type | ring_id | pdev_id | msg_type |
* |----------------------------------------------------------------------|
* | ring_base_addr_lo |
* |----------------------------------------------------------------------|
* | ring_base_addr_hi |
* |----------------------------------------------------------------------|
* |ring_misc_cfg_flag|ring_entry_size| ring_size |
* |----------------------------------------------------------------------|
* | ring_head_offset32_remote_addr_lo |
* |----------------------------------------------------------------------|
* | ring_head_offset32_remote_addr_hi |
* |----------------------------------------------------------------------|
* | ring_tail_offset32_remote_addr_lo |
* |----------------------------------------------------------------------|
* | ring_tail_offset32_remote_addr_hi |
* |----------------------------------------------------------------------|
* | ring_msi_addr_lo |
* |----------------------------------------------------------------------|
* | ring_msi_addr_hi |
* |----------------------------------------------------------------------|
* | ring_msi_data |
* |----------------------------------------------------------------------|
Annotation
- Detected declarations: `struct ath12k_dp`, `struct htt_tx_wbm_completion`, `struct htt_ver_req_cmd`, `struct htt_srng_setup_cmd`, `struct htt_ppdu_stats_cfg_cmd`, `struct htt_rx_ring_selection_cfg_cmd`, `struct htt_rx_ring_tlv_filter`, `struct htt_tx_ring_selection_cfg_cmd`, `struct htt_tx_ring_tlv_filter`, `struct htt_t2h_version_conf_msg`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.