Re: [PATCH] ARM: shmobile: cpuidle: Remove the pointless default driver

From: Daniel Lezcano
Date: Tue Mar 17 2015 - 11:18:48 EST

On 03/17/2015 04:06 PM, Geert Uytterhoeven wrote:
Hi Daniel,

On Tue, Mar 17, 2015 at 3:34 PM, Daniel Lezcano
<daniel.lezcano@xxxxxxxxxx> wrote:
The default idle driver uses one state with the WFI instruction.
The default idle routine invokes WFI when no cpuidle driver is present.

The default cpuidle driver is pointless and does not give more than the
default idle routine and moreover it pulls all the mathematics tied with
the cpuidle governor for nothing, hence consuming more energy.

Remove the default driver, the related code and register the driver directly.

Thanks for your patch!

[compiled only - no board - no test]

Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
arch/arm/mach-shmobile/common.h | 3 ---
arch/arm/mach-shmobile/cpuidle.c | 37 -------------------------------------
arch/arm/mach-shmobile/pm-sh7372.c | 2 +-
3 files changed, 1 insertion(+), 41 deletions(-)

diff --git a/arch/arm/mach-shmobile/common.h b/arch/arm/mach-shmobile/common.h
index 309025e..29b3088 100644
--- a/arch/arm/mach-shmobile/common.h
+++ b/arch/arm/mach-shmobile/common.h
@@ -23,8 +23,6 @@ struct clk;
extern int shmobile_clk_init(void);
extern void shmobile_handle_irq_intc(struct pt_regs *);
extern struct platform_suspend_ops shmobile_suspend_ops;
-struct cpuidle_driver;
-extern void shmobile_cpuidle_set_driver(struct cpuidle_driver *drv);

int shmobile_suspend_init(void);
@@ -51,7 +49,6 @@ extern void __iomem *shmobile_scu_base;
static inline void __init shmobile_init_late(void)
- shmobile_cpuidle_init();

Please remove the forward declaration and dummy for shmobile_cpuidle_init()
above, too.

Ah, yeah. I thought I did it.


diff --git a/arch/arm/mach-shmobile/cpuidle.c b/arch/arm/mach-shmobile/cpuidle.c
index 0afeb5c..e69de29 100644
--- a/arch/arm/mach-shmobile/cpuidle.c
+++ b/arch/arm/mach-shmobile/cpuidle.c
@@ -1,37 +0,0 @@

If you remove this file, you should remove its entry from
arch/arm/mach-shmobile/Makefile, too.
(did you use a config with CONFIG_CPU_IDLE=n?).

Yeah, but I have an empty file still around, this is why it was not catched. Thanks for pointing this.

diff --git a/arch/arm/mach-shmobile/pm-sh7372.c b/arch/arm/mach-shmobile/pm-sh7372.c
index c0293ae..9f19052 100644
--- a/arch/arm/mach-shmobile/pm-sh7372.c
+++ b/arch/arm/mach-shmobile/pm-sh7372.c

Support for sh7372 is scheduled for removal in v4.1, so this will become
a no-op.

Cool. So everything will be self contained in this file then.

Thanks for the review.

-- Daniel

<> â Open source software for ARM SoCs

Follow Linaro: <> Facebook |
<!/linaroorg> Twitter |
<> Blog

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at