From: Monendra Singh Kushwaha <kmonen...@marvell.com>

This patch adds support to reset inline device stats.

Signed-off-by: Monendra Singh Kushwaha <kmonen...@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(+)

diff --git a/drivers/common/cnxk/roc_nix_inl.h 
b/drivers/common/cnxk/roc_nix_inl.h
index 2db3a0d0f2..dab4918535 100644
--- a/drivers/common/cnxk/roc_nix_inl.h
+++ b/drivers/common/cnxk/roc_nix_inl.h
@@ -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);
diff --git a/drivers/common/cnxk/roc_nix_inl_dev.c 
b/drivers/common/cnxk/roc_nix_inl_dev.c
index 041ccd9c13..2e753440b7 100644
--- a/drivers/common/cnxk/roc_nix_inl_dev.c
+++ b/drivers/common/cnxk/roc_nix_inl_dev.c
@@ -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)
 {
diff --git a/drivers/common/cnxk/version.map b/drivers/common/cnxk/version.map
index 36eb46e3a1..cdbfc1d39a 100644
--- a/drivers/common/cnxk/version.map
+++ b/drivers/common/cnxk/version.map
@@ -252,6 +252,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;
-- 
2.34.1

Reply via email to