From e7e73aa532fa5813f457b9b09899413f41885d37 Mon Sep 17 00:00:00 2001 From: Inochi Amaoto Date: Fri, 11 Aug 2023 08:13:01 +0800 Subject: [PATCH] platform: generic: allwinner: correct mhpmevent count Only the CSR mhpmevent 3-9,13-17 of D1 have valid function, so change the mhpm_mask to a valid value to avoid invalid usage. Due to the openc906 pmu code https://github.com/T-head-Semi/openc906/blob/main/C906_RTL_FACTORY/gen_rtl/pmu/rtl/aq_hpcp_top.v Signed-off-by: Inochi Amaoto Reviewed-by: Anup Patel --- platform/generic/allwinner/sun20i-d1.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/platform/generic/allwinner/sun20i-d1.c b/platform/generic/allwinner/sun20i-d1.c index 0f0a9f34..03cb92cf 100644 --- a/platform/generic/allwinner/sun20i-d1.c +++ b/platform/generic/allwinner/sun20i-d1.c @@ -272,7 +272,8 @@ static int sun20i_d1_extensions_init(const struct fdt_match *match, sbi_pmu_set_device(&thead_c9xx_pmu_device); /* auto-detection doesn't work on t-head c9xx cores */ - hfeatures->mhpm_count = 29; + /* D1 has 29 mhpmevent csrs, but only 3-9,13-17 have valid value */ + hfeatures->mhpm_mask = 0x0003e3f8; hfeatures->mhpm_bits = 64; return 0;