[PATCH RESEND] ARM: npcm: Add CPU hotplug callbacks for kexec support

From: william
Date: Wed Nov 01 2023 - 20:53:28 EST


From: Brian Ma <chma0@xxxxxxxxxxx>

Add callbacks required for kexec to function. The NPCM7xx/NPCN8xx does
not expose controls for powering down CPU cores, so just wait in idle
loop.

Signed-off-by: Brian Ma <chma0@xxxxxxxxxxx>
Signed-off-by: William A. Kennington III <william@xxxxxxxxxxxxxxx>
---
arch/arm/mach-npcm/platsmp.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

diff --git a/arch/arm/mach-npcm/platsmp.c b/arch/arm/mach-npcm/platsmp.c
index 41891d3aa124..6cc7b5894f08 100644
--- a/arch/arm/mach-npcm/platsmp.c
+++ b/arch/arm/mach-npcm/platsmp.c
@@ -69,10 +69,27 @@ static void __init npcm7xx_smp_prepare_cpus(unsigned int max_cpus)

iounmap(scu_base);
}
+#ifdef CONFIG_HOTPLUG_CPU
+static void npcm7xx_cpu_die(unsigned int cpu)
+{
+ while (1)
+ cpu_do_idle();
+}
+
+static int npcm7xx_cpu_kill(unsigned int l_cpu)
+{
+ return 1;
+}
+#endif
+

static struct smp_operations npcm7xx_smp_ops __initdata = {
.smp_prepare_cpus = npcm7xx_smp_prepare_cpus,
.smp_boot_secondary = npcm7xx_smp_boot_secondary,
+#ifdef CONFIG_HOTPLUG_CPU
+ .cpu_die = npcm7xx_cpu_die,
+ .cpu_kill = npcm7xx_cpu_kill,
+#endif
};

CPU_METHOD_OF_DECLARE(npcm7xx_smp, "nuvoton,npcm750-smp", &npcm7xx_smp_ops);
--
2.42.0.820.g83a721a137-goog