qcacmn: Fetch and update rssi_chain stats from Firmware
fetch and update rssi_chain stats from firmware. Change-Id: I0a16ebda0ab17d32c7f7daab36eeebb6c4d691f9 CRs-Fixed: 3404107
This commit is contained in:
@@ -59,7 +59,6 @@
|
||||
|
||||
#define CDP_BA_256_BIT_MAP_SIZE_DWORDS 8
|
||||
#define CDP_BA_64_BIT_MAP_SIZE_DWORDS 2
|
||||
#define CDP_RSSI_CHAIN_LEN 8
|
||||
|
||||
#define OL_TXRX_INVALID_PDEV_ID 0xff
|
||||
#define OL_TXRX_INVALID_LOCAL_PEER_ID 0xffff
|
||||
@@ -2127,7 +2126,7 @@ struct cdp_tx_completion_ppdu_user {
|
||||
uint8_t is_ppdu_cookie_valid;
|
||||
uint16_t ppdu_cookie;
|
||||
uint8_t sa_is_training;
|
||||
uint32_t rssi_chain[CDP_RSSI_CHAIN_LEN];
|
||||
int32_t rssi_chain[CDP_RSSI_CHAIN_LEN];
|
||||
uint32_t sa_tx_antenna;
|
||||
/*Max rates for BW: 20MHZ, 40MHZ and 80MHZ and 160MHZ and 320MHZ
|
||||
* |-------------------------------------------------|
|
||||
|
@@ -24,6 +24,7 @@
|
||||
#ifndef _CDP_TXRX_HIST_STRUCT_H_
|
||||
#define _CDP_TXRX_HIST_STRUCT_H_
|
||||
|
||||
#define CDP_RSSI_CHAIN_LEN 8
|
||||
/**
|
||||
* enum cdp_hist_bucket_index - Histogram Bucket
|
||||
* @CDP_HIST_BUCKET_0: Bucket Index 0
|
||||
|
@@ -1619,7 +1619,7 @@ struct cdp_tx_stats {
|
||||
uint32_t fw_ratecount;
|
||||
|
||||
uint32_t ac_nobufs[WME_AC_MAX];
|
||||
uint32_t rssi_chain[WME_AC_MAX];
|
||||
int32_t rssi_chain[CDP_RSSI_CHAIN_LEN];
|
||||
uint32_t inactive_time;
|
||||
|
||||
uint32_t tx_flags;
|
||||
|
@@ -2094,6 +2094,8 @@ void dp_update_vdev_stats_on_peer_unmap(struct dp_vdev *vdev,
|
||||
_tgtobj->tx.tx_ucast_success.bytes += \
|
||||
_srcobj->tx.tx_ucast_success.bytes; \
|
||||
\
|
||||
for (i = 0; i < CDP_RSSI_CHAIN_LEN; i++) \
|
||||
_tgtobj->tx.rssi_chain[i] = _srcobj->tx.rssi_chain[i]; \
|
||||
_tgtobj->rx.mpdu_cnt_fcs_ok += _srcobj->rx.mpdu_cnt_fcs_ok; \
|
||||
_tgtobj->rx.mpdu_cnt_fcs_err += _srcobj->rx.mpdu_cnt_fcs_err; \
|
||||
_tgtobj->rx.non_ampdu_cnt += _srcobj->rx.non_ampdu_cnt; \
|
||||
|
@@ -4321,6 +4321,7 @@ struct dp_peer_per_pkt_tx_stats {
|
||||
* @rts_failure: RTS failure count
|
||||
* @bar_cnt: Block ACK Request frame count
|
||||
* @ndpa_cnt: NDP announcement frame count
|
||||
* @rssi_chain: rssi chain
|
||||
* @wme_ac_type_bytes: Wireless Multimedia bytes Count
|
||||
*/
|
||||
struct dp_peer_extd_tx_stats {
|
||||
@@ -4378,6 +4379,7 @@ struct dp_peer_extd_tx_stats {
|
||||
uint32_t rts_failure;
|
||||
uint32_t bar_cnt;
|
||||
uint32_t ndpa_cnt;
|
||||
int32_t rssi_chain[CDP_RSSI_CHAIN_LEN];
|
||||
uint64_t wme_ac_type_bytes[WME_AC_MAX];
|
||||
};
|
||||
|
||||
|
@@ -3356,6 +3356,7 @@ dp_tx_stats_update(struct dp_pdev *pdev, struct dp_peer *peer,
|
||||
struct dp_mon_peer *mon_peer = NULL;
|
||||
uint32_t ratekbps = 0;
|
||||
uint64_t tx_byte_count;
|
||||
uint8_t idx = 0;
|
||||
|
||||
preamble = ppdu->preamble;
|
||||
mcs = ppdu->mcs;
|
||||
@@ -3497,6 +3498,9 @@ dp_tx_stats_update(struct dp_pdev *pdev, struct dp_peer *peer,
|
||||
DP_STATS_INC(mon_peer, tx.tx_mpdus_success, num_mpdu);
|
||||
DP_STATS_INC(mon_peer, tx.tx_mpdus_tried, mpdu_tried);
|
||||
|
||||
for (idx = 0; idx < CDP_RSSI_CHAIN_LEN; idx++)
|
||||
DP_STATS_UPD(mon_peer, tx.rssi_chain[idx], ppdu->rssi_chain[idx]);
|
||||
|
||||
mon_ops = dp_mon_ops_get(pdev->soc);
|
||||
if (mon_ops && mon_ops->mon_tx_stats_update)
|
||||
mon_ops->mon_tx_stats_update(mon_peer, ppdu);
|
||||
@@ -4134,7 +4138,7 @@ static void dp_process_ppdu_stats_user_cmpltn_common_tlv(
|
||||
tag_buf++;
|
||||
for (bw_iter = 0; bw_iter < CDP_RSSI_CHAIN_LEN; bw_iter++) {
|
||||
ppdu_user_desc->rssi_chain[bw_iter] =
|
||||
HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_CHAIN_RSSI_GET(*tag_buf);
|
||||
HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_CHAIN_RSSI_GET(*tag_buf);
|
||||
tag_buf++;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user