[PATCHv3 00/12] arm/arm64: Unify PSCI client support
Mark Rutland
mark.rutland at arm.com
Tue May 26 06:52:18 PDT 2015
This series unifies the 32-bit and 64-bit PSCI client code, moving the bulk of
the FW invocation and probing out to a common location in drivers/firmware.
As part of this, the remaining edge cases for PSCI 0.2 (Trusted OSs rejecting
CPU_OFF) are accounted for, making both 32-bit adn 64-bit clients more robust.
This results in a reasonable saving in terms of lines of code, and will allow
for PSCI 1.0 support to be unified form the beginning, avoiding further
duplication.
The series is based on the arm64 for-next/cpu-init branch [3] due to conflicts
with that series.
Since v1 [1]:
* Fix build when PSCI isn't selected
* Don't indirect migrate_info_up_cpu
* Fix ver to u32 in psci_get_version
Since v2: [2]:
* Rebase atop of Lorenzo's cpu init cleanup series [3]
* Use the correct native function IDs
* Fix cpu_disable return values
* Report invalid MIGRATE_INFO_UP_CPU return values
Many thanks to those who have reviewed and tested so far! Unfortunately, due to
the volume of changes in the rebase I've dropped all Tested-by tags. I've
locally tested 32-bit and 64-bit kernels with DT.
Russell, are you happy with the penultimate patch? If so, would you be happy for
that to go via arm-soc (which I guess should take the series)?
Thanks,
Mark.
[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-May/341770.html
[2] http://lists.infradead.org/pipermail/linux-arm-kernel/2015-May/344309.html
[3] git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/cpu-init
Mark Rutland (12):
arm/arm64: kvm: add missing PSCI include
arm64: smp_plat: add get_logical_index
arm64: smp: consistently use error codes
arm64: psci: remove unnecessary id indirection
arm64: psci: support unsigned return values
arm64: psci: account for Trusted OS instances
arm64: psci: kill psci_power_state
arm64: psci: remove ACPI coupling
arm64: psci: factor invocation code to drivers
drivers: psci: support native SMC{32,64} calls
ARM: migrate to common PSCI client code
MAINTAINERS: add PSCI entry
MAINTAINERS | 9 +
arch/arm/Kconfig | 1 +
arch/arm/include/asm/psci.h | 23 --
arch/arm/kernel/Makefile | 2 +-
arch/arm/kernel/psci.c | 299 -------------------
arch/arm/kernel/psci_smp.c | 29 +-
arch/arm/kernel/setup.c | 3 +-
arch/arm/kvm/psci.c | 2 +
arch/arm/mach-highbank/highbank.c | 2 +-
arch/arm/mach-highbank/pm.c | 8 +-
arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/acpi.h | 17 +-
arch/arm64/include/asm/psci.h | 20 --
arch/arm64/include/asm/smp_plat.h | 16 +
arch/arm64/kernel/acpi.c | 11 +
arch/arm64/kernel/psci.c | 398 ++-----------------------
arch/arm64/kernel/setup.c | 2 +-
arch/arm64/kernel/smp.c | 10 +-
drivers/cpuidle/cpuidle-calxeda.c | 7 +-
drivers/firmware/Kconfig | 3 +
drivers/firmware/Makefile | 1 +
drivers/firmware/psci.c | 383 ++++++++++++++++++++++++
{arch/arm/include/asm => include/linux}/psci.h | 40 +--
23 files changed, 523 insertions(+), 764 deletions(-)
delete mode 100644 arch/arm/kernel/psci.c
delete mode 100644 arch/arm64/include/asm/psci.h
create mode 100644 drivers/firmware/psci.c
copy {arch/arm/include/asm => include/linux}/psci.h (55%)
--
1.9.1
More information about the linux-arm-kernel
mailing list