From mboxrd@z Thu Jan 1 00:00:00 1970 From: heiko@sntech.de (Heiko =?ISO-8859-1?Q?St=FCbner?=) Date: Wed, 23 Jul 2014 02:45:16 +0200 Subject: [PATCH v2] ARM: rockchip: Add cpu hotplug support for RK3XXX SoCs In-Reply-To: <1405775006-950-1-git-send-email-romain.perier@gmail.com> References: <1405775006-950-1-git-send-email-romain.perier@gmail.com> Message-ID: <1757206.77MvIsS1hO@diego> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Am Samstag, 19. Juli 2014, 13:03:26 schrieb Romain Perier: > Adds ability to shutdown all CPUs except the first one > (since it might be special for a lot of platforms). > It is now possible to use kexec which requires such a feature. > > Signed-off-by: Romain Perier works like a charm :-) I've added it to my tree and will send it off in the next days. Heiko > --- > arch/arm/mach-rockchip/platsmp.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/arch/arm/mach-rockchip/platsmp.c > b/arch/arm/mach-rockchip/platsmp.c index 910835d..189684f 100644 > --- a/arch/arm/mach-rockchip/platsmp.c > +++ b/arch/arm/mach-rockchip/platsmp.c > @@ -21,6 +21,7 @@ > #include > > #include > +#include > #include > #include > #include > @@ -178,8 +179,27 @@ static void __init rockchip_smp_prepare_cpus(unsigned > int max_cpus) pmu_set_power_domain(0 + i, false); > } > > +#ifdef CONFIG_HOTPLUG_CPU > +static int rockchip_cpu_kill(unsigned int cpu) > +{ > + pmu_set_power_domain(0 + cpu, false); > + return 1; > +} > + > +static void rockchip_cpu_die(unsigned int cpu) > +{ > + v7_exit_coherency_flush(louis); > + while(1) > + cpu_do_idle(); > +} > +#endif > + > static struct smp_operations rockchip_smp_ops __initdata = { > .smp_prepare_cpus = rockchip_smp_prepare_cpus, > .smp_boot_secondary = rockchip_boot_secondary, > +#ifdef CONFIG_HOTPLUG_CPU > + .cpu_kill = rockchip_cpu_kill, > + .cpu_die = rockchip_cpu_die, > +#endif > }; > CPU_METHOD_OF_DECLARE(rk3066_smp, "rockchip,rk3066-smp", > &rockchip_smp_ops);