From b3fafa78c8da85271a085bdd22cf7ee910dd9ade Mon Sep 17 00:00:00 2001 From: Shwetha G K Date: Wed, 6 Jan 2021 15:28:10 +0530 Subject: [PATCH] qcacmn: Cleanup rssi and snr used interchangeably Cleanup rssi and snr used interchangeably Change-Id: Idc78ca1ceb62af766aaf69e42ab5d6e8990a6f0b --- dp/inc/cdp_txrx_stats_struct.h | 36 +++++++++++++++++----------------- dp/wifi3.0/dp_internal.h | 12 ++++++------ dp/wifi3.0/dp_main.c | 8 ++++---- dp/wifi3.0/dp_rx.c | 10 ++++++---- dp/wifi3.0/dp_rx.h | 4 +++- dp/wifi3.0/dp_rx_mon_status.c | 14 ++++++------- dp/wifi3.0/dp_stats.c | 8 ++++---- 7 files changed, 48 insertions(+), 44 deletions(-) diff --git a/dp/inc/cdp_txrx_stats_struct.h b/dp/inc/cdp_txrx_stats_struct.h index a7657ec962..4367ec101b 100644 --- a/dp/inc/cdp_txrx_stats_struct.h +++ b/dp/inc/cdp_txrx_stats_struct.h @@ -120,18 +120,18 @@ #define CDP_FC_IS_RETRY_SET(_fc) \ ((_fc) & qdf_cpu_to_le16(CDP_FCTL_RETRY)) -#define INVALID_RSSI 255 +#define CDP_INVALID_SNR 255 -#define CDP_RSSI_MULTIPLIER BIT(8) -#define CDP_RSSI_MUL(x, mul) ((x) * (mul)) -#define CDP_RSSI_RND(x, mul) ((((x) % (mul)) >= ((mul) / 2)) ?\ +#define CDP_SNR_MULTIPLIER BIT(8) +#define CDP_SNR_MUL(x, mul) ((x) * (mul)) +#define CDP_SNR_RND(x, mul) ((((x) % (mul)) >= ((mul) / 2)) ?\ ((x) + ((mul) - 1)) / (mul) : (x) / (mul)) -#define CDP_RSSI_OUT(x) (CDP_RSSI_RND((x), CDP_RSSI_MULTIPLIER)) -#define CDP_RSSI_IN(x) (CDP_RSSI_MUL((x), CDP_RSSI_MULTIPLIER)) -#define CDP_RSSI_AVG(x, y) ((((x) << 2) + (y) - (x)) >> 2) +#define CDP_SNR_OUT(x) (CDP_SNR_RND((x), CDP_SNR_MULTIPLIER)) +#define CDP_SNR_IN(x) (CDP_SNR_MUL((x), CDP_SNR_MULTIPLIER)) +#define CDP_SNR_AVG(x, y) ((((x) << 2) + (y) - (x)) >> 2) -#define CDP_RSSI_UPDATE_AVG(x, y) x = CDP_RSSI_AVG((x), CDP_RSSI_IN((y))) +#define CDP_SNR_UPDATE_AVG(x, y) x = CDP_SNR_AVG((x), CDP_SNR_IN((y))) /*Max SU EVM count */ #define DP_RX_MAX_SU_EVM_COUNT 32 @@ -803,7 +803,7 @@ enum cdp_peer_stats_type { cdp_peer_rx_ratecode, cdp_peer_rx_ucast, cdp_peer_rx_flags, - cdp_peer_rx_avg_rssi, + cdp_peer_rx_avg_snr, cdp_peer_stats_max, }; @@ -829,7 +829,7 @@ typedef union cdp_peer_stats_buf { uint32_t last_rx_rate; uint32_t rx_ratecode; uint32_t rx_flags; - uint32_t rx_avg_rssi; + uint32_t rx_avg_snr; } cdp_peer_stats_param_t; /* Max union size 16 bytes */ /** @@ -1063,7 +1063,7 @@ struct cdp_tx_stats { * @non_amsdu_cnt: Number of MSDUs with no MSDU level aggregation * @amsdu_cnt: Number of MSDUs part of AMSDU * @bar_recv_cnt: Number of bar received - * @avg_rssi: Average rssi + * @avg_snr: Average snr * @rx_rate: Rx rate * @last_rx_rate: Previous rx rate * @rnd_avg_rx_rate: Rounded average rx rate @@ -1087,9 +1087,9 @@ struct cdp_tx_stats { * @rx_discard: packets discard in rx * @rx_ratecode: Rx rate code of last frame * @rx_flags: rx flags - * @rx_rssi_measured_time: Time at which rssi is measured - * @rssi: RSSI of received signal - * @last_rssi: Previous rssi + * @rx_snr_measured_time: Time at which snr is measured + * @snr: SNR of received signal + * @last_snr: Previous snr * @multipass_rx_pkt_drop: Dropped multipass rx pkt * @rx_mpdu_cnt: rx mpdu count per MCS rate * @to_stack_twt: Total packets sent up the stack in TWT session @@ -1135,7 +1135,7 @@ struct cdp_rx_stats { uint32_t non_amsdu_cnt; uint32_t amsdu_cnt; uint32_t bar_recv_cnt; - uint32_t avg_rssi; + uint32_t avg_snr; uint32_t rx_rate; uint32_t last_rx_rate; uint32_t rnd_avg_rx_rate; @@ -1156,9 +1156,9 @@ struct cdp_rx_stats { uint32_t rx_discard; uint32_t rx_ratecode; uint32_t rx_flags; - uint32_t rx_rssi_measured_time; - uint8_t rssi; - uint8_t last_rssi; + uint32_t rx_snr_measured_time; + uint8_t snr; + uint8_t last_snr; uint32_t multipass_rx_pkt_drop; uint32_t rx_mpdu_cnt[MAX_MCS]; struct cdp_pkt_info to_stack_twt; diff --git a/dp/wifi3.0/dp_internal.h b/dp/wifi3.0/dp_internal.h index 8c8aa67e52..0ba610c05f 100644 --- a/dp/wifi3.0/dp_internal.h +++ b/dp/wifi3.0/dp_internal.h @@ -652,8 +652,8 @@ static inline void dp_update_pdev_stats(struct dp_pdev *tgtobj, srcobj->tx.dropped.fw_reason3; tgtobj->stats.tx.dropped.age_out += srcobj->tx.dropped.age_out; tgtobj->stats.rx.err.mic_err += srcobj->rx.err.mic_err; - if (srcobj->rx.rssi != 0) - tgtobj->stats.rx.rssi = srcobj->rx.rssi; + if (srcobj->rx.snr != 0) + tgtobj->stats.rx.snr = srcobj->rx.snr; tgtobj->stats.rx.rx_rate = srcobj->rx.rx_rate; tgtobj->stats.rx.err.decrypt_err += srcobj->rx.err.decrypt_err; tgtobj->stats.rx.non_ampdu_cnt += srcobj->rx.non_ampdu_cnt; @@ -871,8 +871,8 @@ static inline void dp_update_vdev_stats(struct dp_soc *soc, srcobj->stats.tx.dropped.fw_reason3; tgtobj->tx.dropped.age_out += srcobj->stats.tx.dropped.age_out; tgtobj->rx.err.mic_err += srcobj->stats.rx.err.mic_err; - if (srcobj->stats.rx.rssi != 0) - tgtobj->rx.rssi = srcobj->stats.rx.rssi; + if (srcobj->stats.rx.snr != 0) + tgtobj->rx.snr = srcobj->stats.rx.snr; tgtobj->rx.rx_rate = srcobj->stats.rx.rx_rate; tgtobj->rx.err.decrypt_err += srcobj->stats.rx.err.decrypt_err; tgtobj->rx.non_ampdu_cnt += srcobj->stats.rx.non_ampdu_cnt; @@ -983,8 +983,8 @@ static inline void dp_update_vdev_stats(struct dp_soc *soc, DP_STATS_AGGR(_tgtobj, _srcobj, tx.dropped.age_out); \ \ DP_STATS_AGGR(_tgtobj, _srcobj, rx.err.mic_err); \ - if (_srcobj->stats.rx.rssi != 0) \ - DP_STATS_UPD_STRUCT(_tgtobj, _srcobj, rx.rssi); \ + if (_srcobj->stats.rx.snr != 0) \ + DP_STATS_UPD_STRUCT(_tgtobj, _srcobj, rx.snr); \ DP_STATS_UPD_STRUCT(_tgtobj, _srcobj, rx.rx_rate); \ DP_STATS_AGGR(_tgtobj, _srcobj, rx.err.decrypt_err); \ DP_STATS_AGGR(_tgtobj, _srcobj, rx.non_ampdu_cnt); \ diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 4721ceb508..41026cfe76 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -6022,7 +6022,7 @@ dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, dp_peer_rx_bufq_resources_init(peer); DP_STATS_INIT(peer); - DP_STATS_UPD(peer, rx.avg_rssi, INVALID_RSSI); + DP_STATS_UPD(peer, rx.avg_snr, CDP_INVALID_SNR); /* * In tx_monitor mode, filter may be set for unassociated peer @@ -6137,7 +6137,7 @@ dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, peer->valid = 1; dp_local_peer_id_alloc(pdev, peer); DP_STATS_INIT(peer); - DP_STATS_UPD(peer, rx.avg_rssi, INVALID_RSSI); + DP_STATS_UPD(peer, rx.avg_snr, CDP_INVALID_SNR); qdf_mem_copy(peer_cookie.mac_addr, peer->mac_addr.raw, QDF_MAC_ADDR_SIZE); @@ -9647,8 +9647,8 @@ dp_txrx_get_peer_stats_param(struct cdp_soc_t *soc, uint8_t vdev_id, case cdp_peer_rx_flags: buf->rx_flags = peer->stats.rx.rx_flags; break; - case cdp_peer_rx_avg_rssi: - buf->rx_avg_rssi = peer->stats.rx.avg_rssi; + case cdp_peer_rx_avg_snr: + buf->rx_avg_snr = peer->stats.rx.avg_snr; break; default: dp_peer_err("%pK: Invalid value", soc); diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index f5ff82a40f..c36673d03d 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -716,7 +716,8 @@ void dp_rx_fill_mesh_stats(struct dp_vdev *vdev, qdf_nbuf_t nbuf, rx_info->rs_keyix); } - rx_info->rs_rssi = peer->stats.rx.rssi; + rx_info->rs_snr = peer->stats.rx.snr; + rx_info->rs_rssi = rx_info->rs_snr + DP_DEFAULT_NOISEFLOOR; soc = vdev->pdev->soc; primary_chan_num = hal_rx_msdu_start_get_freq(rx_tlv_hdr); @@ -739,12 +740,13 @@ void dp_rx_fill_mesh_stats(struct dp_vdev *vdev, qdf_nbuf_t nbuf, qdf_nbuf_set_rx_fctx_type(nbuf, (void *)rx_info, CB_FTYPE_MESH_RX_INFO); QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_INFO_MED, - FL("Mesh rx stats: flags %x, rssi %x, chn %x, rate %x, kix %x"), + FL("Mesh rx stats: flags %x, rssi %x, chn %x, rate %x, kix %x, snr %x"), rx_info->rs_flags, rx_info->rs_rssi, rx_info->rs_channel, rx_info->rs_ratephy1, - rx_info->rs_keyix); + rx_info->rs_keyix, + rx_info->rs_snr); } diff --git a/dp/wifi3.0/dp_rx.h b/dp/wifi3.0/dp_rx.h index ea01d9320f..5b17227a07 100644 --- a/dp/wifi3.0/dp_rx.h +++ b/dp/wifi3.0/dp_rx.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -52,6 +52,8 @@ #define DP_PEER_METADATA_VDEV_ID_MASK 0x003f0000 #define DP_PEER_METADATA_VDEV_ID_SHIFT 16 +#define DP_DEFAULT_NOISEFLOOR (-96) + #define DP_PEER_METADATA_PEER_ID_GET(_peer_metadata) \ (((_peer_metadata) & DP_PEER_METADATA_PEER_ID_MASK) \ >> DP_PEER_METADATA_PEER_ID_SHIFT) diff --git a/dp/wifi3.0/dp_rx_mon_status.c b/dp/wifi3.0/dp_rx_mon_status.c index 3d7d5a20fd..07404898a3 100644 --- a/dp/wifi3.0/dp_rx_mon_status.c +++ b/dp/wifi3.0/dp_rx_mon_status.c @@ -652,14 +652,14 @@ static void dp_rx_stats_update(struct dp_pdev *pdev, soc, ppdu->u.bw); } - DP_STATS_UPD(peer, rx.rssi, (ppdu->rssi + pkt_bw_offset)); + DP_STATS_UPD(peer, rx.snr, (ppdu->rssi + pkt_bw_offset)); - if (peer->stats.rx.avg_rssi == INVALID_RSSI) - peer->stats.rx.avg_rssi = - CDP_RSSI_IN(peer->stats.rx.rssi); + if (peer->stats.rx.avg_snr == CDP_INVALID_SNR) + peer->stats.rx.avg_snr = + CDP_SNR_IN(peer->stats.rx.snr); else - CDP_RSSI_UPDATE_AVG(peer->stats.rx.avg_rssi, - peer->stats.rx.rssi); + CDP_SNR_UPDATE_AVG(peer->stats.rx.avg_snr, + peer->stats.rx.snr); if ((preamble == DOT11_A) || (preamble == DOT11_B)) nss = 1; @@ -776,7 +776,7 @@ static void dp_rx_stats_update(struct dp_pdev *pdev, if (ppdu->tid != HAL_TID_INVALID) DP_STATS_INC(peer, rx.wme_ac_type[ac], num_msdu); dp_peer_stats_notify(pdev, peer); - DP_STATS_UPD(peer, rx.last_rssi, ppdu->rssi); + DP_STATS_UPD(peer, rx.last_snr, ppdu->rssi); dp_peer_qos_stats_notify(pdev, ppdu_user); if (peer == pdev->invalid_peer) diff --git a/dp/wifi3.0/dp_stats.c b/dp/wifi3.0/dp_stats.c index 58eae5b789..183ebf9619 100644 --- a/dp/wifi3.0/dp_stats.c +++ b/dp/wifi3.0/dp_stats.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2020 The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -4355,10 +4355,10 @@ QDF_STATUS dp_peer_stats_notify(struct dp_pdev *dp_pdev, struct dp_peer *peer) return QDF_STATUS_E_FAULT; qdf_mem_zero(&peer_stats_intf, sizeof(peer_stats_intf)); - if (peer_stats->rx.last_rssi != peer_stats->rx.rssi) + if (peer_stats->rx.last_snr != peer_stats->rx.snr) peer_stats_intf.rssi_changed = true; - if ((peer_stats->rx.rssi && peer_stats_intf.rssi_changed) || + if ((peer_stats->rx.snr && peer_stats_intf.rssi_changed) || (peer_stats->tx.tx_rate && peer_stats->tx.tx_rate != peer_stats->tx.last_tx_rate)) { qdf_mem_copy(peer_stats_intf.peer_mac, peer->mac_addr.raw, @@ -4366,7 +4366,7 @@ QDF_STATUS dp_peer_stats_notify(struct dp_pdev *dp_pdev, struct dp_peer *peer) peer_stats_intf.vdev_id = peer->vdev->vdev_id; peer_stats_intf.last_peer_tx_rate = peer_stats->tx.last_tx_rate; peer_stats_intf.peer_tx_rate = peer_stats->tx.tx_rate; - peer_stats_intf.peer_rssi = peer_stats->rx.rssi; + peer_stats_intf.peer_rssi = peer_stats->rx.snr; peer_stats_intf.tx_packet_count = peer_stats->tx.ucast.num; peer_stats_intf.rx_packet_count = peer_stats->rx.to_stack.num; peer_stats_intf.tx_byte_count = peer_stats->tx.tx_success.bytes;