[31/34] common/cnxk: add stats reset for inline device
Checks
Commit Message
From: Monendra Singh Kushwaha <kmonendra@marvell.com>
This patch adds support to reset inline device stats.
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
---
drivers/common/cnxk/roc_nix_inl.h | 1 +
drivers/common/cnxk/roc_nix_inl_dev.c | 27 +++++++++++++++++++++++++++
drivers/common/cnxk/version.map | 1 +
3 files changed, 29 insertions(+)
@@ -130,6 +130,7 @@ void __roc_api roc_nix_inl_dev_lock(void);
void __roc_api roc_nix_inl_dev_unlock(void);
int __roc_api roc_nix_inl_dev_xaq_realloc(uint64_t aura_handle);
int __roc_api roc_nix_inl_dev_stats_get(struct roc_nix_stats *stats);
+int __roc_api roc_nix_inl_dev_stats_reset(void);
int __roc_api roc_nix_inl_dev_cpt_setup(bool use_inl_dev_sso);
int __roc_api roc_nix_inl_dev_cpt_release(void);
bool __roc_api roc_nix_inl_dev_is_multi_channel(void);
@@ -1295,6 +1295,33 @@ roc_nix_inl_dev_stats_get(struct roc_nix_stats *stats)
return 0;
}
+int
+roc_nix_inl_dev_stats_reset(void)
+{
+ struct idev_cfg *idev = idev_get_cfg();
+ struct nix_inl_dev *inl_dev = NULL;
+ struct mbox *mbox;
+ int rc;
+
+ if (idev && idev->nix_inl_dev)
+ inl_dev = idev->nix_inl_dev;
+
+ if (!inl_dev)
+ return -EINVAL;
+
+ mbox = mbox_get((&inl_dev->dev)->mbox);
+
+ if (mbox_alloc_msg_nix_stats_rst(mbox) == NULL) {
+ rc = -ENOMEM;
+ goto exit;
+ }
+
+ rc = mbox_process(mbox);
+exit:
+ mbox_put(mbox);
+ return rc;
+}
+
int
roc_nix_inl_dev_init(struct roc_nix_inl_dev *roc_inl_dev)
{
@@ -251,6 +251,7 @@ INTERNAL {
roc_nix_inl_dev_is_multi_channel;
roc_nix_inl_dev_is_probed;
roc_nix_inl_dev_stats_get;
+ roc_nix_inl_dev_stats_reset;
roc_nix_inl_dev_lock;
roc_nix_inl_dev_rq;
roc_nix_inl_dev_rq_get;