qcacmn: Correct computation of tx.tx_rate and tx.last_tx_rate

Correct computation of tx.tx_rate and tx.last_tx_rate in Tx HTT
PPDU completion path.

Change-Id: I8dcc4913c651a2c90e0f1d153e4e09f02d7403d4
CRs-Fixed: 3167357
Cette révision appartient à :
Harsh Kumar Bijlani
2022-04-06 01:28:08 +05:30
révisé par Madan Koyyalamudi
Parent 1a6feacd14
révision c41c8f1d8c
2 fichiers modifiés avec 8 ajouts et 5 suppressions

Voir le fichier

@@ -3487,7 +3487,7 @@ struct dp_peer_per_pkt_tx_stats {
* @tx_ppdus: ppdus in tx
* @tx_mpdus_success: mpdus successful in tx
* @tx_mpdus_tried: mpdus tried in tx
* @tx_rate: Tx Rate
* @tx_rate: Tx Rate in kbps
* @last_tx_rate: Last tx rate for unicast packets
* @last_tx_rate_mcs: Tx rate mcs for unicast packets
* @mcast_last_tx_rate: Last tx rate for multicast packets

Voir le fichier

@@ -2432,8 +2432,6 @@ dp_tx_rate_stats_update(struct dp_peer *peer,
&rix,
&ratecode);
DP_STATS_UPD(mon_peer, tx.last_tx_rate, ratekbps);
if (!ratekbps)
return;
@@ -2448,6 +2446,7 @@ dp_tx_rate_stats_update(struct dp_peer *peer,
ppdu->rix = rix;
ppdu->tx_ratekbps = ratekbps;
ppdu->tx_ratecode = ratecode;
DP_STATS_UPD(mon_peer, tx.tx_rate, ratekbps);
mon_peer->stats.tx.avg_tx_rate =
dp_ath_rate_lpf(mon_peer->stats.tx.avg_tx_rate, ratekbps);
ppdu_tx_rate = dp_ath_rate_out(mon_peer->stats.tx.avg_tx_rate);
@@ -2628,6 +2627,7 @@ dp_tx_stats_update(struct dp_pdev *pdev, struct dp_peer *peer,
struct dp_mon_ops *mon_ops;
enum cdp_ru_index ru_index;
struct dp_mon_peer *mon_peer = NULL;
uint32_t ratekbps = 0;
preamble = ppdu->preamble;
mcs = ppdu->mcs;
@@ -2701,7 +2701,6 @@ dp_tx_stats_update(struct dp_pdev *pdev, struct dp_peer *peer,
DP_STATS_INC(mon_peer, tx.transmit_type[ppdu->ppdu_type].mpdu_tried,
mpdu_tried);
DP_STATS_UPD(mon_peer, tx.tx_rate, ppdu->tx_rate);
DP_STATS_INC(mon_peer, tx.sgi_count[ppdu->gi], num_msdu);
DP_STATS_INC(mon_peer, tx.bw[ppdu->bw], num_msdu);
DP_STATS_INC(mon_peer, tx.nss[ppdu->nss], num_msdu);
@@ -2754,8 +2753,13 @@ 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);
dp_peer_stats_notify(pdev, peer);
ratekbps = mon_peer->stats.tx.tx_rate;
DP_STATS_UPD(mon_peer, tx.last_tx_rate, ratekbps);
dp_send_stats_event(pdev, peer, ppdu->peer_id);
}
@@ -4056,7 +4060,6 @@ dp_ppdu_desc_user_stats_update(struct dp_pdev *pdev,
dp_tx_stats_update(pdev, peer,
&ppdu_desc->user[i],
ppdu_desc->ack_rssi);
dp_tx_rate_stats_update(peer, &ppdu_desc->user[i]);
}
dp_ppdu_desc_user_phy_tx_time_update(pdev, ppdu_desc,