lib: sbi: Counter info width should be zero indexed
authorAtish Patra <atish.patra@wdc.com>
Mon, 8 Nov 2021 18:53:04 +0000 (10:53 -0800)
committerAnup Patel <anup@brainfault.org>
Thu, 11 Nov 2021 12:22:19 +0000 (17:52 +0530)
The mhpm bits represent the number of bits available in mhpmcounter
while counter width describes a zero indexed value. Fix the counter width
calculation.

Fixes: 13d40f21d588 ("lib: sbi: Add PMU support")
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Anup Patel <anup.patel@wdc.com>
Signed-off-by: Atish Patra <atish.patra@wdc.com>
lib/sbi/sbi_pmu.c

index 1bb3e49..da8a37b 100644 (file)
@@ -649,7 +649,7 @@ int sbi_pmu_ctr_get_info(uint32_t cidx, unsigned long *ctr_info)
                if (cidx == 0 || cidx == 2)
                        cinfo.width = 63;
                else
-                       cinfo.width = sbi_hart_mhpm_bits(scratch);
+                       cinfo.width = sbi_hart_mhpm_bits(scratch) - 1;
        } else {
                /* it's a firmware counter */
                cinfo.type = SBI_PMU_CTR_TYPE_FW;