mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-24 21:02:35 +00:00
52 lines
1.9 KiB
Diff
52 lines
1.9 KiB
Diff
drivers/net/wireless/ath/ath11k/dp_rx.c | 3 ++-
|
|
drivers/net/wireless/ath/ath11k/hal_rx.c | 3 +++
|
|
drivers/net/wireless/ath/ath11k/hal_rx.h | 2 ++
|
|
3 files changed, 7 insertions(+), 1 deletion(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath11k/dp_rx.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c
|
|
@@ -3226,8 +3226,11 @@ int ath11k_dp_rx_process_mon_status(stru
|
|
continue;
|
|
}
|
|
|
|
- arsta = (struct ath11k_sta *)peer->sta->drv_priv;
|
|
- ath11k_dp_rx_update_peer_stats(arsta, &ppdu_info);
|
|
+ if ((ppdu_info.fc_valid) &&
|
|
+ (ppdu_info.ast_index != HAL_AST_IDX_INVALID)) {
|
|
+ arsta = (struct ath11k_sta *)peer->sta->drv_priv;
|
|
+ ath11k_dp_rx_update_peer_stats(arsta, &ppdu_info);
|
|
+ }
|
|
|
|
if (ath11k_debug_is_pktlog_peer_valid(ar, peer->addr)) {
|
|
trace_ath11k_htt_rxdesc(ar, skb->data, DP_RX_BUFFER_SIZE);
|
|
--- a/drivers/net/wireless/ath/ath11k/hal_rx.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.c
|
|
@@ -928,6 +928,9 @@ ath11k_hal_rx_parse_mon_status_tlv(struc
|
|
ppdu_info->ast_index =
|
|
FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO2_AST_INDEX,
|
|
__le32_to_cpu(eu_stats->info2));
|
|
+ ppdu_info->fc_valid =
|
|
+ FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO1_FC_VALID,
|
|
+ __le32_to_cpu(eu_stats->info1));
|
|
ppdu_info->tid =
|
|
ffs(FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO6_TID_BITMAP,
|
|
__le32_to_cpu(eu_stats->info6))) - 1;
|
|
--- a/drivers/net/wireless/ath/ath11k/hal_rx.h
|
|
+++ b/drivers/net/wireless/ath/ath11k/hal_rx.h
|
|
@@ -90,6 +90,7 @@ enum hal_rx_legacy_rate {
|
|
#define HAL_TLV_STATUS_BUF_DONE 2
|
|
#define HAL_TLV_STATUS_PPDU_NON_STD_DONE 3
|
|
#define HAL_RX_FCS_LEN 4
|
|
+#define HAL_AST_IDX_INVALID 0xFFFF
|
|
|
|
enum hal_rx_mon_status {
|
|
HAL_RX_MON_STATUS_PPDU_NOT_DONE,
|
|
@@ -157,6 +158,7 @@ struct hal_rx_mon_ppdu_info {
|
|
u8 beamformed;
|
|
u8 rssi_comb;
|
|
u8 tid;
|
|
+ u8 fc_valid;
|
|
u16 ht_flags;
|
|
u16 vht_flags;
|
|
u16 he_flags;
|