wlan-ap-Telecominfraproject/feeds/wifi-ax/mac80211/patches/qca/087-ath11k-fix-ul-ofdma-counter-increamenting-improperly.patch
John Crispin 54939fdb0f mac80211-ax: update to ath11k-ed2 release
Signed-off-by: John Crispin <john@phrozen.org>
2020-12-02 09:48:18 +01:00

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;