[PATCH v1] ARM: rockchip: Add cpu hotplug support
Mark Rutland
mark.rutland at arm.com
Thu Jul 17 03:17:52 PDT 2014
On Wed, Jul 16, 2014 at 07:39:08PM +0100, Romain Perier wrote:
> Hi all,
>
> This patch adds support for cpu hotplug for rockchip SoCs. You can now
> use kexec with rockchip compatible devices.
> That's my first patch to the kernel, so perhaps that there are missing
> things (I am sorry if this is the case).
>
>
> Regards,
> Romain
>
> From 6727523766e3711ab58b2276d2e60bee0f7b7ba8 Mon Sep 17 00:00:00 2001
> From: Romain Perier <romain.perier at gmail.com>
> Date: Tue, 15 Jul 2014 19:38:05 +0000
> Subject: [PATCH] Add cpu hotplug support
This needs a message and sign-off. Please read
Documentation/SubmittingPatches.
Use scripts/get_maintainer.pl to find out who to Cc.
>
> ---
> arch/arm/mach-rockchip/platsmp.c | 33 ++++++++++++++++++++++++++++++++-
> 1 file changed, 32 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-rockchip/platsmp.c b/arch/arm/mach-rockchip/platsmp.c
> index 910835d..7cdcf5f 100644
> --- a/arch/arm/mach-rockchip/platsmp.c
> +++ b/arch/arm/mach-rockchip/platsmp.c
> @@ -21,6 +21,7 @@
> #include <linux/of_address.h>
>
> #include <asm/cacheflush.h>
> +#include <asm/cp15.h>
> #include <asm/smp_scu.h>
> #include <asm/smp_plat.h>
> #include <asm/mach/map.h>
> @@ -178,8 +179,38 @@ static void __init rockchip_smp_prepare_cpus(unsigned int max_cpus)
> pmu_set_power_domain(0 + i, false);
> }
>
> +#ifdef CONFIG_HOTPLUG_CPU
> +static DECLARE_COMPLETION(cpu_died);
> +
> +static int rockchip_cpu_kill(unsigned int cpu)
> +{
> + if (!wait_for_completion_timeout(&cpu_died, msecs_to_jiffies(1000))) {
> + pr_err("CPU%d: didn't die correctly\n", cpu);
> + return 0;
> + }
> + pmu_set_power_domain(0 + cpu, false);
> + return 1;
> +}
> +
> +
> +static void rockchip_cpu_die(unsigned int cpu)
> +{
> + complete(&cpu_died);
> + flush_cache_louis();
> +
> + v7_exit_coherency_flush(louis);
Two flushes?
> +
> + 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,
> + .smp_boot_secondary = rockchip_boot_secondary
> +#ifdef CONFIG_HOTPLUG_CPU
> + , .cpu_kill = rockchip_cpu_kill,
> + .cpu_die = rockchip_cpu_die
Just put commas on the end of all lines. It's perfectly valid to have a
trailing comma even when there are no other fields.
Thanks,
Mark.
More information about the linux-arm-kernel
mailing list