qcacmn: Get deterministic stats from DP PDEV
Add cdp layer API to get stats and Copy pdev deterministic stats from dp_pdev to cdp structure Change-Id: Ia7dbbe4cfe7ebe66a040879144505b17aaaa625a CRs-Fixed: 3380939
This commit is contained in:

zatwierdzone przez
Madan Koyyalamudi

rodzic
e03fabab41
commit
1442fb17b6
@@ -1035,6 +1035,33 @@ static inline QDF_STATUS cdp_get_peer_telemetry_stats(
|
||||
soc, addr, stats);
|
||||
}
|
||||
|
||||
/**
|
||||
* cdp_get_pdev_deter_stats(): function to get pdev deterministic stats
|
||||
* @soc: soc handle
|
||||
* @pdev_id: pdev id
|
||||
* @stats: pointer to pdev deterministic stats
|
||||
*
|
||||
* return: status
|
||||
*/
|
||||
static inline QDF_STATUS cdp_get_pdev_deter_stats(
|
||||
ol_txrx_soc_handle soc,
|
||||
uint8_t pdev_id,
|
||||
struct cdp_pdev_deter_stats *stats)
|
||||
{
|
||||
if (!soc || !soc->ops) {
|
||||
dp_cdp_debug("Invalid Instance");
|
||||
QDF_BUG(0);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
if (!soc->ops->host_stats_ops ||
|
||||
!soc->ops->host_stats_ops->txrx_pdev_deter_stats)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
return soc->ops->host_stats_ops->txrx_pdev_deter_stats(
|
||||
soc, pdev_id, stats);
|
||||
}
|
||||
|
||||
/**
|
||||
* cdp_get_peer_deter_stats(): function to get peer deterministic stats
|
||||
* @soc: soc handle
|
||||
|
@@ -1244,6 +1244,11 @@ struct cdp_host_stats_ops {
|
||||
struct cdp_soc_t *soc,
|
||||
uint8_t *addr,
|
||||
struct cdp_peer_telemetry_stats *stats);
|
||||
QDF_STATUS
|
||||
(*txrx_pdev_deter_stats)(
|
||||
struct cdp_soc_t *soc,
|
||||
uint8_t pdev_id,
|
||||
struct cdp_pdev_deter_stats *stats);
|
||||
QDF_STATUS
|
||||
(*txrx_peer_deter_stats)(
|
||||
struct cdp_soc_t *soc,
|
||||
|
@@ -4240,6 +4240,19 @@ dp_get_peer_telemetry_stats(struct cdp_soc_t *soc_hdl, uint8_t *addr,
|
||||
QDF_STATUS
|
||||
dp_get_peer_deter_stats(struct cdp_soc_t *soc_hdl, uint8_t *addr,
|
||||
struct cdp_peer_deter_stats *stats);
|
||||
|
||||
/*
|
||||
* dp_get_pdev_deter_stats- API to get pdev deterministic stats
|
||||
* @soc_hdl: soc handle
|
||||
* @pdev_id: id of pdev handle
|
||||
* @stats: pointer to pdev deterministic stats
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS: Success
|
||||
* QDF_STATUS_E_FAILURE: Error
|
||||
*/
|
||||
QDF_STATUS
|
||||
dp_get_pdev_deter_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||
struct cdp_pdev_deter_stats *stats);
|
||||
#endif /* WLAN_TELEMETRY_STATS_SUPPORT */
|
||||
|
||||
#ifdef CONNECTIVITY_PKTLOG
|
||||
|
@@ -14202,6 +14202,7 @@ static struct cdp_host_stats_ops dp_ops_host_stats = {
|
||||
#ifdef WLAN_TELEMETRY_STATS_SUPPORT
|
||||
.txrx_pdev_telemetry_stats = dp_get_pdev_telemetry_stats,
|
||||
.txrx_peer_telemetry_stats = dp_get_peer_telemetry_stats,
|
||||
.txrx_pdev_deter_stats = dp_get_pdev_deter_stats,
|
||||
.txrx_peer_deter_stats = dp_get_peer_deter_stats,
|
||||
#endif
|
||||
.txrx_get_peer_extd_rate_link_stats =
|
||||
|
@@ -9287,6 +9287,39 @@ dp_get_peer_telemetry_stats(struct cdp_soc_t *soc_hdl, uint8_t *addr,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
dp_get_pdev_deter_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||
struct cdp_pdev_deter_stats *stats)
|
||||
{
|
||||
struct dp_soc *soc = (struct dp_soc *)soc_hdl;
|
||||
struct dp_pdev *pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
|
||||
|
||||
if (!pdev)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
qdf_mem_copy(stats->dl_ofdma_usr, pdev->stats.deter_stats.dl_ofdma_usr,
|
||||
sizeof(stats->dl_ofdma_usr[0]) * CDP_MU_MAX_USERS);
|
||||
qdf_mem_copy(stats->ul_ofdma_usr, pdev->stats.deter_stats.ul_ofdma_usr,
|
||||
sizeof(stats->ul_ofdma_usr[0]) * CDP_MU_MAX_USERS);
|
||||
qdf_mem_copy(stats->dl_mimo_usr, pdev->stats.deter_stats.dl_mimo_usr,
|
||||
sizeof(stats->dl_mimo_usr[0]) * CDP_MU_MAX_USERS);
|
||||
qdf_mem_copy(stats->ul_mimo_usr, pdev->stats.deter_stats.ul_mimo_usr,
|
||||
sizeof(stats->ul_mimo_usr[0]) * CDP_MU_MAX_USERS);
|
||||
|
||||
qdf_mem_copy(stats->ul_mode_cnt, pdev->stats.deter_stats.ul_mode_cnt,
|
||||
sizeof(stats->ul_mode_cnt[0]) * TX_MODE_UL_MAX);
|
||||
qdf_mem_copy(stats->dl_mode_cnt, pdev->stats.deter_stats.dl_mode_cnt,
|
||||
sizeof(stats->dl_mode_cnt[0]) * TX_MODE_DL_MAX);
|
||||
qdf_mem_copy(stats->ch_access_delay,
|
||||
pdev->stats.deter_stats.ch_access_delay,
|
||||
sizeof(stats->ch_access_delay[0]) * WME_AC_MAX);
|
||||
|
||||
stats->trigger_success = pdev->stats.deter_stats.trigger_success;
|
||||
stats->trigger_fail = pdev->stats.deter_stats.trigger_fail;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
dp_get_peer_deter_stats(struct cdp_soc_t *soc_hdl, uint8_t *addr,
|
||||
struct cdp_peer_deter_stats *stats)
|
||||
|
Reference in New Issue
Block a user