[PATCH v1] arm64: dts: imx8mp: Fix VPU PGC power-domain parents

Peng Fan peng.fan at nxp.com
Mon Jul 1 16:59:32 PDT 2024


> Subject: [PATCH v1] arm64: dts: imx8mp: Fix VPU PGC power-domain
> parents
> 
> From: Vitor Soares <vitor.soares at 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 at vger.kernel.org>
> Fixes: df680992dd62 ("arm64: dts: imx8mp: add vpu pgc nodes")
> Link:
> Suggested-by: Lucas Stach <l.stach at pengutronix.de>
> Signed-off-by: Vitor Soares <vitor.soares at toradex.com>

For VPU-Less 8MP, all the VPU PGC nodes should be dropped,
right?

Why not use bootloader to update the device tree based on fuse
settings?

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 at 19 {
> 
>  					pgc_vpu_g1: power-
> domain at 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 at 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 at 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




More information about the linux-arm-kernel mailing list