[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