qcacmn: Implement delay VOW stats for hawkeye

Delay counters per TID have been implemented for following types:
1. Linux stack to hw enqueue delay
2. HW enqueue delay to tx completion delay
3. TX interframe delay
4. RX interframe delay
5. RX frame delay from ring reap to networking stack

Change-Id: I836596cbd878a43955c18b4981cb5b7b43d4df5e
This commit is contained in:
Varsha Mishra
2019-03-11 12:16:14 +05:30
committed by nshrivas
parent 17e1cb5cf4
commit a331e6e55f
14 changed files with 380 additions and 17 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
* Copyright (c) 2016-2019 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
@@ -529,6 +529,36 @@ cdp_enable_peer_based_pktlog(ol_txrx_soc_handle soc,
(pdev, peer_macaddr, enable);
}
/**
* cdp_calculate_delay_stats()- get rx delay stats
*
* @soc: pointer to the soc
* @vdev: vdev handle
* @nbuf: nbuf which is passed
*
* This function will calculate rx delay statistics.
*/
static inline void
cdp_calculate_delay_stats(ol_txrx_soc_handle soc, struct cdp_vdev *vdev,
qdf_nbuf_t nbuf)
{
if (!soc || !soc->ops) {
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
"%s: Invalid Instance:", __func__);
QDF_BUG(0);
return;
}
if (!soc->ops->ctrl_ops ||
!soc->ops->ctrl_ops->calculate_delay_stats) {
QDF_TRACE(QDF_MODULE_ID_CDP, QDF_TRACE_LEVEL_DEBUG,
"%s: callback not registered:", __func__);
return;
}
return soc->ops->ctrl_ops->calculate_delay_stats(vdev, nbuf);
}
/**
* @brief Subscribe to a specified WDI event.
* @details