qcacmn: Get channel utilization from dp pdev
Set channel util stats to dp pdev from channel stats event CRs-Fixed: 3380939 Change-Id: Ib908946a42077f936402afbe846a835cb91b0a8d
This commit is contained in:

committed by
Madan Koyyalamudi

parent
1442fb17b6
commit
01569fa038
@@ -1088,6 +1088,33 @@ static inline QDF_STATUS cdp_get_peer_deter_stats(
|
|||||||
return soc->ops->host_stats_ops->txrx_peer_deter_stats(
|
return soc->ops->host_stats_ops->txrx_peer_deter_stats(
|
||||||
soc, addr, stats);
|
soc, addr, stats);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cdp_update_pdev_chan_util_stats(): function to update pdev channel util stats
|
||||||
|
* @soc: soc handle
|
||||||
|
* @pdev_id: pdev id
|
||||||
|
* @ch_util: pointer to pdev ch util stats
|
||||||
|
*
|
||||||
|
* return: status
|
||||||
|
*/
|
||||||
|
static inline QDF_STATUS cdp_update_pdev_chan_util_stats(
|
||||||
|
ol_txrx_soc_handle soc,
|
||||||
|
uint8_t pdev_id,
|
||||||
|
struct cdp_pdev_chan_util_stats *ch_util)
|
||||||
|
{
|
||||||
|
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_update_pdev_chan_util_stats)
|
||||||
|
return QDF_STATUS_E_FAILURE;
|
||||||
|
|
||||||
|
return soc->ops->host_stats_ops->txrx_update_pdev_chan_util_stats(
|
||||||
|
soc, pdev_id, ch_util);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -1254,6 +1254,11 @@ struct cdp_host_stats_ops {
|
|||||||
struct cdp_soc_t *soc,
|
struct cdp_soc_t *soc,
|
||||||
uint8_t *addr,
|
uint8_t *addr,
|
||||||
struct cdp_peer_deter_stats *stats);
|
struct cdp_peer_deter_stats *stats);
|
||||||
|
QDF_STATUS
|
||||||
|
(*txrx_update_pdev_chan_util_stats)(
|
||||||
|
struct cdp_soc_t *soc,
|
||||||
|
uint8_t pdev_id,
|
||||||
|
struct cdp_pdev_chan_util_stats *ch_util);
|
||||||
#endif
|
#endif
|
||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
(*txrx_get_peer_extd_rate_link_stats)
|
(*txrx_get_peer_extd_rate_link_stats)
|
||||||
|
@@ -2961,6 +2961,18 @@ struct cdp_peer_deter_stats {
|
|||||||
struct cdp_peer_rx_deter rx_det;
|
struct cdp_peer_rx_deter rx_det;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct cdp_pdev_deter_stats- Structure to hold pdev deterministic stats
|
||||||
|
* @ap_chan_util: Channel utilization
|
||||||
|
* @ap_tx_util: TX utilization
|
||||||
|
* @ap_rx_util: RX utilization
|
||||||
|
*/
|
||||||
|
struct cdp_pdev_chan_util_stats {
|
||||||
|
uint8_t ap_chan_util;
|
||||||
|
uint8_t ap_tx_util;
|
||||||
|
uint8_t ap_rx_util;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct cdp_pdev_deter_stats- Structure to hold pdev deterministic stats
|
* struct cdp_pdev_deter_stats- Structure to hold pdev deterministic stats
|
||||||
* @dl_ofdma_usr: num_user counter for dl ofdma
|
* @dl_ofdma_usr: num_user counter for dl ofdma
|
||||||
@@ -2970,6 +2982,7 @@ struct cdp_peer_deter_stats {
|
|||||||
* @dl_mode_cnt: DL tx mode counter
|
* @dl_mode_cnt: DL tx mode counter
|
||||||
* @ul_mode_cnt: UL tx mode counter
|
* @ul_mode_cnt: UL tx mode counter
|
||||||
* @ch_access_delay
|
* @ch_access_delay
|
||||||
|
* @ch_util: channel congestion stats
|
||||||
*/
|
*/
|
||||||
struct cdp_pdev_deter_stats {
|
struct cdp_pdev_deter_stats {
|
||||||
uint64_t dl_ofdma_usr[CDP_MU_MAX_USERS];
|
uint64_t dl_ofdma_usr[CDP_MU_MAX_USERS];
|
||||||
@@ -2981,6 +2994,7 @@ struct cdp_pdev_deter_stats {
|
|||||||
uint32_t ch_access_delay[WME_AC_MAX];
|
uint32_t ch_access_delay[WME_AC_MAX];
|
||||||
uint64_t trigger_success;
|
uint64_t trigger_success;
|
||||||
uint64_t trigger_fail;
|
uint64_t trigger_fail;
|
||||||
|
struct cdp_pdev_chan_util_stats ch_util;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -4253,6 +4253,19 @@ dp_get_peer_deter_stats(struct cdp_soc_t *soc_hdl, uint8_t *addr,
|
|||||||
QDF_STATUS
|
QDF_STATUS
|
||||||
dp_get_pdev_deter_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
dp_get_pdev_deter_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||||
struct cdp_pdev_deter_stats *stats);
|
struct cdp_pdev_deter_stats *stats);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* dp_update_pdev_chan_util_stats- API to update channel utilization stats
|
||||||
|
* @soc_hdl: soc handle
|
||||||
|
* @pdev_id: id of pdev handle
|
||||||
|
* @ch_util: Pointer to channel util stats
|
||||||
|
*
|
||||||
|
* Return: QDF_STATUS_SUCCESS: Success
|
||||||
|
* QDF_STATUS_E_FAILURE: Error
|
||||||
|
*/
|
||||||
|
QDF_STATUS
|
||||||
|
dp_update_pdev_chan_util_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||||
|
struct cdp_pdev_chan_util_stats *ch_util);
|
||||||
#endif /* WLAN_TELEMETRY_STATS_SUPPORT */
|
#endif /* WLAN_TELEMETRY_STATS_SUPPORT */
|
||||||
|
|
||||||
#ifdef CONNECTIVITY_PKTLOG
|
#ifdef CONNECTIVITY_PKTLOG
|
||||||
|
@@ -14204,6 +14204,7 @@ static struct cdp_host_stats_ops dp_ops_host_stats = {
|
|||||||
.txrx_peer_telemetry_stats = dp_get_peer_telemetry_stats,
|
.txrx_peer_telemetry_stats = dp_get_peer_telemetry_stats,
|
||||||
.txrx_pdev_deter_stats = dp_get_pdev_deter_stats,
|
.txrx_pdev_deter_stats = dp_get_pdev_deter_stats,
|
||||||
.txrx_peer_deter_stats = dp_get_peer_deter_stats,
|
.txrx_peer_deter_stats = dp_get_peer_deter_stats,
|
||||||
|
.txrx_update_pdev_chan_util_stats = dp_update_pdev_chan_util_stats,
|
||||||
#endif
|
#endif
|
||||||
.txrx_get_peer_extd_rate_link_stats =
|
.txrx_get_peer_extd_rate_link_stats =
|
||||||
dp_get_peer_extd_rate_link_stats,
|
dp_get_peer_extd_rate_link_stats,
|
||||||
|
@@ -9317,6 +9317,11 @@ dp_get_pdev_deter_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
|||||||
stats->trigger_success = pdev->stats.deter_stats.trigger_success;
|
stats->trigger_success = pdev->stats.deter_stats.trigger_success;
|
||||||
stats->trigger_fail = pdev->stats.deter_stats.trigger_fail;
|
stats->trigger_fail = pdev->stats.deter_stats.trigger_fail;
|
||||||
|
|
||||||
|
stats->ch_util.ap_tx_util = pdev->stats.deter_stats.ch_util.ap_tx_util;
|
||||||
|
stats->ch_util.ap_rx_util = pdev->stats.deter_stats.ch_util.ap_rx_util;
|
||||||
|
stats->ch_util.ap_chan_util =
|
||||||
|
pdev->stats.deter_stats.ch_util.ap_chan_util;
|
||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -9336,4 +9341,21 @@ dp_get_peer_deter_stats(struct cdp_soc_t *soc_hdl, uint8_t *addr,
|
|||||||
|
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QDF_STATUS
|
||||||
|
dp_update_pdev_chan_util_stats(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||||
|
struct cdp_pdev_chan_util_stats *ch_util)
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
|
||||||
|
pdev->stats.deter_stats.ch_util.ap_tx_util = ch_util->ap_tx_util;
|
||||||
|
pdev->stats.deter_stats.ch_util.ap_rx_util = ch_util->ap_rx_util;
|
||||||
|
pdev->stats.deter_stats.ch_util.ap_chan_util = ch_util->ap_chan_util;
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user