From mboxrd@z Thu Jan 1 00:00:00 1970 From: jszhang@marvell.com (Jisheng Zhang) Date: Tue, 13 Oct 2015 19:34:13 +0800 Subject: [PATCH v2 0/2] Enabling PSCI based idle on ARM 32-bit platforms In-Reply-To: <1444648628-24790-1-git-send-email-lorenzo.pieralisi@arm.com> References: <1444648628-24790-1-git-send-email-lorenzo.pieralisi@arm.com> Message-ID: <20151013193413.2e62bff9@xhacker> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Dear Lorenzo, On Mon, 12 Oct 2015 12:17:06 +0100 Lorenzo Pieralisi 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 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 >