[08/11] common/cnxk: use lcore LMT line for CPT context write
Checks
Commit Message
Use lcore LMT line for CPT context write as no one else
is using it.
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
drivers/common/cnxk/roc_cpt.c | 3 ++-
drivers/common/cnxk/roc_io.h | 5 +++++
2 files changed, 7 insertions(+), 1 deletion(-)
@@ -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));
@@ -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) \
({ \