]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
sunxi: psci: Fix sunxi_power_switch on sun8i-r40 platform
authorqianfan Zhao <qianfanguijin@163.com>
Sat, 14 May 2022 03:19:23 +0000 (11:19 +0800)
committerAndre Przywara <andre.przywara@arm.com>
Sun, 26 Jun 2022 10:22:54 +0000 (11:22 +0100)
linux system will die if we offline one of the cpu on R40 based board:
eg: echo 0 > /sys/devices/system/cpu/cpu3/online

The reason is that the R40 version of sunxi_cpu_set_power always passes
0 for the CPU number, so we turn off CPU0, regardless of what CPU the
CPU_OFF request came for.

Fix this by passing the proper CPU number, as there are proper power
clamp registers for every of the four cores.

Signed-off-by: qianfan Zhao <qianfanguijin@163.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
arch/arm/cpu/armv7/sunxi/psci.c

index d1bd6b9be41c0b6b3ac5805a24025a4994b461e9..e1d3638b5ca12c234ae511b97b0d032c066d0bc3 100644 (file)
@@ -153,7 +153,7 @@ static void __secure sunxi_cpu_set_power(int cpu, bool on)
 
        sunxi_power_switch((void *)cpucfg + SUN8I_R40_PWR_CLAMP(cpu),
                           (void *)cpucfg + SUN8I_R40_PWROFF,
-                          on, 0);
+                          on, cpu);
 }
 #else /* ! CONFIG_MACH_SUN7I && ! CONFIG_MACH_SUN8I_R40 */
 static void __secure sunxi_cpu_set_power(int cpu, bool on)