[PATCH 08/11] common/cnxk: use lcore LMT line for CPT context write
Nithin Dabilpuram
ndabilpuram at marvell.com
Mon Nov 28 10:54:39 CET 2022
Use lcore LMT line for CPT context write as no one else
is using it.
Signed-off-by: Nithin Dabilpuram <ndabilpuram at marvell.com>
---
drivers/common/cnxk/roc_cpt.c | 3 ++-
drivers/common/cnxk/roc_io.h | 5 +++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/common/cnxk/roc_cpt.c b/drivers/common/cnxk/roc_cpt.c
index 9a90d4d853..e336edb77e 100644
--- a/drivers/common/cnxk/roc_cpt.c
+++ b/drivers/common/cnxk/roc_cpt.c
@@ -1020,7 +1020,8 @@ roc_cpt_ctx_write(struct roc_cpt_lf *lf, void *sa_dptr, void *sa_cptr,
uint64_t *dptr;
int i;
- ROC_LMT_CPT_BASE_ID_GET(lmt_base, lmt_id);
+ /* Use this lcore's LMT line as no one else is using it */
+ ROC_LMT_BASE_ID_GET(lmt_base, lmt_id);
inst = (struct cpt_inst_s *)lmt_base;
memset(inst, 0, sizeof(struct cpt_inst_s));
diff --git a/drivers/common/cnxk/roc_io.h b/drivers/common/cnxk/roc_io.h
index 13f98ed549..1e5c1f8c04 100644
--- a/drivers/common/cnxk/roc_io.h
+++ b/drivers/common/cnxk/roc_io.h
@@ -7,6 +7,7 @@
#include "roc_platform.h" /* for __plt_always_inline macro */
+#ifndef ROC_LMT_BASE_ID_GET
#define ROC_LMT_BASE_ID_GET(lmt_addr, lmt_id) \
do { \
/* 32 Lines per core */ \
@@ -14,7 +15,10 @@
/* Each line is of 128B */ \
(lmt_addr) += ((uint64_t)lmt_id << ROC_LMT_LINE_SIZE_LOG2); \
} while (0)
+#endif
+/* Define it if not defined in roc_platform.h */
+#ifndef ROC_LMT_CPT_BASE_ID_GET
#define ROC_LMT_CPT_BASE_ID_GET(lmt_addr, lmt_id) \
do { \
/* 16 Lines per core */ \
@@ -23,6 +27,7 @@
/* Each line is of 128B */ \
(lmt_addr) += ((uint64_t)lmt_id << ROC_LMT_LINE_SIZE_LOG2); \
} while (0)
+#endif
#define roc_load_pair(val0, val1, addr) \
({ \
--
2.25.1
More information about the dev
mailing list