From 754c291a51135750b9efb0a7f353c80591a26988 Mon Sep 17 00:00:00 2001 From: aloksing Date: Tue, 6 Jun 2023 14:32:19 +0530 Subject: [PATCH] qcacmn: Do not update tx rate stats for fixed rate Update rounded avg rate only for qos tid and if TX is not at fixed rate. CRs-Fixed: 3531181 Change-Id: I03a9a2b88b7859bd230672e6ac321d31a71defef --- dp/inc/cdp_txrx_cmn_struct.h | 4 +++- dp/wifi3.0/monitor/dp_mon.c | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/dp/inc/cdp_txrx_cmn_struct.h b/dp/inc/cdp_txrx_cmn_struct.h index a87172b3f3..71935e8e69 100644 --- a/dp/inc/cdp_txrx_cmn_struct.h +++ b/dp/inc/cdp_txrx_cmn_struct.h @@ -2150,6 +2150,7 @@ struct cdp_delayed_tx_completion_ppdu_user { * @mpdu_bytes: accumulated bytes per mpdu for mem limit feature * @punc_mode: puncutured mode to indicate punctured bw * @punc_pattern_bitmap: bitmap indicating punctured pattern + * @fixed_rate_used: flag to indicate fixed rate TX * @mprot_type: medium protection type * @msduq_bitmap: msduq bitmap * @rts_success: rts success @@ -2257,7 +2258,8 @@ struct cdp_tx_completion_ppdu_user { uint16_t phy_tx_time_us; uint32_t mpdu_bytes; uint8_t punc_mode; - uint16_t punc_pattern_bitmap; + uint32_t punc_pattern_bitmap:16, + fixed_rate_used:1; uint32_t msduq_bitmap; uint8_t mprot_type:3, rts_success:1, diff --git a/dp/wifi3.0/monitor/dp_mon.c b/dp/wifi3.0/monitor/dp_mon.c index 07d5e28330..b6fdff88bd 100644 --- a/dp/wifi3.0/monitor/dp_mon.c +++ b/dp/wifi3.0/monitor/dp_mon.c @@ -3327,7 +3327,9 @@ dp_tx_stats_update(struct dp_pdev *pdev, struct dp_peer *peer, if (mon_ops && mon_ops->mon_tx_stats_update) mon_ops->mon_tx_stats_update(mon_peer, ppdu); - dp_tx_rate_stats_update(peer, ppdu); + if (!ppdu->fixed_rate_used) + dp_tx_rate_stats_update(peer, ppdu); + dp_pdev_telemetry_stats_update(pdev, ppdu); dp_peer_stats_notify(pdev, peer); @@ -3676,6 +3678,8 @@ dp_process_ppdu_stats_user_rate_tlv(struct dp_pdev *pdev, uint32_t tlv_type = HTT_STATS_TLV_TAG_GET(*tag_buf); uint8_t bw, ru_format; uint16_t ru_size; + htt_ppdu_stats_user_rate_tlv *stats_buf = + (htt_ppdu_stats_user_rate_tlv *)tag_buf; ppdu_desc = (struct cdp_tx_completion_ppdu *)qdf_nbuf_data(ppdu_info->nbuf); @@ -3763,6 +3767,7 @@ dp_process_ppdu_stats_user_rate_tlv(struct dp_pdev *pdev, tag_buf += 2; ppdu_user_desc->punc_pattern_bitmap = HTT_PPDU_STATS_USER_RATE_TLV_PUNC_PATTERN_BITMAP_GET(*tag_buf); + ppdu_user_desc->fixed_rate_used = stats_buf->is_min_rate; } /**