* [PATCH 1/2] cpuidle: cpuidle-arm: remove arm64 support
2022-05-29 18:13 [PATCH 0/2] arm64: remove generic ARM cpuidle support Michael Walle
@ 2022-05-29 18:13 ` Michael Walle
2022-05-30 14:32 ` Sudeep Holla
2022-05-29 18:13 ` [PATCH 2/2] arm64: cpuidle: remove generic cpuidle support Michael Walle
` (3 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Michael Walle @ 2022-05-29 18:13 UTC (permalink / raw)
To: Catalin Marinas, Sudeep Holla, Lorenzo Pieralisi, Daniel Lezcano,
Rafael J . Wysocki, Will Deacon
Cc: linux-arm-kernel, linux-kernel, linux-pm, Michael Walle
Since commit 788961462f34 ("ARM: psci: cpuidle: Enable PSCI CPUidle
driver") the generic ARM cpuidle driver doesn't probe anymore because
arm_cpuidle_init() will always return -EOPNOTSUPP. That is, because the
mentioned commit removes the only .cpu_suspend and .cpu_init_idle
provider.
Signed-off-by: Michael Walle <michael@walle.cc>
---
drivers/cpuidle/Kconfig.arm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
index be7f512109f7..747aa537389b 100644
--- a/drivers/cpuidle/Kconfig.arm
+++ b/drivers/cpuidle/Kconfig.arm
@@ -3,7 +3,8 @@
# ARM CPU Idle drivers
#
config ARM_CPUIDLE
- bool "Generic ARM/ARM64 CPU idle Driver"
+ bool "Generic ARM CPU idle Driver"
+ depends on ARM
select DT_IDLE_STATES
select CPU_IDLE_MULTIPLE_DRIVERS
help
--
2.30.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] cpuidle: cpuidle-arm: remove arm64 support
2022-05-29 18:13 ` [PATCH 1/2] cpuidle: cpuidle-arm: remove arm64 support Michael Walle
@ 2022-05-30 14:32 ` Sudeep Holla
0 siblings, 0 replies; 10+ messages in thread
From: Sudeep Holla @ 2022-05-30 14:32 UTC (permalink / raw)
To: Michael Walle
Cc: Catalin Marinas, Lorenzo Pieralisi, Sudeep Holla, Daniel Lezcano,
Rafael J . Wysocki, Will Deacon, linux-arm-kernel, linux-kernel,
linux-pm
On Sun, May 29, 2022 at 08:13:28PM +0200, Michael Walle wrote:
> Since commit 788961462f34 ("ARM: psci: cpuidle: Enable PSCI CPUidle
> driver") the generic ARM cpuidle driver doesn't probe anymore because
> arm_cpuidle_init() will always return -EOPNOTSUPP. That is, because the
> mentioned commit removes the only .cpu_suspend and .cpu_init_idle
> provider.
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
--
Regards,
Sudeep
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/2] arm64: cpuidle: remove generic cpuidle support
2022-05-29 18:13 [PATCH 0/2] arm64: remove generic ARM cpuidle support Michael Walle
2022-05-29 18:13 ` [PATCH 1/2] cpuidle: cpuidle-arm: remove arm64 support Michael Walle
@ 2022-05-29 18:13 ` Michael Walle
2022-05-30 14:33 ` Sudeep Holla
2022-05-30 15:37 ` [PATCH 0/2] arm64: remove generic ARM " Daniel Lezcano
` (2 subsequent siblings)
4 siblings, 1 reply; 10+ messages in thread
From: Michael Walle @ 2022-05-29 18:13 UTC (permalink / raw)
To: Catalin Marinas, Sudeep Holla, Lorenzo Pieralisi, Daniel Lezcano,
Rafael J . Wysocki, Will Deacon
Cc: linux-arm-kernel, linux-kernel, linux-pm, Michael Walle
The arm64 support of the generic ARM cpuidle driver was removed. This
let us remove all support code for it.
Signed-off-by: Michael Walle <michael@walle.cc>
---
arch/arm64/include/asm/cpu_ops.h | 9 ---------
arch/arm64/include/asm/cpuidle.h | 15 ---------------
arch/arm64/kernel/cpuidle.c | 29 -----------------------------
3 files changed, 53 deletions(-)
diff --git a/arch/arm64/include/asm/cpu_ops.h b/arch/arm64/include/asm/cpu_ops.h
index e95c4df83911..a444c8915e88 100644
--- a/arch/arm64/include/asm/cpu_ops.h
+++ b/arch/arm64/include/asm/cpu_ops.h
@@ -31,11 +31,6 @@
* @cpu_die: Makes a cpu leave the kernel. Must not fail. Called from the
* cpu being killed.
* @cpu_kill: Ensures a cpu has left the kernel. Called from another cpu.
- * @cpu_init_idle: Reads any data necessary to initialize CPU idle states for
- * a proposed logical id.
- * @cpu_suspend: Suspends a cpu and saves the required context. May fail owing
- * to wrong parameters or error conditions. Called from the
- * CPU being suspended. Must be called with IRQs disabled.
*/
struct cpu_operations {
const char *name;
@@ -49,10 +44,6 @@ struct cpu_operations {
void (*cpu_die)(unsigned int cpu);
int (*cpu_kill)(unsigned int cpu);
#endif
-#ifdef CONFIG_CPU_IDLE
- int (*cpu_init_idle)(unsigned int);
- int (*cpu_suspend)(unsigned long);
-#endif
};
int __init init_cpu_ops(int cpu);
diff --git a/arch/arm64/include/asm/cpuidle.h b/arch/arm64/include/asm/cpuidle.h
index 14a19d1141bd..2047713e097d 100644
--- a/arch/arm64/include/asm/cpuidle.h
+++ b/arch/arm64/include/asm/cpuidle.h
@@ -4,21 +4,6 @@
#include <asm/proc-fns.h>
-#ifdef CONFIG_CPU_IDLE
-extern int arm_cpuidle_init(unsigned int cpu);
-extern int arm_cpuidle_suspend(int index);
-#else
-static inline int arm_cpuidle_init(unsigned int cpu)
-{
- return -EOPNOTSUPP;
-}
-
-static inline int arm_cpuidle_suspend(int index)
-{
- return -EOPNOTSUPP;
-}
-#endif
-
#ifdef CONFIG_ARM64_PSEUDO_NMI
#include <asm/arch_gicv3.h>
diff --git a/arch/arm64/kernel/cpuidle.c b/arch/arm64/kernel/cpuidle.c
index 3006f4324808..4150e308e99c 100644
--- a/arch/arm64/kernel/cpuidle.c
+++ b/arch/arm64/kernel/cpuidle.c
@@ -13,35 +13,6 @@
#include <linux/of_device.h>
#include <linux/psci.h>
-#include <asm/cpuidle.h>
-#include <asm/cpu_ops.h>
-
-int arm_cpuidle_init(unsigned int cpu)
-{
- const struct cpu_operations *ops = get_cpu_ops(cpu);
- int ret = -EOPNOTSUPP;
-
- if (ops && ops->cpu_suspend && ops->cpu_init_idle)
- ret = ops->cpu_init_idle(cpu);
-
- return ret;
-}
-
-/**
- * arm_cpuidle_suspend() - function to enter a low-power idle state
- * @index: argument to pass to CPU suspend operations
- *
- * Return: 0 on success, -EOPNOTSUPP if CPU suspend hook not initialized, CPU
- * operations back-end error code otherwise.
- */
-int arm_cpuidle_suspend(int index)
-{
- int cpu = smp_processor_id();
- const struct cpu_operations *ops = get_cpu_ops(cpu);
-
- return ops->cpu_suspend(index);
-}
-
#ifdef CONFIG_ACPI
#include <acpi/processor.h>
--
2.30.2
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] arm64: cpuidle: remove generic cpuidle support
2022-05-29 18:13 ` [PATCH 2/2] arm64: cpuidle: remove generic cpuidle support Michael Walle
@ 2022-05-30 14:33 ` Sudeep Holla
0 siblings, 0 replies; 10+ messages in thread
From: Sudeep Holla @ 2022-05-30 14:33 UTC (permalink / raw)
To: Michael Walle
Cc: Catalin Marinas, Lorenzo Pieralisi, Daniel Lezcano, Sudeep Holla,
Rafael J . Wysocki, Will Deacon, linux-arm-kernel, linux-kernel,
linux-pm
On Sun, May 29, 2022 at 08:13:29PM +0200, Michael Walle wrote:
> The arm64 support of the generic ARM cpuidle driver was removed. This
> let us remove all support code for it.
>
Thanks for doing this, we initially had plans to do this one release after
PSCI idle driver got merged but clearly slipped through the cracks.
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
--
Regards,
Sudeep
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] arm64: remove generic ARM cpuidle support
2022-05-29 18:13 [PATCH 0/2] arm64: remove generic ARM cpuidle support Michael Walle
2022-05-29 18:13 ` [PATCH 1/2] cpuidle: cpuidle-arm: remove arm64 support Michael Walle
2022-05-29 18:13 ` [PATCH 2/2] arm64: cpuidle: remove generic cpuidle support Michael Walle
@ 2022-05-30 15:37 ` Daniel Lezcano
2022-06-22 11:59 ` Michael Walle
2022-06-23 19:31 ` Will Deacon
4 siblings, 0 replies; 10+ messages in thread
From: Daniel Lezcano @ 2022-05-30 15:37 UTC (permalink / raw)
To: Michael Walle, Catalin Marinas, Sudeep Holla, Lorenzo Pieralisi,
Rafael J . Wysocki, Will Deacon
Cc: linux-arm-kernel, linux-kernel, linux-pm
On 29/05/2022 20:13, Michael Walle wrote:
> Playing with an own PSCI implementation, I've noticed that the cpuidle-arm
> driver doesn't work on arm64. It doesn't probe because since commit
> 788961462f34 ("ARM: psci: cpuidle: Enable PSCI CPUidle driver") the
> arm_cpuidle_init() can only return -EOPNOTSUPP, because the commit removed
> the cpu_idle_init and cpu_suspend ops.
>
> It left me puzzled for quite some time. It seems that the cpuidle-psci is
> the preferred one and this has been the case for quite some time. The
> mentioned commit first appeared in v5.4.
>
> Remove the ARM64 support for the cpuidle-arm driver, which then let us
> remove all the supporting arch code.
>
> Michael Walle (2):
> cpuidle: cpuidle-arm: remove arm64 support
> arm64: cpuidle: remove generic cpuidle support
>
> arch/arm64/include/asm/cpu_ops.h | 9 ---------
> arch/arm64/include/asm/cpuidle.h | 15 ---------------
> arch/arm64/kernel/cpuidle.c | 29 -----------------------------
> drivers/cpuidle/Kconfig.arm | 3 ++-
> 4 files changed, 2 insertions(+), 54 deletions(-)
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
--
<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
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] arm64: remove generic ARM cpuidle support
2022-05-29 18:13 [PATCH 0/2] arm64: remove generic ARM cpuidle support Michael Walle
` (2 preceding siblings ...)
2022-05-30 15:37 ` [PATCH 0/2] arm64: remove generic ARM " Daniel Lezcano
@ 2022-06-22 11:59 ` Michael Walle
2022-06-22 14:07 ` Sudeep Holla
2022-06-23 19:31 ` Will Deacon
4 siblings, 1 reply; 10+ messages in thread
From: Michael Walle @ 2022-06-22 11:59 UTC (permalink / raw)
To: Catalin Marinas, Sudeep Holla, Lorenzo Pieralisi, Daniel Lezcano,
Rafael J . Wysocki, Will Deacon
Cc: linux-arm-kernel, linux-kernel, linux-pm
Am 2022-05-29 20:13, schrieb Michael Walle:
> Playing with an own PSCI implementation, I've noticed that the
> cpuidle-arm
> driver doesn't work on arm64. It doesn't probe because since commit
> 788961462f34 ("ARM: psci: cpuidle: Enable PSCI CPUidle driver") the
> arm_cpuidle_init() can only return -EOPNOTSUPP, because the commit
> removed
> the cpu_idle_init and cpu_suspend ops.
>
> It left me puzzled for quite some time. It seems that the cpuidle-psci
> is
> the preferred one and this has been the case for quite some time. The
> mentioned commit first appeared in v5.4.
>
> Remove the ARM64 support for the cpuidle-arm driver, which then let us
> remove all the supporting arch code.
>
> Michael Walle (2):
> cpuidle: cpuidle-arm: remove arm64 support
> arm64: cpuidle: remove generic cpuidle support
>
> arch/arm64/include/asm/cpu_ops.h | 9 ---------
> arch/arm64/include/asm/cpuidle.h | 15 ---------------
> arch/arm64/kernel/cpuidle.c | 29 -----------------------------
> drivers/cpuidle/Kconfig.arm | 3 ++-
> 4 files changed, 2 insertions(+), 54 deletions(-)
Through which tree should this patchset go? I've seen it is marked as
"Handled Elsewere" in the linux pm patchwork [1].
-michael
[1]
https://patchwork.kernel.org/project/linux-pm/patch/20220529181329.2345722-2-michael@walle.cc/
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] arm64: remove generic ARM cpuidle support
2022-06-22 11:59 ` Michael Walle
@ 2022-06-22 14:07 ` Sudeep Holla
2022-06-23 13:19 ` Will Deacon
0 siblings, 1 reply; 10+ messages in thread
From: Sudeep Holla @ 2022-06-22 14:07 UTC (permalink / raw)
To: Michael Walle
Cc: Catalin Marinas, Lorenzo Pieralisi, Daniel Lezcano,
Rafael J . Wysocki, Will Deacon, linux-arm-kernel, linux-kernel,
linux-pm
On Wed, Jun 22, 2022 at 01:59:07PM +0200, Michael Walle wrote:
> Am 2022-05-29 20:13, schrieb Michael Walle:
> > Playing with an own PSCI implementation, I've noticed that the
> > cpuidle-arm
> > driver doesn't work on arm64. It doesn't probe because since commit
> > 788961462f34 ("ARM: psci: cpuidle: Enable PSCI CPUidle driver") the
> > arm_cpuidle_init() can only return -EOPNOTSUPP, because the commit
> > removed
> > the cpu_idle_init and cpu_suspend ops.
> >
> > It left me puzzled for quite some time. It seems that the cpuidle-psci
> > is
> > the preferred one and this has been the case for quite some time. The
> > mentioned commit first appeared in v5.4.
> >
> > Remove the ARM64 support for the cpuidle-arm driver, which then let us
> > remove all the supporting arch code.
> >
> > Michael Walle (2):
> > cpuidle: cpuidle-arm: remove arm64 support
> > arm64: cpuidle: remove generic cpuidle support
> >
> > arch/arm64/include/asm/cpu_ops.h | 9 ---------
> > arch/arm64/include/asm/cpuidle.h | 15 ---------------
> > arch/arm64/kernel/cpuidle.c | 29 -----------------------------
> > drivers/cpuidle/Kconfig.arm | 3 ++-
> > 4 files changed, 2 insertions(+), 54 deletions(-)
>
> Through which tree should this patchset go? I've seen it is marked as
> "Handled Elsewere" in the linux pm patchwork [1].
>
Generally based on the changes, it is decided. I can see why Rafael would
have marked so in PM patchwork. Daniel has already acked small change in
CPUidle config file while the bulk is removal of arm64 code. So, it is
better to route it via arm64 tree.
Will,
Assuming you will handle v5.20, can you pick this up ?
--
Regards,
Sudeep
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] arm64: remove generic ARM cpuidle support
2022-06-22 14:07 ` Sudeep Holla
@ 2022-06-23 13:19 ` Will Deacon
0 siblings, 0 replies; 10+ messages in thread
From: Will Deacon @ 2022-06-23 13:19 UTC (permalink / raw)
To: Sudeep Holla
Cc: Michael Walle, Catalin Marinas, Lorenzo Pieralisi,
Daniel Lezcano, Rafael J . Wysocki, linux-arm-kernel,
linux-kernel, linux-pm
On Wed, Jun 22, 2022 at 03:07:48PM +0100, Sudeep Holla wrote:
> On Wed, Jun 22, 2022 at 01:59:07PM +0200, Michael Walle wrote:
> > Am 2022-05-29 20:13, schrieb Michael Walle:
> > > Playing with an own PSCI implementation, I've noticed that the
> > > cpuidle-arm
> > > driver doesn't work on arm64. It doesn't probe because since commit
> > > 788961462f34 ("ARM: psci: cpuidle: Enable PSCI CPUidle driver") the
> > > arm_cpuidle_init() can only return -EOPNOTSUPP, because the commit
> > > removed
> > > the cpu_idle_init and cpu_suspend ops.
> > >
> > > It left me puzzled for quite some time. It seems that the cpuidle-psci
> > > is
> > > the preferred one and this has been the case for quite some time. The
> > > mentioned commit first appeared in v5.4.
> > >
> > > Remove the ARM64 support for the cpuidle-arm driver, which then let us
> > > remove all the supporting arch code.
> > >
> > > Michael Walle (2):
> > > cpuidle: cpuidle-arm: remove arm64 support
> > > arm64: cpuidle: remove generic cpuidle support
> > >
> > > arch/arm64/include/asm/cpu_ops.h | 9 ---------
> > > arch/arm64/include/asm/cpuidle.h | 15 ---------------
> > > arch/arm64/kernel/cpuidle.c | 29 -----------------------------
> > > drivers/cpuidle/Kconfig.arm | 3 ++-
> > > 4 files changed, 2 insertions(+), 54 deletions(-)
> >
> > Through which tree should this patchset go? I've seen it is marked as
> > "Handled Elsewere" in the linux pm patchwork [1].
> >
>
> Generally based on the changes, it is decided. I can see why Rafael would
> have marked so in PM patchwork. Daniel has already acked small change in
> CPUidle config file while the bulk is removal of arm64 code. So, it is
> better to route it via arm64 tree.
>
> Will,
>
> Assuming you will handle v5.20, can you pick this up ?
Yup, on it.
Will
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] arm64: remove generic ARM cpuidle support
2022-05-29 18:13 [PATCH 0/2] arm64: remove generic ARM cpuidle support Michael Walle
` (3 preceding siblings ...)
2022-06-22 11:59 ` Michael Walle
@ 2022-06-23 19:31 ` Will Deacon
4 siblings, 0 replies; 10+ messages in thread
From: Will Deacon @ 2022-06-23 19:31 UTC (permalink / raw)
To: Daniel Lezcano, Catalin Marinas, Michael Walle, Sudeep Holla,
Rafael J . Wysocki, Lorenzo Pieralisi
Cc: kernel-team, Will Deacon, linux-kernel, linux-arm-kernel, linux-pm
On Sun, 29 May 2022 20:13:27 +0200, Michael Walle wrote:
> Playing with an own PSCI implementation, I've noticed that the cpuidle-arm
> driver doesn't work on arm64. It doesn't probe because since commit
> 788961462f34 ("ARM: psci: cpuidle: Enable PSCI CPUidle driver") the
> arm_cpuidle_init() can only return -EOPNOTSUPP, because the commit removed
> the cpu_idle_init and cpu_suspend ops.
>
> It left me puzzled for quite some time. It seems that the cpuidle-psci is
> the preferred one and this has been the case for quite some time. The
> mentioned commit first appeared in v5.4.
>
> [...]
Applied to arm64 (for-next/cpuidle), thanks!
[1/2] cpuidle: cpuidle-arm: remove arm64 support
https://git.kernel.org/arm64/c/51280acad855
[2/2] arm64: cpuidle: remove generic cpuidle support
https://git.kernel.org/arm64/c/471f80db9ef1
Cheers,
--
Will
https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread