[PATCH v1 1/8] Revert "UBUNTU: SAUCE: mlxbf-pmc: Bug fix for BlueField-3 counter offsets"

Shravan Kumar Ramani shravankr at nvidia.com
Tue Oct 17 11:29:38 UTC 2023


BugLink: https://bugs.launchpad.net/bugs/2039561

This reverts commit cc424aaef5c946272a3bf06638f5c0f786af7b74.

Signed-off-by: Shravan Kumar Ramani <shravankr at nvidia.com>
---
 drivers/platform/mellanox/mlxbf-pmc.c | 12 +++++-------
 drivers/platform/mellanox/mlxbf-pmc.h |  4 ++--
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/platform/mellanox/mlxbf-pmc.c b/drivers/platform/mellanox/mlxbf-pmc.c
index 3ef9aa0c4c1e..fe27aea7cf9e 100644
--- a/drivers/platform/mellanox/mlxbf-pmc.c
+++ b/drivers/platform/mellanox/mlxbf-pmc.c
@@ -427,8 +427,7 @@ int mlxbf_clear_crspace_counter(int blk_num, uint32_t cnt_num)
 {
 	void *addr;
 
-	addr = pmc->block[blk_num].mmio_base +
-		MLXBF_CRSPACE_PERFMON_VAL0(pmc->block[blk_num].counters) +
+	addr = pmc->block[blk_num].mmio_base + MLXBF_CRSPACE_PERFMON_VAL0 +
 		(cnt_num * 4);
 
 	return mlxbf_pmc_writel(0x0, addr);
@@ -533,8 +532,7 @@ int mlxbf_read_crspace_counter(int blk_num, uint32_t cnt_num, uint64_t *result)
 	int status = 0;
 
 	status = mlxbf_pmc_readl(&value, pmc->block[blk_num].mmio_base +
-		MLXBF_CRSPACE_PERFMON_VAL0(pmc->block[blk_num].counters) +
-		(cnt_num * 4));
+		MLXBF_CRSPACE_PERFMON_VAL0 + (cnt_num * 4));
 	if (status)
 		return status;
 
@@ -937,7 +935,7 @@ static ssize_t mlxbf_show_counter_state(struct kobject *ko,
 
 	if (pmc->block[blk_num].type == MLXBF_PERFTYPE_CRSPACE) {
 		err = mlxbf_pmc_readl(&word, pmc->block[blk_num].mmio_base +
-			MLXBF_CRSPACE_PERFMON_CTL(pmc->block[blk_num].counters));
+			MLXBF_CRSPACE_PERFMON_CTL);
 		if (err)
 			return -EINVAL;
 		value = FIELD_GET(MLXBF_CRSPACE_PERFMON_EN, word);
@@ -969,7 +967,7 @@ static ssize_t mlxbf_enable_counters(struct kobject *ko,
 		return err;
 	if (pmc->block[blk_num].type == MLXBF_PERFTYPE_CRSPACE) {
 		err = mlxbf_pmc_readl(&word, pmc->block[blk_num].mmio_base +
-			MLXBF_CRSPACE_PERFMON_CTL(pmc->block[blk_num].counters));
+			MLXBF_CRSPACE_PERFMON_CTL);
 		if (err)
 			return -EINVAL;
 		word &= ~MLXBF_CRSPACE_PERFMON_EN;
@@ -977,7 +975,7 @@ static ssize_t mlxbf_enable_counters(struct kobject *ko,
 		if (en)
 			word |= FIELD_PREP(MLXBF_CRSPACE_PERFMON_CLR, 1);
 		mlxbf_pmc_writel(word, pmc->block[blk_num].mmio_base +
-			MLXBF_CRSPACE_PERFMON_CTL(pmc->block[blk_num].counters));
+			MLXBF_CRSPACE_PERFMON_CTL);
 	} else {
 		if (en == 0) {
 			err = mlxbf_config_l3_counters(blk_num, false, false);
diff --git a/drivers/platform/mellanox/mlxbf-pmc.h b/drivers/platform/mellanox/mlxbf-pmc.h
index 2ee7efc3b4ea..fe251661619d 100644
--- a/drivers/platform/mellanox/mlxbf-pmc.h
+++ b/drivers/platform/mellanox/mlxbf-pmc.h
@@ -152,10 +152,10 @@ struct mlxbf_pmc_context {
 #define MLXBF_CRSPACE_PERFMON_REG0		0x0
 #define MLXBF_CRSPACE_PERFSEL0			GENMASK(23, 16)
 #define MLXBF_CRSPACE_PERFSEL1			GENMASK(7, 0)
-#define MLXBF_CRSPACE_PERFMON_CTL(n)		(n * 2)
+#define MLXBF_CRSPACE_PERFMON_CTL		0x40
 #define MLXBF_CRSPACE_PERFMON_EN		BIT(30)
 #define MLXBF_CRSPACE_PERFMON_CLR		BIT(28)
-#define MLXBF_CRSPACE_PERFMON_VAL0(n)		(MLXBF_CRSPACE_PERFMON_CTL(n) + 0xc)
+#define MLXBF_CRSPACE_PERFMON_VAL0		0x4c
 
 struct mlxbf_pmc_events {
 	uint32_t evt_num;
-- 
2.30.1




More information about the kernel-team mailing list