drivers/net/wireless/ath/ath12k/wifi7/hal_rx.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath12k/wifi7/hal_rx.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/ath12k/wifi7/hal_rx.h- Extension
.h- Size
- 30759 bytes
- Lines
- 875
- 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
hal_desc.h
Detected Declarations
struct hal_reo_statusstruct hal_rx_wbm_rel_infostruct hal_rx_mon_status_tlv_hdrstruct hal_rx_ppdu_startstruct hal_rx_ppdu_end_user_statsstruct hal_rx_ppdu_end_user_stats_extstruct hal_rx_ht_sig_infostruct hal_rx_lsig_b_infostruct hal_rx_lsig_a_infostruct hal_rx_vht_sig_a_infostruct hal_rx_he_sig_a_su_infostruct hal_rx_he_sig_a_mu_dl_infostruct hal_rx_he_sig_b1_mu_infostruct hal_rx_he_sig_b2_mu_infostruct hal_rx_he_sig_b2_ofdma_infostruct hal_rx_phyrx_rssi_legacy_infostruct hal_rx_mpdu_startstruct hal_rx_msdu_endstruct hal_rx_ppdu_end_durationstruct hal_rx_rxpcu_classification_overviewstruct hal_rx_msdu_liststruct hal_rx_frame_bitmap_ackstruct hal_rx_resp_req_infostruct hal_phyrx_common_user_infostruct hal_eht_sig_ndp_cmn_ebstruct hal_eht_sig_usig_overflowstruct hal_eht_sig_non_mu_mimostruct hal_eht_sig_mu_mimostruct hal_eht_sig_non_ofdma_cmn_ebstruct hal_eht_sig_ofdma_cmn_eb1struct hal_eht_sig_ofdma_cmn_eb2struct hal_eht_sig_ofdma_cmn_ebstruct hal_mon_usig_cmnstruct hal_mon_usig_tbstruct hal_mon_usig_mustruct hal_mon_usig_hdrstruct hal_receive_user_infoenum hal_rx_mon_statusenum hal_rx_vht_sig_a_gi_settingenum hal_rx_ul_reception_typeenum hal_eht_bwenum hal_mon_reception_type
Annotated Snippet
struct hal_rx_wbm_rel_info {
u32 cookie;
enum hal_wbm_rel_src_module err_rel_src;
enum hal_reo_dest_ring_push_reason push_reason;
u32 err_code;
bool first_msdu;
bool last_msdu;
bool continuation;
void *rx_desc;
bool hw_cc_done;
__le32 peer_metadata;
};
#define HAL_RX_MPDU_INFO_PN_GET_BYTE1(__val) \
le32_get_bits((__val), GENMASK(7, 0))
#define HAL_RX_MPDU_INFO_PN_GET_BYTE2(__val) \
le32_get_bits((__val), GENMASK(15, 8))
#define HAL_RX_MPDU_INFO_PN_GET_BYTE3(__val) \
le32_get_bits((__val), GENMASK(23, 16))
#define HAL_RX_MPDU_INFO_PN_GET_BYTE4(__val) \
le32_get_bits((__val), GENMASK(31, 24))
struct hal_rx_mon_status_tlv_hdr {
u32 hdr;
u8 value[];
};
#define HAL_TLV_STATUS_PPDU_NOT_DONE 0
#define HAL_TLV_STATUS_PPDU_DONE 1
#define HAL_TLV_STATUS_BUF_DONE 2
#define HAL_TLV_STATUS_PPDU_NON_STD_DONE 3
enum hal_rx_mon_status {
HAL_RX_MON_STATUS_PPDU_NOT_DONE,
HAL_RX_MON_STATUS_PPDU_DONE,
HAL_RX_MON_STATUS_BUF_DONE,
HAL_RX_MON_STATUS_BUF_ADDR,
HAL_RX_MON_STATUS_MPDU_START,
HAL_RX_MON_STATUS_MPDU_END,
HAL_RX_MON_STATUS_MSDU_END,
};
#define HAL_RX_PPDU_START_INFO0_PPDU_ID GENMASK(15, 0)
#define HAL_RX_PPDU_START_INFO1_CHAN_NUM GENMASK(15, 0)
#define HAL_RX_PPDU_START_INFO1_CHAN_FREQ GENMASK(31, 16)
struct hal_rx_ppdu_start {
__le32 info0;
__le32 info1;
__le32 ppdu_start_ts_31_0;
__le32 ppdu_start_ts_63_32;
__le32 rsvd[2];
} __packed;
#define HAL_RX_PPDU_END_USER_STATS_INFO0_PEER_ID GENMASK(13, 0)
#define HAL_RX_PPDU_END_USER_STATS_INFO0_DEVICE_ID GENMASK(15, 14)
#define HAL_RX_PPDU_END_USER_STATS_INFO0_MPDU_CNT_FCS_ERR GENMASK(26, 16)
#define HAL_RX_PPDU_END_USER_STATS_INFO1_MPDU_CNT_FCS_OK GENMASK(10, 0)
#define HAL_RX_PPDU_END_USER_STATS_INFO1_FC_VALID BIT(11)
#define HAL_RX_PPDU_END_USER_STATS_INFO1_QOS_CTRL_VALID BIT(12)
#define HAL_RX_PPDU_END_USER_STATS_INFO1_HT_CTRL_VALID BIT(13)
#define HAL_RX_PPDU_END_USER_STATS_INFO1_PKT_TYPE GENMASK(24, 21)
#define HAL_RX_PPDU_END_USER_STATS_INFO2_AST_INDEX GENMASK(15, 0)
#define HAL_RX_PPDU_END_USER_STATS_INFO2_FRAME_CTRL GENMASK(31, 16)
#define HAL_RX_PPDU_END_USER_STATS_INFO3_QOS_CTRL GENMASK(31, 16)
#define HAL_RX_PPDU_END_USER_STATS_INFO4_UDP_MSDU_CNT GENMASK(15, 0)
#define HAL_RX_PPDU_END_USER_STATS_INFO4_TCP_MSDU_CNT GENMASK(31, 16)
#define HAL_RX_PPDU_END_USER_STATS_INFO5_OTHER_MSDU_CNT GENMASK(15, 0)
#define HAL_RX_PPDU_END_USER_STATS_INFO5_TCP_ACK_MSDU_CNT GENMASK(31, 16)
#define HAL_RX_PPDU_END_USER_STATS_INFO6_TID_BITMAP GENMASK(15, 0)
#define HAL_RX_PPDU_END_USER_STATS_INFO6_TID_EOSP_BITMAP GENMASK(31, 16)
#define HAL_RX_PPDU_END_USER_STATS_INFO7_MPDU_OK_BYTE_COUNT GENMASK(24, 0)
#define HAL_RX_PPDU_END_USER_STATS_INFO8_MPDU_ERR_BYTE_COUNT GENMASK(24, 0)
struct hal_rx_ppdu_end_user_stats {
__le32 rsvd0[2];
__le32 info0;
__le32 info1;
__le32 info2;
__le32 info3;
Annotation
- Immediate include surface: `hal_desc.h`.
- Detected declarations: `struct hal_reo_status`, `struct hal_rx_wbm_rel_info`, `struct hal_rx_mon_status_tlv_hdr`, `struct hal_rx_ppdu_start`, `struct hal_rx_ppdu_end_user_stats`, `struct hal_rx_ppdu_end_user_stats_ext`, `struct hal_rx_ht_sig_info`, `struct hal_rx_lsig_b_info`, `struct hal_rx_lsig_a_info`, `struct hal_rx_vht_sig_a_info`.
- 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.