Message ID | 20250127104738.4174862-5-quic_periyasa@quicinc.com |
---|---|
State | Superseded |
Headers | show |
Series | wifi: ath12k: Add peer extended Rx statistics debugfs support | expand |
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 the necessary HAL_PHYRX_OTHER_RECEIVE_INFO > TLV parsing support in the monitor Rx path, which helps to populate the > extended Rx statistics. > > 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@quicinc.com> > Signed-off-by: P Praneesh <quic_ppranees@quicinc.com> > Signed-off-by: Karthikeyan Periyasamy <quic_periyasa@quicinc.com> > --- > drivers/net/wireless/ath/ath12k/dp_mon.c | 7 +++++++ > drivers/net/wireless/ath/ath12k/hal_rx.h | 8 ++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/drivers/net/wireless/ath/ath12k/dp_mon.c b/drivers/net/wireless/ath/ath12k/dp_mon.c > index f9de8c509061..8ded73d87c73 100644 > --- a/drivers/net/wireless/ath/ath12k/dp_mon.c > +++ b/drivers/net/wireless/ath/ath12k/dp_mon.c > @@ -1630,6 +1630,13 @@ ath12k_dp_mon_rx_parse_status_tlv(struct ath12k *ar, > HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO0_RX_BW); > break; > } > + case HAL_PHYRX_OTHER_RECEIVE_INFO: { > + const struct hal_phyrx_common_user_info *cmn_usr_info = tlv_data; > + > + ppdu_info->gi = le32_get_bits(cmn_usr_info->info0, > + HAL_RX_PHY_CMN_USER_INFO0_GI); > + break; > + } > case HAL_RX_PPDU_START_USER_INFO: > ath12k_dp_mon_hal_rx_parse_user_info(tlv_data, userid, ppdu_info); > break; > diff --git a/drivers/net/wireless/ath/ath12k/hal_rx.h b/drivers/net/wireless/ath/ath12k/hal_rx.h > index 765b53741861..445d1c33b41f 100644 > --- a/drivers/net/wireless/ath/ath12k/hal_rx.h > +++ b/drivers/net/wireless/ath/ath12k/hal_rx.h > @@ -683,6 +683,14 @@ struct hal_rx_resp_req_info { > #define HAL_RX_MPDU_ERR_MPDU_LEN BIT(6) > #define HAL_RX_MPDU_ERR_UNENCRYPTED_FRAME BIT(7) > > +#define HAL_RX_PHY_CMN_USER_INFO0_GI GENMASK(17, 16) > + > +struct hal_phyrx_common_user_info { > + __le32 rsvd[2]; > + __le32 info0; > + __le32 rsvd1; > +} __packed; > + > #define HAL_RX_EHT_SIG_NDP_CMN_INFO0_SPATIAL_REUSE GENMASK(3, 0) > #define HAL_RX_EHT_SIG_NDP_CMN_INFO0_GI_LTF GENMASK(5, 4) > #define HAL_RX_EHT_SIG_NDP_CMN_INFO0_NUM_LTF_SYM GENMASK(8, 6) Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
diff --git a/drivers/net/wireless/ath/ath12k/dp_mon.c b/drivers/net/wireless/ath/ath12k/dp_mon.c index f9de8c509061..8ded73d87c73 100644 --- a/drivers/net/wireless/ath/ath12k/dp_mon.c +++ b/drivers/net/wireless/ath/ath12k/dp_mon.c @@ -1630,6 +1630,13 @@ ath12k_dp_mon_rx_parse_status_tlv(struct ath12k *ar, HAL_RX_PHYRX_RSSI_LEGACY_INFO_INFO0_RX_BW); break; } + case HAL_PHYRX_OTHER_RECEIVE_INFO: { + const struct hal_phyrx_common_user_info *cmn_usr_info = tlv_data; + + ppdu_info->gi = le32_get_bits(cmn_usr_info->info0, + HAL_RX_PHY_CMN_USER_INFO0_GI); + break; + } case HAL_RX_PPDU_START_USER_INFO: ath12k_dp_mon_hal_rx_parse_user_info(tlv_data, userid, ppdu_info); break; diff --git a/drivers/net/wireless/ath/ath12k/hal_rx.h b/drivers/net/wireless/ath/ath12k/hal_rx.h index 765b53741861..445d1c33b41f 100644 --- a/drivers/net/wireless/ath/ath12k/hal_rx.h +++ b/drivers/net/wireless/ath/ath12k/hal_rx.h @@ -683,6 +683,14 @@ struct hal_rx_resp_req_info { #define HAL_RX_MPDU_ERR_MPDU_LEN BIT(6) #define HAL_RX_MPDU_ERR_UNENCRYPTED_FRAME BIT(7) +#define HAL_RX_PHY_CMN_USER_INFO0_GI GENMASK(17, 16) + +struct hal_phyrx_common_user_info { + __le32 rsvd[2]; + __le32 info0; + __le32 rsvd1; +} __packed; + #define HAL_RX_EHT_SIG_NDP_CMN_INFO0_SPATIAL_REUSE GENMASK(3, 0) #define HAL_RX_EHT_SIG_NDP_CMN_INFO0_GI_LTF GENMASK(5, 4) #define HAL_RX_EHT_SIG_NDP_CMN_INFO0_NUM_LTF_SYM GENMASK(8, 6)