mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 01:01:56 -04:00
qcacmn: Fill appropriate statistics value
Update stats request value if statistics request from user level is greater that CDP_TXRX_STATS_HTT_MAX value. Change-Id: I0e36200021fb70662481bc823a95f9e64a8b1e14 CRs-Fixed: 2291842
This commit is contained in:
parent
4d877b8ea5
commit
599b14ce03
3 changed files with 22 additions and 10 deletions
|
|
@ -868,7 +868,7 @@ enum cdp_stats {
|
|||
CDP_TXRX_STATS_27,
|
||||
CDP_TXRX_STATS_28,
|
||||
CDP_TXRX_STATS_HTT_MAX = 256,
|
||||
CDP_TXRX_MAX_STATS = 512,
|
||||
CDP_TXRX_MAX_STATS = 265,
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -295,8 +295,8 @@ struct cdp_cmn_ops {
|
|||
void (*set_pdev_dscp_tid_map)(struct cdp_pdev *pdev, uint8_t map_id,
|
||||
uint8_t tos, uint8_t tid);
|
||||
|
||||
int (*txrx_stats_request)(struct cdp_vdev *vdev,
|
||||
struct cdp_txrx_stats_req *req);
|
||||
QDF_STATUS (*txrx_stats_request)(struct cdp_vdev *vdev,
|
||||
struct cdp_txrx_stats_req *req);
|
||||
|
||||
QDF_STATUS (*display_stats)(void *psoc, uint16_t value,
|
||||
enum qdf_stats_verbosity_level level);
|
||||
|
|
|
|||
|
|
@ -6898,24 +6898,26 @@ static int dp_fw_stats_process(struct cdp_vdev *vdev_handle,
|
|||
* @vdev: virtual handle
|
||||
* @req: stats request
|
||||
*
|
||||
* Return: integer
|
||||
* Return: QDF_STATUS
|
||||
*/
|
||||
static int dp_txrx_stats_request(struct cdp_vdev *vdev,
|
||||
struct cdp_txrx_stats_req *req)
|
||||
static
|
||||
QDF_STATUS dp_txrx_stats_request(struct cdp_vdev *vdev,
|
||||
struct cdp_txrx_stats_req *req)
|
||||
{
|
||||
int host_stats;
|
||||
int fw_stats;
|
||||
enum cdp_stats stats;
|
||||
int num_stats;
|
||||
|
||||
if (!vdev || !req) {
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||
"Invalid vdev/req instance");
|
||||
return 0;
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
stats = req->stats;
|
||||
if (stats >= CDP_TXRX_MAX_STATS)
|
||||
return 0;
|
||||
return QDF_STATUS_E_INVAL;
|
||||
|
||||
/*
|
||||
* DP_CURR_FW_STATS_AVAIL: no of FW stats currently available
|
||||
|
|
@ -6923,11 +6925,21 @@ static int dp_txrx_stats_request(struct cdp_vdev *vdev,
|
|||
*/
|
||||
if (stats > CDP_TXRX_STATS_HTT_MAX)
|
||||
stats = stats + DP_CURR_FW_STATS_AVAIL - DP_HTT_DBG_EXT_STATS_MAX;
|
||||
|
||||
num_stats = QDF_ARRAY_SIZE(dp_stats_mapping_table);
|
||||
|
||||
if (stats >= num_stats) {
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: Invalid stats option: %d", __func__, stats);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
req->stats = stats;
|
||||
fw_stats = dp_stats_mapping_table[stats][STATS_FW];
|
||||
host_stats = dp_stats_mapping_table[stats][STATS_HOST];
|
||||
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
|
||||
"stats: %u fw_stats_type: %d host_stats_type: %d",
|
||||
"stats: %u fw_stats_type: %d host_stats: %d",
|
||||
stats, fw_stats, host_stats);
|
||||
|
||||
if (fw_stats != TXRX_FW_STATS_INVALID) {
|
||||
|
|
@ -6943,7 +6955,7 @@ static int dp_txrx_stats_request(struct cdp_vdev *vdev,
|
|||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO,
|
||||
"Wrong Input for TxRx Stats");
|
||||
|
||||
return 0;
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue