Skip to content

Enabling PSCI based idle on ARM 32-bit platforms

Daniel Lezcano linux-arm-kernel linux-pm 2 versions New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest posting 2/20 of 2 patches 0 repliesNew
  2. v2 posting 1/20 of 2 patches 0 repliesSuperseded

Patches in v2 posting 2/2 No applies recorded yet

None of the 2 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCH v2 0/2] Enabling PSCI based idle on ARM 32-bit platforms
Quoted 8 lines · Lorenzo Pieralisi

Hi Daniel,

Quoted 4 lines · Daniel Lezcano

Hi Lorenzo,

I would like to take this patch through my tree but it does not apply.

Quoted 8 lines

That's because as I mentioned in the cover letter the series is built on top of:

git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git tags/firmware/psci-1.0

Hopefully this tag will soon get pulled in arm-soc, I will respin a v3 anyway to add tags and fold psci_cpuops.c in psci.c, how do you want to merge this then ?

May be you can create a branch with your modifications to be shared with arm-soc and me ?

Quoted 74 lines
Quoted 74 lines

Mind to refresh it against linux-pm or v4.3-rc5 ?

-- Daniel

Quoted 57 lines · Lorenzo Pieralisi

This patch series is v2 of a previous posting:

http://lists.infradead.org/pipermail/linux-arm-kernel/2015-October/373756.html

v1->v2:

- Refactored patch 1 to remove cpu parameter from cpuidle_ops suspend hook
- Refactored psci_cpu_init_idle to stub out dt parsing function and make it usable on both ARM/ARM64 with no additional changes
- Updated ARM cpuidle_ops to new interfaces
- Fixed PSCI enable method string in ARM cpuidle_ops struct

PSCI firmware provides a kernel API that, through a standard interface, allows to manage power states transitions in a seamless manner for ARM and ARM64 systems.

Current PSCI code that initializes CPUidle states on PSCI based systems lives in arch/arm64 directory but it is not ARM64 specific and can be shared with ARM 32-bit systems so that the generic ARM CPUidle driver can leverage the common PSCI interface.

This patch series moves PSCI CPUidle management code to drivers/firmware directory so that ARM and ARM64 architecture can actually share the code.

It is made up of two patches:

Patch 1 refactors ARM 32-bit generic idle implementation to remove the cpu parameter from the cpuidle_ops suspend hook, in preparation for a common PSCI implementation for ARM/ARM64 PSCI idle.

Patch 2 moves ARM64 PSCI CPUidle functions implementation to drivers/firmware so that it can be shared with ARM 32-bit platforms code. This patch also adds a PSCI entry section on ARM 32-bit systems so that the PSCI CPUidle back-end can be enabled when the enable-method corresponds to PSCI.

Patches apply on top of current patch stack to enable PSCI 1.0:

git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git tags/firmware/psci-1.0

Tested on Juno board (ARM64), compile tested only on ARM 32-bit systems.

Lorenzo Pieralisi (2):
ARM: cpuidle: remove cpu parameter from the cpuidle_ops suspend hook
ARM64: kernel: PSCI: move PSCI idle management code to
drivers/firmware

  arch/arm/include/asm/cpuidle.h |   2 +-
  arch/arm/kernel/cpuidle.c      |   2 +-
  arch/arm64/kernel/psci.c       |  99 +-----------------------------
  drivers/firmware/Makefile      |   2 +-
  drivers/firmware/psci_cpuops.c | 133 +++++++++++++++++++++++++++++++++++++++++
  drivers/soc/qcom/spm.c         |  10 ++--
  include/linux/psci.h           |   3 +
  7 files changed, 146 insertions(+), 105 deletions(-)
Quoted 2 lines

create mode 100644 drivers/firmware/psci_cpuops.c

--
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

Signature · 5 lines
  <http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog