From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: "rjw@rjwysocki.net" <rjw@rjwysocki.net>,
"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Catalin Marinas <Catalin.Marinas@arm.com>,
"robherring2@gmail.com" <robherring2@gmail.com>,
"arnd@arndb.de" <arnd@arndb.de>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"lina.iyer@linaro.org" <lina.iyer@linaro.org>,
"sboyd@codeaurora.org" <sboyd@codeaurora.org>
Subject: Re: [PATCH V3 0/8] ARM: cpuidle: Unify the ARM64/ARM DT approach
Date: Mon, 23 Mar 2015 16:31:07 +0100 [thread overview]
Message-ID: <551031BB.4020200@linaro.org> (raw)
In-Reply-To: <20150323152737.GB18904@red-moon>
On 03/23/2015 04:27 PM, Lorenzo Pieralisi wrote:
> On Fri, Mar 20, 2015 at 11:43:53AM +0000, Daniel Lezcano wrote:
>> There is a big number of cpuidle drivers for the ARM architecture.
>>
>> These drivers have been cleaned up and grouped into the drivers/cpuidle
>> directory to keep track of the changes more easily and ensure the code
>> is following the same scheme across the drivers.
>>
>> That had the benefit of simplifying the code and factor out a lot of common
>> parts. Beside that, as the drivers belong to the 'drivers' directory, we had
>> to split the arch specific bits and the generic code in order to keep
>> everything self contained. The platform driver paradigm was used for this
>> purpose.
>>
>> Unfortunately, this approach is now no longer accepted and a different solution
>> must be provided to reach the same goal: one example is the Qualcomm cpuidle
>> driver upstreaming attempt.
>>
>> In the meantime, ARM64 developed a generic cpuidle driver based on DT definition.
>>
>> The DT definition provides an 'enable-method' to specify one of the cpu
>> operations (PSCI, ...).
>>
>> This patchset unify this driver with ARM32, using the same DT definition.
>>
>> Thanks with this patchset we can use the 'enable-method' to specify a cpu
>> operations, hence get rid of the platform driver approach and go further in the
>> cpuidle driver flexibility via the DT.
>
> Tested on arm64 Juno and FVP models.
Thanks Lorenzo for testing the patches.
I applied the series to my tree for 4.1.
-- Daniel
> Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
>
>>
>> Changelog:
>>
>> V3:
>> * Fixed unroll loop when failing to register the device
>> * Removed the per cpu cpuidle_device
>> * Remove goto statement in the registration path
>> * Fixed a compilation failure with allyesconfig on arm64
>>
>> V2:
>> * Used smp_operations style for cpuidle_ops
>> * Fixed some nits in the comments
>> * Added a patch to change the name of the functions
>> * Added per cpu device registration patch
>>
>> Daniel Lezcano (8):
>> ARM: cpuidle: Remove duplicate header inclusion
>> ARM: cpuidle: Add a cpuidle ops structure to be used for DT
>> ARM64: cpuidle: Replace cpu_suspend by the common ARM/ARM64 function
>> ARM64: cpuidle: Rename cpu_init_idle to a common function name
>> ARM64: cpuidle: Remove arm64 reference
>> ARM: cpuidle: Enable the ARM64 driver for both ARM32/ARM64
>> ARM: cpuidle: Register per cpuidle device
>> ARM: cpuidle: Change function name to be consistent with x86
>>
>> arch/arm/include/asm/cpuidle.h | 23 +++++++
>> arch/arm/kernel/cpuidle.c | 74 +++++++++++++++++++-
>> arch/arm/mach-davinci/cpuidle.c | 1 -
>> arch/arm/mach-imx/cpuidle-imx6q.c | 1 -
>> arch/arm/mach-imx/cpuidle-imx6sl.c | 1 -
>> arch/arm/mach-imx/cpuidle-imx6sx.c | 1 -
>> arch/arm/mach-omap2/cpuidle44xx.c | 1 -
>> arch/arm/mach-s3c64xx/cpuidle.c | 2 +-
>> arch/arm/mach-tegra/cpuidle-tegra20.c | 1 -
>> arch/arm/mach-tegra/cpuidle-tegra30.c | 1 -
>> arch/arm64/include/asm/cpuidle.h | 9 ++-
>> arch/arm64/kernel/cpuidle.c | 2 +-
>> drivers/cpuidle/Kconfig | 7 +-
>> drivers/cpuidle/Kconfig.arm | 12 +++-
>> drivers/cpuidle/Kconfig.arm64 | 13 ----
>> drivers/cpuidle/Makefile | 5 +-
>> drivers/cpuidle/{cpuidle-arm64.c => cpuidle-arm.c} | 80 ++++++++++++++++------
>> drivers/cpuidle/cpuidle-at91.c | 1 -
>> drivers/cpuidle/cpuidle-exynos.c | 1 -
>> drivers/cpuidle/cpuidle-kirkwood.c | 1 -
>> drivers/cpuidle/cpuidle-ux500.c | 1 -
>> drivers/cpuidle/cpuidle-zynq.c | 1 -
>> include/asm-generic/vmlinux.lds.h | 2 +
>> 23 files changed, 178 insertions(+), 63 deletions(-)
>> delete mode 100644 drivers/cpuidle/Kconfig.arm64
>> rename drivers/cpuidle/{cpuidle-arm64.c => cpuidle-arm.c} (57%)
>>
>> --
>> 1.9.1
>>
>>
--
<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
WARNING: multiple messages have this Message-ID (diff)
From: daniel.lezcano@linaro.org (Daniel Lezcano)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V3 0/8] ARM: cpuidle: Unify the ARM64/ARM DT approach
Date: Mon, 23 Mar 2015 16:31:07 +0100 [thread overview]
Message-ID: <551031BB.4020200@linaro.org> (raw)
In-Reply-To: <20150323152737.GB18904@red-moon>
On 03/23/2015 04:27 PM, Lorenzo Pieralisi wrote:
> On Fri, Mar 20, 2015 at 11:43:53AM +0000, Daniel Lezcano wrote:
>> There is a big number of cpuidle drivers for the ARM architecture.
>>
>> These drivers have been cleaned up and grouped into the drivers/cpuidle
>> directory to keep track of the changes more easily and ensure the code
>> is following the same scheme across the drivers.
>>
>> That had the benefit of simplifying the code and factor out a lot of common
>> parts. Beside that, as the drivers belong to the 'drivers' directory, we had
>> to split the arch specific bits and the generic code in order to keep
>> everything self contained. The platform driver paradigm was used for this
>> purpose.
>>
>> Unfortunately, this approach is now no longer accepted and a different solution
>> must be provided to reach the same goal: one example is the Qualcomm cpuidle
>> driver upstreaming attempt.
>>
>> In the meantime, ARM64 developed a generic cpuidle driver based on DT definition.
>>
>> The DT definition provides an 'enable-method' to specify one of the cpu
>> operations (PSCI, ...).
>>
>> This patchset unify this driver with ARM32, using the same DT definition.
>>
>> Thanks with this patchset we can use the 'enable-method' to specify a cpu
>> operations, hence get rid of the platform driver approach and go further in the
>> cpuidle driver flexibility via the DT.
>
> Tested on arm64 Juno and FVP models.
Thanks Lorenzo for testing the patches.
I applied the series to my tree for 4.1.
-- Daniel
> Tested-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
>
>>
>> Changelog:
>>
>> V3:
>> * Fixed unroll loop when failing to register the device
>> * Removed the per cpu cpuidle_device
>> * Remove goto statement in the registration path
>> * Fixed a compilation failure with allyesconfig on arm64
>>
>> V2:
>> * Used smp_operations style for cpuidle_ops
>> * Fixed some nits in the comments
>> * Added a patch to change the name of the functions
>> * Added per cpu device registration patch
>>
>> Daniel Lezcano (8):
>> ARM: cpuidle: Remove duplicate header inclusion
>> ARM: cpuidle: Add a cpuidle ops structure to be used for DT
>> ARM64: cpuidle: Replace cpu_suspend by the common ARM/ARM64 function
>> ARM64: cpuidle: Rename cpu_init_idle to a common function name
>> ARM64: cpuidle: Remove arm64 reference
>> ARM: cpuidle: Enable the ARM64 driver for both ARM32/ARM64
>> ARM: cpuidle: Register per cpuidle device
>> ARM: cpuidle: Change function name to be consistent with x86
>>
>> arch/arm/include/asm/cpuidle.h | 23 +++++++
>> arch/arm/kernel/cpuidle.c | 74 +++++++++++++++++++-
>> arch/arm/mach-davinci/cpuidle.c | 1 -
>> arch/arm/mach-imx/cpuidle-imx6q.c | 1 -
>> arch/arm/mach-imx/cpuidle-imx6sl.c | 1 -
>> arch/arm/mach-imx/cpuidle-imx6sx.c | 1 -
>> arch/arm/mach-omap2/cpuidle44xx.c | 1 -
>> arch/arm/mach-s3c64xx/cpuidle.c | 2 +-
>> arch/arm/mach-tegra/cpuidle-tegra20.c | 1 -
>> arch/arm/mach-tegra/cpuidle-tegra30.c | 1 -
>> arch/arm64/include/asm/cpuidle.h | 9 ++-
>> arch/arm64/kernel/cpuidle.c | 2 +-
>> drivers/cpuidle/Kconfig | 7 +-
>> drivers/cpuidle/Kconfig.arm | 12 +++-
>> drivers/cpuidle/Kconfig.arm64 | 13 ----
>> drivers/cpuidle/Makefile | 5 +-
>> drivers/cpuidle/{cpuidle-arm64.c => cpuidle-arm.c} | 80 ++++++++++++++++------
>> drivers/cpuidle/cpuidle-at91.c | 1 -
>> drivers/cpuidle/cpuidle-exynos.c | 1 -
>> drivers/cpuidle/cpuidle-kirkwood.c | 1 -
>> drivers/cpuidle/cpuidle-ux500.c | 1 -
>> drivers/cpuidle/cpuidle-zynq.c | 1 -
>> include/asm-generic/vmlinux.lds.h | 2 +
>> 23 files changed, 178 insertions(+), 63 deletions(-)
>> delete mode 100644 drivers/cpuidle/Kconfig.arm64
>> rename drivers/cpuidle/{cpuidle-arm64.c => cpuidle-arm.c} (57%)
>>
>> --
>> 1.9.1
>>
>>
--
<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
next prev parent reply other threads:[~2015-03-23 15:31 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-20 11:43 [PATCH V3 0/8] ARM: cpuidle: Unify the ARM64/ARM DT approach Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
[not found] ` <1426851841-2072-1-git-send-email-daniel.lezcano-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2015-03-20 11:43 ` [PATCH V3 1/8] ARM: cpuidle: Remove duplicate header inclusion Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
2015-03-20 11:43 ` [PATCH V3 6/8] ARM: cpuidle: Enable the ARM64 driver for both ARM32/ARM64 Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
2015-03-21 20:20 ` Lorenzo Pieralisi
2015-03-21 20:20 ` Lorenzo Pieralisi
2015-03-20 11:43 ` [PATCH V3 2/8] ARM: cpuidle: Add a cpuidle ops structure to be used for DT Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
2015-03-25 21:34 ` Stephen Boyd
2015-03-25 21:34 ` Stephen Boyd
2015-03-20 11:43 ` [PATCH V3 3/8] ARM64: cpuidle: Replace cpu_suspend by the common ARM/ARM64 function Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
2015-03-20 11:43 ` [PATCH V3 4/8] ARM64: cpuidle: Rename cpu_init_idle to a common function name Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
2015-03-21 20:24 ` Lorenzo Pieralisi
2015-03-21 20:24 ` Lorenzo Pieralisi
2015-03-20 11:43 ` [PATCH V3 5/8] ARM64: cpuidle: Remove arm64 reference Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
2015-03-21 20:21 ` Lorenzo Pieralisi
2015-03-21 20:21 ` Lorenzo Pieralisi
2015-03-20 11:44 ` [PATCH V3 7/8] ARM: cpuidle: Register per cpuidle device Daniel Lezcano
2015-03-20 11:44 ` Daniel Lezcano
2015-03-21 20:35 ` Lorenzo Pieralisi
2015-03-21 20:35 ` Lorenzo Pieralisi
2015-03-23 14:42 ` Daniel Lezcano
2015-03-23 14:42 ` Daniel Lezcano
2015-03-23 15:41 ` Daniel Lezcano
2015-03-23 15:41 ` Daniel Lezcano
2015-03-23 16:25 ` Lorenzo Pieralisi
2015-03-23 16:25 ` Lorenzo Pieralisi
2015-03-23 16:50 ` [PATCH V4] " Daniel Lezcano
2015-03-23 16:50 ` Daniel Lezcano
2015-03-23 22:58 ` Lorenzo Pieralisi
2015-03-23 22:58 ` Lorenzo Pieralisi
2015-03-24 9:54 ` [PATCH V5 1/2] " Daniel Lezcano
2015-03-24 9:54 ` Daniel Lezcano
2015-03-24 9:54 ` [PATCH 2/2] ARM: cpuidle: Document the code Daniel Lezcano
2015-03-24 9:54 ` Daniel Lezcano
2015-03-24 18:51 ` Lorenzo Pieralisi
2015-03-24 18:51 ` Lorenzo Pieralisi
2015-03-24 19:04 ` Lorenzo Pieralisi
2015-03-24 19:04 ` Lorenzo Pieralisi
2015-03-24 19:04 ` Lorenzo Pieralisi
2015-03-25 7:03 ` Daniel Lezcano
2015-03-25 7:03 ` Daniel Lezcano
2015-03-24 18:10 ` [PATCH V5 1/2] ARM: cpuidle: Register per cpuidle device Lorenzo Pieralisi
2015-03-24 18:10 ` Lorenzo Pieralisi
2015-03-20 11:44 ` [PATCH V3 8/8] ARM: cpuidle: Change function name to be consistent with x86 Daniel Lezcano
2015-03-20 11:44 ` Daniel Lezcano
2015-03-21 20:09 ` Lorenzo Pieralisi
2015-03-21 20:09 ` Lorenzo Pieralisi
2015-03-20 18:31 ` [PATCH V3 0/8] ARM: cpuidle: Unify the ARM64/ARM DT approach Lorenzo Pieralisi
2015-03-20 18:31 ` Lorenzo Pieralisi
2015-03-20 18:39 ` Daniel Lezcano
2015-03-20 18:39 ` Daniel Lezcano
2015-03-21 20:51 ` Lorenzo Pieralisi
2015-03-21 20:51 ` Lorenzo Pieralisi
2015-03-23 15:27 ` Lorenzo Pieralisi
2015-03-23 15:27 ` Lorenzo Pieralisi
2015-03-23 15:31 ` Daniel Lezcano [this message]
2015-03-23 15:31 ` Daniel Lezcano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=551031BB.4020200@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=Catalin.Marinas@arm.com \
--cc=arnd@arndb.de \
--cc=devicetree@vger.kernel.org \
--cc=lina.iyer@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=rjw@rjwysocki.net \
--cc=robherring2@gmail.com \
--cc=sboyd@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.