]> git.itanic.dy.fi Git - linux-stable/commitdiff
arm64: dts: mediatek: mt8195: Set DSU PMU status to fail
authorNícolas F. R. A. Prado <nfraprado@collabora.com>
Tue, 3 Oct 2023 11:13:47 +0000 (13:13 +0200)
committerArnd Bergmann <arnd@arndb.de>
Fri, 6 Oct 2023 20:45:57 +0000 (22:45 +0200)
The DSU PMU allows monitoring performance events in the DSU cluster,
which is done by configuring and reading back values from the DSU PMU
system registers. However, for write-access to be allowed by ELs lower
than EL3, the EL3 firmware needs to update the setting on the ACTLR3_EL3
register, as it is disallowed by default.

That configuration is not done on the firmware used by the MT8195 SoC,
as a consequence, booting a MT8195-based machine like
mt8195-cherry-tomato-r2 with CONFIG_ARM_DSU_PMU enabled hangs the kernel
just as it writes to the CLUSTERPMOVSCLR_EL1 register, since the
instruction faults to EL3, and BL31 apparently just re-runs the
instruction over and over.

Mark the DSU PMU node in the Devicetree with status "fail", as the
machine doesn't have a suitable firmware to make use of it from the
kernel, and allowing its driver to probe would hang the kernel.

Fixes: 37f2582883be ("arm64: dts: Add mediatek SoC mt8195 and evaluation board")
Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20230720200753.322133-1-nfraprado@collabora.com
Link: https://lore.kernel.org/r/20231003-mediatek-fixes-v6-7-v1-5-dad7cd62a8ff@collabora.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm64/boot/dts/mediatek/mt8195.dtsi

index 4dbbf8fdab75857d7a9f889c3222900331c81174..43011bc41da770292799b9e492f92bffb15532e7 100644 (file)
@@ -313,6 +313,7 @@ dsu-pmu {
                interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
                cpus = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>,
                       <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>;
+               status = "fail";
        };
 
        dmic_codec: dmic-codec {