qcacmn: Add support for rx evm and rx antenna
Add Host support for rx evm and rx antenna
CRs-Fixed: 2493515
Change-Id: I6c6e3edd8d6650eabb69cea08ec275da7067f37d
diff --git a/dp/wifi3.0/dp_rx_mon_status.c b/dp/wifi3.0/dp_rx_mon_status.c
index d8b733d..9852a1e 100644
--- a/dp/wifi3.0/dp_rx_mon_status.c
+++ b/dp/wifi3.0/dp_rx_mon_status.c
@@ -70,6 +70,36 @@
}
}
+/*
+ * dp_rx_populate_su_evm_details() - Populate su evm info
+ * @ppdu_info: ppdu info structure from ppdu ring
+ * @cdp_rx_ppdu: rx ppdu indication structure
+ */
+static inline void
+dp_rx_populate_su_evm_details(struct hal_rx_ppdu_info *ppdu_info,
+ struct cdp_rx_indication_ppdu *cdp_rx_ppdu)
+{
+ uint8_t pilot_evm;
+ uint8_t nss_count;
+ uint8_t pilot_count;
+
+ nss_count = ppdu_info->evm_info.nss_count;
+ pilot_count = ppdu_info->evm_info.pilot_count;
+
+ if ((nss_count * pilot_count) > DP_RX_MAX_SU_EVM_COUNT) {
+ qdf_err("pilot evm count is more than expected");
+ return;
+ }
+ cdp_rx_ppdu->evm_info.pilot_count = pilot_count;
+ cdp_rx_ppdu->evm_info.nss_count = nss_count;
+
+ /* Populate evm for pilot_evm = nss_count*pilot_count */
+ for (pilot_evm = 0; pilot_evm < nss_count * pilot_count; pilot_evm++) {
+ cdp_rx_ppdu->evm_info.pilot_evm[pilot_evm] =
+ ppdu_info->evm_info.pilot_evm[pilot_evm];
+ }
+}
+
/**
* dp_rx_populate_cdp_indication_ppdu() - Populate cdp rx indication structure
* @pdev: pdev ctx
@@ -158,6 +188,8 @@
cdp_rx_ppdu->u.ltf_size = ppdu_info->rx_status.ltf_size;
dp_rx_populate_rx_rssi_chain(ppdu_info, cdp_rx_ppdu);
+ dp_rx_populate_su_evm_details(ppdu_info, cdp_rx_ppdu);
+ cdp_rx_ppdu->rx_antenna = ppdu_info->rx_status.rx_antenna;
}
#else
static inline void
@@ -208,6 +240,9 @@
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;
+ ppdu->rx_ratecode = CDP_TXRX_RATECODE(ppdu->u.mcs,
+ nss,
+ ppdu->u.preamble);
if (peer->vdev)
peer->vdev->stats.rx.last_rx_rate = ratekbps;