[PATCH] drivers/perf: hisi: Fix readl DDRC_VERSION stuck

Youwan Wang youwan at nfschina.com
Thu Oct 10 01:42:17 PDT 2024


The CPU of the device I am using is kunpeng 920,
which can start normally with version 5.4 kernel.
However, when installing version 6.6 kernel, the
kernel gets stuck when loading the "hisi_dddrc_pmu"
driver. I went to debug and found that it gets stuck
when "readl (ddrc_pmu ->base+DDRC_VERSION)". I suspect
that the hardware does not support it. My modification is:
for the "HISI0233" device, according to the implementation
of version 5.4 kernel, the identity is not obtained from
the register. For "identifier" sysfs, identifier: 0

Signed-off-by: Youwan Wang <youwan at nfschina.com>
---
 drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
index b804e3738113..3cecad46b01f 100644
--- a/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
+++ b/drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c
@@ -321,6 +321,9 @@ static int hisi_ddrc_pmu_init_data(struct platform_device *pdev,
 		return PTR_ERR(ddrc_pmu->base);
 	}
 
+	if (strstr(pdev->name, "HISI0233"))
+		return 0;
+
 	ddrc_pmu->identifier = readl(ddrc_pmu->base + DDRC_VERSION);
 	if (ddrc_pmu->identifier >= HISI_PMU_V2) {
 		if (device_property_read_u32(&pdev->dev, "hisilicon,sub-id",
-- 
2.25.1




More information about the linux-arm-kernel mailing list