OpenCloudOS-Kernel/arch/arm/mach-prima2
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
..
Kconfig ARM: prima2: remove redundant select CPU_V7 2017-06-18 19:13:47 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
common.c ARM: sirf: mark sirfsoc_init_late as __maybe_unused 2017-07-27 22:57:44 +02:00
common.h ARM: smp: remove arch-provided "pen_release" 2019-02-01 22:05:23 +00:00
headsmp.S ARM: smp: remove arch-provided "pen_release" 2019-02-01 22:05:23 +00:00
hotplug.c ARM: smp: remove arch-provided "pen_release" 2019-02-01 22:05:23 +00:00
platsmp.c ARM: smp: remove arch-provided "pen_release" 2019-02-01 22:05:23 +00:00
pm.c ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol 2017-02-28 11:06:10 +00:00
pm.h ARM: CSR: PM: add sleep entry for SiRFprimaII 2011-09-21 23:25:59 +08:00
rstc.c ARM: sirf: drop Marco support in reset controller module 2015-01-20 19:56:40 +08:00
rtciobrg.c ARM: prima2: move to use REGMAP APIs for rtciobrg 2015-06-10 15:10:26 +08:00
sleep.S ARM: CSR: PM: add sleep entry for SiRFprimaII 2011-09-21 23:25:59 +08:00