From: qianfan Zhao Date: Sat, 14 May 2022 03:19:23 +0000 (+0800) Subject: sunxi: psci: Fix sunxi_power_switch on sun8i-r40 platform X-Git-Url: http://git.dujemihanovic.xyz/img/%7B%7B%20.RelPermalink%20%7D%7D?a=commitdiff_plain;h=47ca7b574faaa514677457e23a7197c47b0b597c;p=u-boot.git sunxi: psci: Fix sunxi_power_switch on sun8i-r40 platform 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 Signed-off-by: Andre Przywara --- diff --git a/arch/arm/cpu/armv7/sunxi/psci.c b/arch/arm/cpu/armv7/sunxi/psci.c index d1bd6b9be4..e1d3638b5c 100644 --- a/arch/arm/cpu/armv7/sunxi/psci.c +++ b/arch/arm/cpu/armv7/sunxi/psci.c @@ -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)