diff options
author | Magnus Damm <damm+renesas@opensource.se> | 2014-06-06 16:20:18 +0900 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2014-06-26 15:51:51 +0900 |
commit | 784500be40a0eabcee1e48c70927aea9c9accb1e (patch) | |
tree | 38a4df1ebe1b86db8566f15c522f2a9868a56f54 /arch/arm/mach-shmobile/platsmp-apmu.c | |
parent | 8b438bcb9009609a15e5480ab1947acff6fb9005 (diff) | |
download | lwn-784500be40a0eabcee1e48c70927aea9c9accb1e.tar.gz lwn-784500be40a0eabcee1e48c70927aea9c9accb1e.zip |
ARM: shmobile: Adjust APMU code to build for non-SMP
Adjust the APMU code to allow build when CONFIG_SMP=n.
Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'arch/arm/mach-shmobile/platsmp-apmu.c')
-rw-r--r-- | arch/arm/mach-shmobile/platsmp-apmu.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c index 590e35c22a60..ce07eb9f5cd5 100644 --- a/arch/arm/mach-shmobile/platsmp-apmu.c +++ b/arch/arm/mach-shmobile/platsmp-apmu.c @@ -15,6 +15,7 @@ #include <linux/of_address.h> #include <linux/smp.h> #include <linux/suspend.h> +#include <linux/threads.h> #include <asm/cacheflush.h> #include <asm/cp15.h> #include <asm/proc-fns.h> @@ -25,13 +26,13 @@ static struct { void __iomem *iomem; int bit; -} apmu_cpus[CONFIG_NR_CPUS]; +} apmu_cpus[NR_CPUS]; #define WUPCR_OFFS 0x10 #define PSTR_OFFS 0x40 #define CPUNCR_OFFS(n) (0x100 + (0x10 * (n))) -static int apmu_power_on(void __iomem *p, int bit) +static int __maybe_unused apmu_power_on(void __iomem *p, int bit) { /* request power on */ writel_relaxed(BIT(bit), p + WUPCR_OFFS); @@ -50,7 +51,7 @@ static int apmu_power_off(void __iomem *p, int bit) return 0; } -static int apmu_power_off_poll(void __iomem *p, int bit) +static int __maybe_unused apmu_power_off_poll(void __iomem *p, int bit) { int k; @@ -73,7 +74,7 @@ static int apmu_wrap(int cpu, int (*fn)(void __iomem *p, int cpu)) static void apmu_init_cpu(struct resource *res, int cpu, int bit) { - if (apmu_cpus[cpu].iomem) + if ((cpu >= ARRAY_SIZE(apmu_cpus)) || apmu_cpus[cpu].iomem) return; apmu_cpus[cpu].iomem = ioremap_nocache(res->start, resource_size(res)); @@ -137,6 +138,7 @@ void __init shmobile_smp_apmu_prepare_cpus(unsigned int max_cpus) apmu_parse_cfg(apmu_init_cpu); } +#ifdef CONFIG_SMP int shmobile_smp_apmu_boot_secondary(unsigned int cpu, struct task_struct *idle) { /* For this particular CPU register boot vector */ @@ -144,6 +146,7 @@ int shmobile_smp_apmu_boot_secondary(unsigned int cpu, struct task_struct *idle) return apmu_wrap(cpu, apmu_power_on); } +#endif #if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_SUSPEND) /* nicked from arch/arm/mach-exynos/hotplug.c */ |