[PATCH v5 3/9] wifi: ath12k: Add HAL_RX_PPDU_START_USER_INFO TLV parsing support
Karthikeyan Periyasamy
quic_periyasa at quicinc.com
Wed Jan 29 01:09:35 PST 2025
On 1/29/2025 11:05 AM, Vasanthakumar Thiagarajan wrote:
>
>
> On 1/27/2025 4:17 PM, Karthikeyan Periyasamy wrote:
>> Currently, monitor is not enabled. However, in the future, the monitor
>> will be enabled. Therefore, add necessary HAL_RX_PPDU_START_USER_INFO TLV
>> parsing support in monitor Rx path, which help to populate the EHT
>> radiotap
>> data.
>>
>> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1
>> Tested-on: WCN7850 hw2.0 PCI
>> WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
>>
>> Co-developed-by: P Praneesh <quic_ppranees at quicinc.com>
>> Signed-off-by: P Praneesh <quic_ppranees at quicinc.com>
>> Signed-off-by: Karthikeyan Periyasamy <quic_periyasa at quicinc.com>
>> ---
>> drivers/net/wireless/ath/ath12k/dp_mon.c | 309 +++++++++++++++++++++-
>> drivers/net/wireless/ath/ath12k/hal_rx.h | 291 +++++++++++++++++---
>> drivers/net/wireless/ath/ath12k/rx_desc.h | 9 -
>> 3 files changed, 553 insertions(+), 56 deletions(-)
>>
...
>> +
>> + 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) {
>> + mon_rx_user_status->ul_ofdma_ru_start_index = ru_index;
>> + mon_rx_user_status->ul_ofdma_ru_size = rtap_ru_size;
>> +
>> + ru_width = hal_rx_ul_ofdma_ru_size_to_width(rtap_ru_size);
>> +
>> + mon_rx_user_status->ul_ofdma_ru_width = ru_width;
>> + mon_rx_user_status->ofdma_info_valid = 1;
>> + }
>> +
>> + return HAL_TLV_STATUS_PPDU_NOT_DONE;
>
> Same comment on the need for the return value in this patch and similar
> changes in this series.
>
sure, will fix in the next version of this patch.
--
Karthikeyan Periyasamy
--
கார்த்திகேயன் பெரியசாமி
More information about the ath12k
mailing list