linux/arch/arm/mach-shmobile
Stephen Boyd 787047eea2 ARM: 8392/3: smp: Only expose /sys/.../cpuX/online if hotpluggable
Writes to /sys/.../cpuX/online fail if we determine the platform
doesn't support hotplug for that CPU. Furthermore, if the cpu_die
op isn't specified the system hangs when we try to offline a CPU
and it comes right back online unexpectedly. Let's figure this
stuff out before we make the sysfs nodes so that the online file
doesn't even exist if it isn't (at least sometimes) possible to
hotplug the CPU.

Add a new 'cpu_can_disable' op and repoint all 'cpu_disable'
implementations at it because all implementers use the op to
indicate if a CPU can be hotplugged or not in a static fashion.
With PSCI we may need to add a 'cpu_disable' op so that the
secure OS can be migrated off the CPU we're trying to hotplug.
In this case, the 'cpu_can_disable' op will indicate that all
CPUs are hotpluggable by returning true, but the 'cpu_disable' op
will make a PSCI migration call and occasionally fail, denying
the hotplug of a CPU. This shouldn't be any worse than x86 where
we may indicate that all CPUs are hotpluggable but occasionally
we can't offline a CPU due to check_irq_vectors_for_cpu_disable()
failing to find a CPU to move vectors to.

Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Nicolas Pitre <nico@linaro.org>
Cc: Dave Martin <Dave.Martin@arm.com>
Acked-by: Simon Horman <horms@verge.net.au> [shmobile portion]
Tested-by: Simon Horman <horms@verge.net.au>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: <linux-sh@vger.kernel.org>
Tested-by: Tyler Baker <tyler.baker@linaro.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2015-07-31 18:58:30 +01:00
..
include/mach Renesas ARM Based SoC sh73a0 Multiplatform Updates for v4.1 2015-04-01 16:37:30 -07:00
board-armadillo800eva.c Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2015-04-24 09:49:37 -07:00
board-bockw-reference.c ARM: shmobile: r8a7778: implement SoC and board CCF support 2015-02-24 06:40:46 +09:00
board-bockw.c mmc: sh_mobile_sdhi: remove sh_mobile_sdhi_info 2015-03-05 21:54:26 +05:30
board-kzm9g.c mmc: sh_mobile_sdhi: remove sh_mobile_sdhi_info 2015-03-05 21:54:26 +05:30
board-marzen-reference.c Second Round of Renesas ARM Based SoC Boards Cleanups for v3.19 2014-11-19 22:29:59 +01:00
board-marzen.c mmc: sh_mobile_sdhi: remove sh_mobile_sdhi_info 2015-03-05 21:54:26 +05:30
clock-r8a7740.c ARM: SoC cleanups for 3.19 2014-12-09 14:18:35 -08:00
clock-r8a7778.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
clock-r8a7779.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
clock-sh73a0.c ARM: shmobile: sh73a0 legacy/reference: Add missing INTCA0 clock for irqpin module 2014-12-21 17:11:18 +09:00
clock.c ARM: shmobile: Remove mach/clkdev.h 2015-02-24 07:12:15 +09:00
clock.h ARM: shmobile: Remove shmobile_clk_workaround() implementation 2014-10-30 10:14:57 +09:00
common.h ARM: 8392/3: smp: Only expose /sys/.../cpuX/online if hotpluggable 2015-07-31 18:58:30 +01:00
console.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
cpufreq.c cpufreq: cpu0: rename driver and internals to 'cpufreq_dt' 2014-10-03 15:37:54 +02:00
dma-register.h ARM: shmobile: dma: Use defines instead of hardcoded numbers 2014-08-20 09:09:23 +09:00
headsmp-scu.S ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
headsmp.S ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
intc-sh73a0.c ARM: shmobile: remove use of gic_arch_extn.irq_set_wake 2015-03-15 01:28:09 +00:00
intc.h ARM: shmobile: Move legacy INTC definitions from irqs.h to intc.h 2014-08-22 12:23:32 +09:00
irqs.h ARM: shmobile: Move legacy INTC definitions from irqs.h to intc.h 2014-08-22 12:23:32 +09:00
Kconfig ARM: shmobile: only select sound drivers that build 2015-05-25 10:36:01 +09:00
Makefile ARM: SoC multiplatform code changes for v4.1 2015-04-22 09:20:15 -07:00
Makefile.boot Renesas ARM Based SoC sh73a0 Multiplatform Updates for v4.1 2015-04-01 16:37:30 -07:00
platsmp-apmu.c ARM: v7 setup function should invalidate L1 cache 2015-06-01 11:30:26 +01:00
platsmp-apmu.h ARM: shmobile: Separate APMU resource data into CPU dependant part 2014-11-04 09:31:23 +09:00
platsmp-scu.c
platsmp.c ARM: 8392/3: smp: Only expose /sys/.../cpuX/online if hotpluggable 2015-07-31 18:58:30 +01:00
pm-r8a7740.c ARM: shmobile: R-Mobile: Store SYSC base address in rmobile_pm_domain 2015-01-13 09:33:19 +09:00
pm-r8a7779.c ARM: shmobile: Convert to genpd flags for PM clocks for r8a7779 2014-12-04 00:44:44 +01:00
pm-rcar-gen2.c ARM: shmobile: Consolidate the pm code for R-Car Gen2 2015-03-17 08:05:13 +09:00
pm-rcar.c ARM: shmobile: Cleanup pm-rcar.o build using Kconfig 2014-09-02 09:32:05 +09:00
pm-rcar.h
pm-rmobile.c ARM: shmobile: R-Mobile: Special-case PM domains with memory-controllers 2015-01-16 11:02:42 +09:00
pm-rmobile.h ARM: shmobile: R-Mobile: Add DT support for PM domains 2015-01-15 08:38:14 +09:00
pm-sh73a0.c
r8a7740.h ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
r8a7778.h Renesas ARM Based SoC Cleanup for v3.19 2014-11-04 14:43:02 -08:00
r8a7779.h ARM: shmobile: marzen-reference: Enable TMU0 in device tree 2014-08-17 09:00:56 +09:00
r8a7790.h ARM: shmobile: Consolidate the pm code for R-Car Gen2 2015-03-17 08:05:13 +09:00
r8a7791.h ARM: shmobile: Consolidate the pm code for R-Car Gen2 2015-03-17 08:05:13 +09:00
rcar-gen2.h ARM: shmobile: Consolidate the pm code for R-Car Gen2 2015-03-17 08:05:13 +09:00
regulator-quirk-rcar-gen2.c ARM: shmobile: R-Car Gen2: Add da9063/da9210 regulator quirk 2015-03-11 09:52:12 +09:00
setup-emev2.c ARM: make arrays containing machine compatible strings const 2015-02-19 09:44:17 +01:00
setup-r7s72100.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
setup-r8a73a4.c ARM: shmobile: r8a73a4: Remove legacy code 2015-02-25 16:14:02 +09:00
setup-r8a7740.c ARM: shmobile: r8a7740: remove I2C errata handling 2015-06-17 12:40:47 +02:00
setup-r8a7778.c ARM: shmobile: r8a7778: implement SoC and board CCF support 2015-02-24 06:40:46 +09:00
setup-r8a7779.c ARM: shmobile: remove use of gic_arch_extn.irq_set_wake 2015-03-15 01:28:09 +00:00
setup-r8a7790.c ARM: shmobile: r8a7790: Remove legacy code 2014-12-21 17:03:50 +09:00
setup-r8a7791.c ARM: shmobile: r8a7791: Remove legacy code 2014-10-30 10:14:57 +09:00
setup-r8a7794.c ARM: shmobile: r8a7794: Reserve memory as other R-Car Gen2 SoCs 2014-09-16 15:01:58 +09:00
setup-rcar-gen2.c ARM: SoC platform updates for v4.1 2015-04-22 09:08:39 -07:00
setup-sh73a0.c ARM: shmobile: sh73a0: Remove restart callback 2015-02-24 08:22:50 +09:00
sh73a0.h ARM: shmobile: sh73a0: Remove unused sh73a0_add_standard_devices_dt() 2015-02-24 08:22:49 +09:00
sh-gpio.h
smp-emev2.c ARM: shmobile: Remove FSF address from copyright headers 2014-10-27 09:48:07 +09:00
smp-r8a7779.c ARM: shmobile: r8a7779: Remove redundant cpu_disable implementation 2015-02-24 07:12:16 +09:00
smp-r8a7790.c ARM: 8392/3: smp: Only expose /sys/.../cpuX/online if hotpluggable 2015-07-31 18:58:30 +01:00
smp-r8a7791.c ARM: 8392/3: smp: Only expose /sys/.../cpuX/online if hotpluggable 2015-07-31 18:58:30 +01:00
smp-sh73a0.c ARM: 8392/3: smp: Only expose /sys/.../cpuX/online if hotpluggable 2015-07-31 18:58:30 +01:00
suspend.c
timer.c Third Round of Renesas ARM Based SoC Fixes for v3.19 2015-02-01 08:51:12 -08:00