drivers/net/wireless/ath/ath12k/wifi7/dp_mon.c
Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath12k/wifi7/dp_mon.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/ath/ath12k/wifi7/dp_mon.c- Extension
.c- Size
- 103990 bytes
- Lines
- 3429
- 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.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
hal_desc.h../dp_mon.hdp_mon.h../debug.hhal_qcn9274.hdp_rx.h../dp_tx.h../peer.h
Detected Declarations
function Copyrightfunction ath12k_wifi7_dp_mon_rx_memset_ppdu_infofunction ath12k_wifi7_dp_mon_get_buf_lenfunction ath12k_wifi7_dp_mon_rx_handle_ofdma_infofunction ath12k_wifi7_dp_mon_rx_populate_byte_countfunction ath12k_wifi7_dp_mon_rx_populate_mu_user_infofunction hal_rx_mon_hal_ru_size_to_ath12k_ru_sizefunction hal_rx_ul_ofdma_ru_size_to_widthfunction ath12k_wifi7_dp_mon_hal_rx_parse_user_infofunction ath12k_wifi7_hal_mon_map_legacy_rate_to_hw_ratefunction ath12k_wifi7_dp_mon_parse_l_sig_bfunction ath12k_wifi7_dp_mon_parse_l_sig_afunction ath12k_wifi7_dp_mon_hal_rx_parse_u_sig_cmnfunction ath12k_wifi7_dp_mon_hal_rx_parse_u_sig_tbfunction ath12k_wifi7_dp_mon_hal_rx_parse_u_sig_mufunction ath12k_wifi7_dp_mon_hal_rx_parse_u_sig_hdrfunction ath12k_wifi7_dp_mon_parse_vht_sig_afunction ath12k_wifi7_dp_mon_parse_ht_sigfunction ath12k_wifi7_dp_mon_parse_he_sig_b2_ofdmafunction ath12k_wifi7_dp_mon_parse_he_sig_b2_mufunction ath12k_wifi7_dp_mon_parse_he_sig_b1_mufunction ath12k_wifi7_dp_mon_parse_he_sig_mufunction ath12k_wifi7_dp_mon_parse_he_sig_sufunction ath12k_wifi7_dp_mon_hal_rx_is_non_ofdmafunction ath12k_wifi7_dp_mon_hal_rx_is_ofdmafunction ath12k_wifi7_dp_mon_hal_rx_is_frame_type_ndpfunction ath12k_wifi7_dp_mon_hal_rx_parse_eht_sig_ndpfunction ath12k_wifi7_dp_mon_hal_rx_parse_usig_overflowfunction ath12k_wifi7_dp_mon_hal_rx_parse_non_ofdma_usersfunction ath12k_wifi7_dp_mon_hal_rx_parse_eht_mumimo_userfunction ath12k_wifi7_dp_mon_hal_rx_parse_eht_non_mumimo_userfunction ath12k_wifi7_dp_mon_hal_rx_is_mu_mimo_userfunction ath12k_wifi7_dp_mon_hal_rx_parse_eht_sig_non_ofdmafunction ath12k_wifi7_dp_mon_hal_rx_parse_ru_allocationfunction ath12k_wifi7_dp_mon_hal_rx_parse_eht_sig_ofdmafunction ath12k_wifi7_dp_mon_parse_eht_sig_hdrfunction ath12k_wifi7_dp_mon_parse_rx_msdu_end_errfunction ath12k_wifi7_parse_cmn_usr_infofunction ath12k_wifi7_dp_mon_parse_status_msdu_endfunction ath12k_wifi7_dp_mon_rx_parse_status_tlvfunction ath12k_wifi7_dp_mon_parse_rx_dest_tlvfunction ath12k_wifi7_dp_mon_tx_get_ppdu_infofunction ath12k_wifi7_dp_mon_hal_tx_ppdu_infofunction ath12k_wifi7_dp_mon_tx_gen_cts2self_framefunction ath12k_wifi7_dp_mon_tx_gen_rts_framefunction ath12k_wifi7_dp_mon_tx_gen_3addr_qos_null_framefunction ath12k_wifi7_dp_mon_tx_gen_4addr_qos_null_framefunction ath12k_wifi7_dp_mon_tx_gen_ack_frame
Annotated Snippet
switch (ru_index_320mhz) {
case HAL_EHT_RU_996_484_0:
case HAL_EHT_RU_996x2_484_0:
case HAL_EHT_RU_996x3_484_0:
ru_index = 0;
break;
case HAL_EHT_RU_996_484_1:
case HAL_EHT_RU_996x2_484_1:
case HAL_EHT_RU_996x3_484_1:
ru_index = 1;
break;
case HAL_EHT_RU_996_484_2:
case HAL_EHT_RU_996x2_484_2:
case HAL_EHT_RU_996x3_484_2:
ru_index = 2;
break;
case HAL_EHT_RU_996_484_3:
case HAL_EHT_RU_996x2_484_3:
case HAL_EHT_RU_996x3_484_3:
ru_index = 3;
break;
case HAL_EHT_RU_996_484_4:
case HAL_EHT_RU_996x2_484_4:
case HAL_EHT_RU_996x3_484_4:
ru_index = 4;
break;
case HAL_EHT_RU_996_484_5:
case HAL_EHT_RU_996x2_484_5:
case HAL_EHT_RU_996x3_484_5:
ru_index = 5;
break;
case HAL_EHT_RU_996_484_6:
case HAL_EHT_RU_996x2_484_6:
case HAL_EHT_RU_996x3_484_6:
ru_index = 6;
break;
case HAL_EHT_RU_996_484_7:
case HAL_EHT_RU_996x2_484_7:
case HAL_EHT_RU_996x3_484_7:
ru_index = 7;
break;
case HAL_EHT_RU_996x2_484_8:
ru_index = 8;
break;
case HAL_EHT_RU_996x2_484_9:
ru_index = 9;
break;
case HAL_EHT_RU_996x2_484_10:
ru_index = 10;
break;
case HAL_EHT_RU_996x2_484_11:
ru_index = 11;
break;
default:
ru_index = HAL_EHT_RU_INVALID;
break;
}
ru_size += 4;
}
rtap_ru_size = hal_rx_mon_hal_ru_size_to_ath12k_ru_size(ru_size);
if (rtap_ru_size != ATH12K_EHT_RU_INVALID) {
u32 known, data;
known = __le32_to_cpu(eht->known);
known |= IEEE80211_RADIOTAP_EHT_KNOWN_RU_MRU_SIZE_OM;
eht->known = cpu_to_le32(known);
data = __le32_to_cpu(eht->data[1]);
data |= u32_encode_bits(rtap_ru_size,
IEEE80211_RADIOTAP_EHT_DATA1_RU_SIZE);
eht->data[1] = cpu_to_le32(data);
}
if (ru_index != HAL_EHT_RU_INVALID) {
u32 known, data;
known = __le32_to_cpu(eht->known);
known |= IEEE80211_RADIOTAP_EHT_KNOWN_RU_MRU_INDEX_OM;
eht->known = cpu_to_le32(known);
data = __le32_to_cpu(eht->data[1]);
data |= u32_encode_bits(rtap_ru_size,
IEEE80211_RADIOTAP_EHT_DATA1_RU_INDEX);
eht->data[1] = cpu_to_le32(data);
}
if (mon_rx_user_status && ru_index != HAL_EHT_RU_INVALID &&
rtap_ru_size != ATH12K_EHT_RU_INVALID) {
Annotation
- Immediate include surface: `hal_desc.h`, `../dp_mon.h`, `dp_mon.h`, `../debug.h`, `hal_qcn9274.h`, `dp_rx.h`, `../dp_tx.h`, `../peer.h`.
- Detected declarations: `function Copyright`, `function ath12k_wifi7_dp_mon_rx_memset_ppdu_info`, `function ath12k_wifi7_dp_mon_get_buf_len`, `function ath12k_wifi7_dp_mon_rx_handle_ofdma_info`, `function ath12k_wifi7_dp_mon_rx_populate_byte_count`, `function ath12k_wifi7_dp_mon_rx_populate_mu_user_info`, `function hal_rx_mon_hal_ru_size_to_ath12k_ru_size`, `function hal_rx_ul_ofdma_ru_size_to_width`, `function ath12k_wifi7_dp_mon_hal_rx_parse_user_info`, `function ath12k_wifi7_hal_mon_map_legacy_rate_to_hw_rate`.
- 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.