On Tue, 2024-07-02 at 20:28 +0100, Vitor Soares wrote:
On Mon, 2024-07-01 at 23:59 +0000, Peng Fan wrote:
Subject: [PATCH v1] arm64: dts: imx8mp: Fix VPU PGC power-domain parents
From: Vitor Soares vitor.soares@toradex.com
On iMX8M Plus QuadLite (VPU-less SoC), the dependency between VPU power domains lead to a deferred probe error during boot: [ 17.140195] imx-pgc imx-pgc-domain.8: failed to command PGC [ 17.147183] platform imx-pgc-domain.11: deferred probe pending: (reason unknown) [ 17.147200] platform imx-pgc-domain.12: deferred probe pending: (reason unknown) [ 17.147207] platform imx-pgc-domain.13: deferred probe pending: (reason unknown)
This is incorrect and should be the VPU blk-ctrl controlling these power domains, which is already doing it.
After removing the `power-domain` property from the VPU PGC nodes, both iMX8M Plus w/ and w/out VPU boot correctly. However, it breaks the suspend/resume functionality. A fix for this is pending, see Links.
Cc: stable@vger.kernel.org Fixes: df680992dd62 ("arm64: dts: imx8mp: add vpu pgc nodes") Link: Suggested-by: Lucas Stach l.stach@pengutronix.de Signed-off-by: Vitor Soares vitor.soares@toradex.com
For VPU-Less 8MP, all the VPU PGC nodes should be dropped, right?
They don't need to be dropped. Taking the iMX8MM Lite variante as example (it also doesn't have VPU), the nodes are there and this issue is not present.
Why not use bootloader to update the device tree based on fuse settings?
While fixing VPU blk-ctrl suspend/resume functionality, I received feedback that this VPU GPC dependency is incorrect and is up to VPU blk-ctrl to control the GPC domains.
You find it here: https://lore.kernel.org/all/fcd6acc268b8642371cf289149b2b1c3e90c7f45.camel@p...
Regards, Vitor Soares
As we disable the VPU blk-ctrl node on the bootloader, removing the dependency solves the issue.
Regards, Vitor Soares
Regards, Peng.
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 3 --- 1 file changed, 3 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi index b92abb5a5c53..12548336b736 100644 --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi @@ -882,21 +882,18 @@ pgc_vpumix: power-domain@19 {
pgc_vpu_g1: power- domain@20 { #power-domain- cells = <0>; - power-domains = <&pgc_vpumix>; reg = <IMX8MP_POWER_DOMAIN_VPU_G1>; clocks = <&clk IMX8MP_CLK_VPU_G1_ROOT>; };
pgc_vpu_g2: power- domain@21 { #power-domain- cells = <0>; - power-domains = <&pgc_vpumix>; reg = <IMX8MP_POWER_DOMAIN_VPU_G2>; clocks = <&clk IMX8MP_CLK_VPU_G2_ROOT>; };
pgc_vpu_vc8000e: power- domain@22 { #power-domain- cells = <0>; - power-domains = <&pgc_vpumix>; reg = <IMX8MP_POWER_DOMAIN_VPU_VC8000E>; clocks = <&clk IMX8MP_CLK_VPU_VC8KE_ROOT>; }; -- 2.34.1