linux-stable/arch/arm/mach-exynos
Russell King 6213f70e7c ARM: smp: remove arch-provided "pen_release"
Consolidating the "pen_release" stuff amongst the various SoC
implementations gives credence to having a CPU holding pen for
secondary CPUs.  However, this is far from the truth.

Many SoC implementations cargo-cult copied various bits of the pen
release implementation from the initial Realview/Versatile Express
implementation without understanding what it was or why it existed.
The reason it existed is because these are _development_ platforms,
and some board firmware is unable to individually control the
startup of secondary CPUs.  Moreover, they do not have a way to
power down or reset secondary CPUs for hot-unplug.  Hence, the
pen_release implementation was designed for ARM Ltd's development
platforms to provide a working implementation, even though it is
very far from what is required.

It was decided a while back to reduce the duplication by consolidating
the "pen_release" variable, but this only made the situation worse -
we have ended up with several implementations that read this variable
but do not write it - again, showing the cargo-cult mentality at work,
lack of proper review of new code, and in some cases a lack of testing.

While it would be preferable to remove pen_release entirely from the
kernel, this is not possible without help from the SoC maintainers,
which seems to be lacking.  However, I want to remove pen_release from
arch code to remove the credence that having it gives.

This patch removes pen_release from the arch code entirely, adding
private per-SoC definitions for it instead, and explicitly stating
that write_pen_release() is cargo-cult copied and should not be
copied any further.  Rename write_pen_release() in a similar fashion
as well.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 22:05:23 +00:00
..
include/mach ARM: exynos: Remove static mapping of SCU SFR 2018-05-13 14:06:55 +02:00
common.h ARM: exynos: Remove legacy setting of external wakeup interrupts 2018-11-12 21:20:03 +01:00
exynos-smc.S ARM: EXYNOS: Add SPDX license identifiers 2018-01-03 18:36:22 +01:00
exynos.c ARM: exynos: Remove outdated maintainer information 2018-07-24 18:50:46 +02:00
firmware.c ARM: exynos: Fix imprecise abort during Exynos5422 suspend to RAM 2018-08-30 19:46:06 +02:00
headsmp.S ARM: smp: remove arch-provided "pen_release" 2019-02-01 22:05:23 +00:00
Kconfig ARM: exynos: no need to select ARCH_HAS_BANDGAP any longer 2018-05-03 18:19:59 +02:00
Makefile ARM: EXYNOS: Add SPDX license identifiers 2018-01-03 18:36:22 +01:00
mcpm-exynos.c ARM: EXYNOS: Add SPDX license identifiers 2018-01-03 18:36:22 +01:00
platsmp.c ARM: smp: remove arch-provided "pen_release" 2019-02-01 22:05:23 +00:00
pm.c ARM: exynos: Remove static mapping of SCU SFR 2018-05-13 14:06:55 +02:00
sleep.S ARM: EXYNOS: Add SPDX license identifiers 2018-01-03 18:36:22 +01:00
smc.h ARM: EXYNOS: Add SPDX license identifiers 2018-01-03 18:36:22 +01:00
suspend.c ARM: samsung: Limit SAMSUNG_PM_DEBUG config option to non-Exynos platforms 2018-11-18 15:11:27 +01:00