linux/arch/arm
Linus Walleij 3131d970f0 ARM: ux500: resume the second core properly
The pen hold/release scheme was copied over to Ux500 from the ARM
reference designs like most of these at the time. It is not needed
at all, and was mostly removed in commit c00def71ef
"ARM: ux500: simplify secondary CPU boot".

However on the suspend/resume path and hot plug/unplug of CPUs,
the .cpu_die() callback was still waiting for the pen to be
released which made it spin forever and the second core never come
back online after suspend/resume.

Fix this by simply replacing the strange custom .cpu_die() with
a oneline wfi() just like e.g. the qcom platform does. This fixes
the issue and makes the second core come up properly after
suspend/resume.

As a side effect, this rids us of the completely surplus local
setup.h and hotplug.c files, and we just compile this into platsmp.c
with everything else SMP.

Cc: stable@vger.kernel.org
Fixes: c00def71ef ("ARM: ux500: simplify secondary CPU boot")
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2017-03-02 17:53:17 +01:00
..
boot ARM: DT updates for v4.11 2017-02-23 15:46:25 -08:00
common Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
configs ARM: SoC defconfig updates for v4.11 2017-02-23 15:39:32 -08:00
crypto crypto: arm/aes - don't use IV buffer to return final keystream block 2017-02-03 18:16:21 +08:00
firmware
include 4.11 is going to be a relatively large release for KVM, with a little over 2017-02-22 18:22:53 -08:00
kernel arm64 updates for 4.11: 2017-02-22 10:46:44 -08:00
kvm KVM: race-free exit from KVM_RUN without POSIX signals 2017-02-17 12:27:37 +01:00
lib ARM: 8658/1: uaccess: fix zeroing of 64-bit get_user() 2017-02-16 15:58:32 +00:00
mach-alpine
mach-artpec ARM: ARTPEC-6: add select MFD_SYSCON to MACH_ARTPEC6 2016-11-26 00:06:34 +01:00
mach-asm9260
mach-aspeed ARM: aspeed: Select pinctrl drivers 2017-01-10 22:36:06 +11:00
mach-at91 ARM: at91: pm: remove useless extern definition 2017-01-11 13:21:24 +01:00
mach-axxia
mach-bcm ARM: BCM5301X: Add back handler ignoring external imprecise aborts 2016-11-16 12:39:05 -08:00
mach-berlin
mach-clps711x
mach-cns3xxx
mach-davinci ARM: SoC platform updates 2017-02-23 15:33:54 -08:00
mach-digicolor
mach-dove
mach-ebsa110
mach-efm32
mach-ep93xx ARM: SoC platform updates 2017-02-23 15:33:54 -08:00
mach-exynos ARM: SoC driver updates 2017-02-23 15:57:04 -08:00
mach-footbridge clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
mach-gemini
mach-highbank
mach-hisi arm: hisi: drop extern hip01_cpu_die 2017-01-20 16:39:57 +00:00
mach-imx ARM: SoC platform updates 2017-02-23 15:33:54 -08:00
mach-integrator ARM: SoC platform updates for v4.10 2016-12-15 15:39:02 -08:00
mach-iop13xx Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
mach-iop32x
mach-iop33x
mach-ixp4xx clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
mach-keystone ARM: Keystone: Enable ARCH_HAS_RESET_CONTROLLER 2017-01-19 09:36:08 -08:00
mach-ks8695
mach-lpc18xx
mach-lpc32xx ARM: SoC platform updates for v4.10 2016-12-15 15:39:02 -08:00
mach-mediatek ARM: mediatek: clean up mach-mediatek/Makefile 2016-10-31 15:26:23 -06:00
mach-meson
mach-mmp clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
mach-moxart
mach-mv78xx0 ARM: mv78xx0: fix possible PCI buffer overflow 2017-01-27 17:52:57 +01:00
mach-mvebu arm: mvebu: support for SMP on 98DX3336 SoC 2017-01-30 14:40:56 +01:00
mach-mxs
mach-netx
mach-nomadik
mach-nspire
mach-omap1 ARM: SoC platform updates 2017-02-23 15:33:54 -08:00
mach-omap2 ARM: SoC platform updates 2017-02-23 15:33:54 -08:00
mach-orion5x ARM: orion: remove unused wnr854t_switch_plat_data 2017-02-09 16:59:57 -05:00
mach-oxnas ARM: oxnas: Add OX820 config and makefile entry 2016-11-23 09:53:55 +01:00
mach-picoxcell
mach-prima2
mach-pxa ARM: SoC platform updates 2017-02-23 15:33:54 -08:00
mach-qcom
mach-realview
mach-rockchip ARM: rockchip: drop rk3288 jtag/mmc switch handling 2017-01-06 10:29:16 +01:00
mach-rpc Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
mach-s3c24xx Samsung mach/soc update for v4.11. Mostly cleanups: 2017-01-16 22:28:56 -08:00
mach-s3c64xx ARM: SoC platform updates 2017-02-23 15:33:54 -08:00
mach-s5pv210 pinctrl: samsung: Move retention control from mach-s5pv210 to the pinctrl driver 2017-01-26 16:57:03 +01:00
mach-sa1100 Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2016-12-15 16:06:15 -08:00
mach-shmobile ARM: SoC platform updates 2017-02-23 15:33:54 -08:00
mach-socfpga ARM: socfpga: fix spelling mistake in error message 2016-11-15 08:52:17 -06:00
mach-spear ARM: spear: Fix error handling 2016-11-07 19:19:35 -08:00
mach-sti
mach-stm32 ARM: mach-stm32: Add a new SOC - STM32F746 2016-11-15 12:02:33 +01:00
mach-sunxi arm: sunxi: add support for V3s SoC 2017-01-20 21:31:34 +01:00
mach-tango
mach-tegra ARM: tegra: paz00: Fix __initdata placement 2017-01-25 09:09:32 +01:00
mach-u300
mach-uniphier
mach-ux500 ARM: ux500: resume the second core properly 2017-03-02 17:53:17 +01:00
mach-versatile
mach-vexpress
mach-vt8500
mach-w90x900
mach-zx ARM: zx: Fix error handling 2016-11-07 19:19:35 -08:00
mach-zynq ARM: zynq: Reserve correct amount of non-DMA RAM 2016-11-14 16:07:58 +01:00
mm This renames the (now inaccurate) CONFIG_DEBUG_RODATA and related config 2017-02-21 17:56:45 -08:00
net
nwfpe
oprofile
plat-iop clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
plat-omap ARM: OMAP2+: Remove legacy mux code 2016-11-10 12:42:49 -07:00
plat-orion ARM: orion: Register DSA switch as a MDIO device 2017-02-07 10:51:47 -05:00
plat-pxa
plat-samsung ARM: SAMSUNG: Constify array of wake irqs passed to samsung_sync_wakemask 2016-12-29 15:40:51 +02:00
plat-versatile
probes
tools Merge branch 'syscalls' into for-linus 2016-12-14 11:14:00 +00:00
vdso
vfp cpu/hotplug: Cleanup state names 2016-12-25 10:47:44 +01:00
xen xen/privcmd: Add IOCTL_PRIVCMD_DM_OP 2017-02-14 15:13:43 -05:00
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-02-22 10:15:09 -08:00
Kconfig-nommu
Kconfig.debug arch: Move CONFIG_DEBUG_RODATA and CONFIG_SET_MODULE_RONX to be common 2017-02-07 12:32:52 -08:00
Makefile Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm 2016-12-15 16:06:15 -08:00