[PATCH v2 0/2] Enabling PSCI based idle on ARM 32-bit platforms
Jisheng Zhang
jszhang at marvell.com
Tue Oct 13 04:34:13 PDT 2015
Dear Lorenzo,
On Mon, 12 Oct 2015 12:17:06 +0100
Lorenzo Pieralisi <lorenzo.pieralisi at arm.com> wrote:
> 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
I did a simple test, it works ARM 32 PSCI system
So for this series except the qcom changes (I have no qcom platform), feel
free to add
Tested-by: Jisheng Zhang <jszhang at marvell.com>
I also could simple test v3 when it is out.
thanks a lot for these patches!
>
> 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(-)
> create mode 100644 drivers/firmware/psci_cpuops.c
>
More information about the linux-arm-kernel
mailing list