Search Linux Wireless

Re: [PATCH v5 3/9] wifi: ath12k: Add HAL_RX_PPDU_START_USER_INFO TLV parsing support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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@xxxxxxxxxxx>
Signed-off-by: P Praneesh <quic_ppranees@xxxxxxxxxxx>
Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@xxxxxxxxxxx>
---
  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
--
கார்த்திகேயன் பெரியசாமி




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux