qcacmn: Correct computation of avg_rx_rate and last_snr for peer

Stats avg_rx_rate and last_snr for peer are updated in Rx PPDU
indication path. Logic for updation of these stats is incorrect.

Correct the computation of these stats.

Change-Id: I276d0d6c81d45818bf771c3c0565fe4bb259c49d
CRs-Fixed: 3091679
这个提交包含在:
Harsh Kumar Bijlani
2021-12-09 22:33:18 +05:30
提交者 Madan Koyyalamudi
父节点 f8e482d488
当前提交 3d110477b5

查看文件

@@ -725,7 +725,8 @@ static inline void dp_rx_rate_stats_update(struct dp_peer *peer,
ppdu->rix = rix;
DP_STATS_UPD(peer, rx.last_rx_rate, ratekbps);
dp_ath_rate_lpf(peer->stats.rx.avg_rx_rate, ratekbps);
peer->stats.rx.avg_rx_rate =
dp_ath_rate_lpf(peer->stats.rx.avg_rx_rate, ratekbps);
ppdu_rx_rate = dp_ath_rate_out(peer->stats.rx.avg_rx_rate);
DP_STATS_UPD(peer, rx.rnd_avg_rx_rate, ppdu_rx_rate);
ppdu->rx_ratekbps = ratekbps;
@@ -968,7 +969,7 @@ static void dp_rx_stats_update(struct dp_pdev *pdev,
mon_ops->mon_rx_stats_update(peer, ppdu, ppdu_user);
dp_peer_stats_notify(pdev, peer);
DP_STATS_UPD(peer, rx.last_snr, ppdu->rssi);
DP_STATS_UPD(peer, rx.last_snr, (ppdu->rssi + pkt_bw_offset));
dp_peer_qos_stats_notify(pdev, ppdu_user);
if (peer == pdev->invalid_peer)