arch_idle() cleanup and mach/system.h removal
Subsystems (26)
cover arch_idle() cleanup and mach/system.h removal
This is the logical continuation of the arch_reset() work that Russell did and therefore this must be applied on top of Russell's "reset" branch.
Most arch_idle() implementations are simply a call to cpu_do_idle() and can be eliminated in favor of a common call. However, some platforms require special idle handling and the arm_pm_idle hook is made available for those cases.
Why "arm_pm_idle"? Because there is already a generic "pm_idle", but its calling convention is rather awkward with regard to interrupts, so the default "pm_idle" handler will call arm_pm_idle if it is non null, or cpu_do_idle otherwise. The generic pm_idle hook still can be overriden as before.
This series is therefore meant to be functionally a big no-op i.e. everything should just behave as before, despite having more than 1000 lines of code and 55 files removed in the end.
[PATCH 01/20] ARM: clean up idle handlers
[PATCH 02/20] ARM: mach-s5pv210: use standard arch_idle() [PATCH 03/20] ARM: mach-s5pc100: use standard arch_idle() [PATCH 04/20] ARM: mach-exynos: use standard arch_idle() [PATCH 05/20] ARM: mach-at91: move special idle code out of line [PATCH 06/20] ARM: mach-clps711x: move special idle code out of line [PATCH 07/20] ARM: mach-ebsa110: move special idle code out of line [PATCH 08/20] ARM: mach-gemini: move special idle code out of line [PATCH 09/20] ARM: mach-h720x: move special idle code out of line [PATCH 10/20] ARM: s3c24xx: move special idle code to out of line [PATCH 11/20] ARM: plat-mxc: hook special idle handlers to [PATCH 12/20] ARM: mach-msm: hook special idle handlers to [PATCH 13/20] ARM: mach-ixp23xx: properly disable CPU idle call [PATCH 14/20] ARM: mach-ixp4xx: properly disable CPU idle call [PATCH 15/20] ARM: mach-shark: properly disable CPU idle call [PATCH 16/20] ARM: mach-w90x900: properly disable CPU idle call [PATCH 17/20] ARM: mach-s3c64xx: properly disable CPU idle call [PATCH 18/20] ARM: mach-tegra: properly disable CPU idle call [PATCH 19/20] ARM: substitute arch_idle()
[PATCH 20/20] ARM: big removal of now unused arch_reset()
arch/arm/include/asm/system.h | 1 + arch/arm/kernel/process.c | 27 ++++++---- arch/arm/mach-at91/at91cap9.c | 8 +++ arch/arm/mach-at91/at91rm9200.c | 10 ++++ arch/arm/mach-at91/at91sam9260.c | 8 +++ arch/arm/mach-at91/at91sam9261.c | 8 +++ arch/arm/mach-at91/at91sam9263.c | 8 +++ arch/arm/mach-at91/at91sam9g45.c | 7 +++ arch/arm/mach-at91/at91sam9rl.c | 8 +++ arch/arm/mach-at91/at91x40.c | 12 ++++ arch/arm/mach-at91/include/mach/system.h | 50 ------------------ arch/arm/mach-bcmring/include/mach/system.h | 28 ---------- arch/arm/mach-clps711x/common.c | 16 ++++++ arch/arm/mach-clps711x/include/mach/system.h | 35 ------------ arch/arm/mach-cns3xxx/include/mach/system.h | 25 --------- arch/arm/mach-davinci/include/mach/system.h | 21 ------- arch/arm/mach-dove/include/mach/system.h | 17 ------ arch/arm/mach-ebsa110/core.c | 25 +++++++++ arch/arm/mach-ebsa110/include/mach/system.h | 37 ------------- arch/arm/mach-ep93xx/include/mach/system.h | 7 --- arch/arm/mach-exynos/cpu.c | 12 ---- arch/arm/mach-exynos/include/mach/system.h | 22 -------- arch/arm/mach-footbridge/include/mach/system.h | 13 ----- arch/arm/mach-gemini/Makefile | 2 +- arch/arm/mach-gemini/idle.c | 29 ++++++++++ arch/arm/mach-gemini/include/mach/system.h | 31 ----------- arch/arm/mach-gemini/irq.c | 4 +- arch/arm/mach-h720x/common.c | 18 ++++++ arch/arm/mach-h720x/include/mach/system.h | 27 ---------- arch/arm/mach-highbank/include/mach/system.h | 24 -------- arch/arm/mach-imx/mm-imx3.c | 4 +- arch/arm/mach-imx/pm-imx27.c | 3 +- arch/arm/mach-integrator/include/mach/system.h | 33 ------------ arch/arm/mach-iop13xx/include/mach/system.h | 13 ----- arch/arm/mach-iop32x/include/mach/system.h | 13 ----- arch/arm/mach-iop33x/include/mach/system.h | 13 ----- arch/arm/mach-ixp2000/include/mach/system.h | 14 ----- arch/arm/mach-ixp23xx/core.c | 3 + arch/arm/mach-ixp23xx/include/mach/system.h | 16 ------ arch/arm/mach-ixp4xx/common.c | 6 ++ arch/arm/mach-ixp4xx/include/mach/system.h | 19 ------- arch/arm/mach-kirkwood/include/mach/system.h | 17 ------ arch/arm/mach-ks8695/include/mach/system.h | 27 ---------- arch/arm/mach-lpc32xx/include/mach/system.h | 27 ---------- arch/arm/mach-mmp/include/mach/system.h | 16 ------ arch/arm/mach-msm/idle.S | 36 ------------- arch/arm/mach-msm/idle.c | 49 +++++++++++++++++ arch/arm/mach-msm/include/mach/system.h | 1 - arch/arm/mach-mv78xx0/include/mach/system.h | 17 ------ arch/arm/mach-mx5/mm.c | 2 +- arch/arm/mach-mxs/include/mach/system.h | 25 --------- arch/arm/mach-mxs/pm.c | 3 +- arch/arm/mach-netx/include/mach/system.h | 28 ---------- arch/arm/mach-nomadik/include/mach/system.h | 32 ----------- arch/arm/mach-omap1/include/mach/system.h | 5 -- arch/arm/mach-omap1/pm.c | 19 ++----- arch/arm/mach-omap2/include/mach/system.h | 5 -- arch/arm/mach-omap2/pm24xx.c | 5 +- arch/arm/mach-omap2/pm34xx.c | 7 +-- arch/arm/mach-omap2/pm44xx.c | 2 + arch/arm/mach-orion5x/include/mach/system.h | 19 ------- arch/arm/mach-picoxcell/include/mach/system.h | 26 --------- arch/arm/mach-pnx4008/include/mach/system.h | 29 ---------- arch/arm/mach-prima2/include/mach/system.h | 17 ------ arch/arm/mach-pxa/include/mach/system.h | 15 ----- arch/arm/mach-realview/include/mach/system.h | 33 ------------ arch/arm/mach-rpc/include/mach/system.h | 13 ----- arch/arm/mach-s3c2410/include/mach/system.h | 37 ------------- arch/arm/mach-s3c2412/s3c2412.c | 3 +- arch/arm/mach-s3c2416/s3c2416.c | 2 - arch/arm/mach-s3c64xx/cpu.c | 2 + arch/arm/mach-s3c64xx/include/mach/system.h | 5 -- arch/arm/mach-s5p64x0/cpu.c | 16 +++--- arch/arm/mach-s5p64x0/include/mach/system.h | 23 -------- arch/arm/mach-s5pc100/cpu.c | 12 ---- arch/arm/mach-s5pc100/include/mach/system.h | 21 ------- arch/arm/mach-s5pv210/cpu.c | 12 ---- arch/arm/mach-s5pv210/include/mach/system.h | 23 -------- arch/arm/mach-sa1100/include/mach/system.h | 9 --- arch/arm/mach-shark/core.c | 6 ++ arch/arm/mach-shark/include/mach/system.h | 13 ----- arch/arm/mach-shmobile/include/mach/system.h | 5 -- arch/arm/mach-spear3xx/include/mach/system.h | 19 ------- arch/arm/mach-spear6xx/include/mach/system.h | 19 ------- arch/arm/mach-tegra/common.c | 3 +- arch/arm/mach-tegra/include/mach/system.h | 28 ---------- arch/arm/mach-u300/include/mach/system.h | 14 ----- arch/arm/mach-ux500/include/mach/system.h | 20 ------- arch/arm/mach-versatile/include/mach/system.h | 33 ------------ arch/arm/mach-vexpress/include/mach/system.h | 33 ------------ arch/arm/mach-vt8500/include/mach/system.h | 5 -- arch/arm/mach-w90x900/dev.c | 1 + arch/arm/mach-w90x900/include/mach/system.h | 19 ------- arch/arm/mach-zynq/include/mach/system.h | 23 -------- arch/arm/plat-mxc/include/mach/common.h | 1 - arch/arm/plat-mxc/include/mach/system.h | 30 ----------- arch/arm/plat-mxc/system.c | 1 - arch/arm/plat-omap/include/plat/system.h | 15 ----- arch/arm/plat-s3c24xx/cpu.c | 27 ++++++++++ arch/arm/plat-spear/include/plat/system.h | 26 --------- arch/arm/plat-tcc/include/mach/system.h | 31 ----------- 101 files changed, 299 insertions(+), 1390 deletions(-)
PATCH 1/20 ARM: clean up idle handlers
Let's factor out the need_resched() check instead of having it duplicated in every pm_idle implementations to avoid inconsistencies (omap2_pm_idle was missing it already).
The forceful re-enablement of IRQs after pm_idle has returned can go. The warning certainly doesn't trigger for existing users. Similar for the redundant local_irq_disable() call in the OMAP implementations.
To get rid of the pm_idle calling convention oddity, let's introduce arm_pm_idle() allowing for the local_irq_enable() to be factored out from SOC specific implementations. The default pm_idle function becomes a wrapper for arm_pm_idle and it takes care of enabling IRQs closer to where they are initially disabled.
And finally move the comment explaining the reason for that turning off of IRQs to a more proper location.
--- arch/arm/include/asm/system.h | 1 + arch/arm/kernel/process.c | 23 +++++++++++++++-------- arch/arm/mach-omap1/pm.c | 19 ++++++------------- arch/arm/mach-omap2/pm24xx.c | 5 ++--- arch/arm/mach-omap2/pm34xx.c | 7 +++---- arch/arm/mach-omap2/pm44xx.c | 2 ++ arch/arm/mach-s5p64x0/cpu.c | 16 +++++++--------- 7 files changed, 36 insertions(+), 37 deletions(-)
arch/arm/include/asm/system.h +1 -0
@@ -102,6 +102,7 @@ extern void cpu_init(void);void soft_restart (unsigned long );extern void (*arm_pm_restart)(char str,const char *cmd); +extern void (*arm_pm_idle)(void );#define UDBG_UNDEFINED (1 << 0)#define UDBG_SYSCALL (1 << 1)
arch/arm/kernel/process.c +15 -8
@@ -151,12 +151,16 @@ void cpu_idle_wait(void)EXPORT_SYMBOL_GPL (cpu_idle_wait);/* -* This is our default idle handler. We need to disable -* interrupts here to ensure we don't miss a wakeup call. +* This is our default idle handler. */ + +void (*arm_pm_idle)(void ); +static void default_idle (void ) { -if (!need_resched ()) +if (arm_pm_idle) +arm_pm_idle (); +else arch_idle ();local_irq_enable (); }
@@ -184,23 +188,26 @@ void cpu_idle(void)cpu_die ();#endif +/* +* We need to disable interrupts here +* to ensure we don't miss a wakeup call. +*/ local_irq_disable ();if (hlt_counter) {local_irq_enable ();cpu_relax (); - }else { + }else if (!need_resched ()) {stop_critical_timings ();if (cpuidle_idle_call ())pm_idle ();start_critical_timings ();/* -* This will eventually be removed - pm_idle -* functions should always return with IRQs -* enabled. +* pm_idle functions should always +* return with IRQs enabled. */ WARN_ON (irqs_disabled ()); + }else local_irq_enable (); - } }leds_event (led_idle_end);tick_nohz_restart_sched_tick ();
arch/arm/mach-omap1/pm.c +6 -13
@@ -42,9 +42,10 @@#include <linux/sysfs.h> #include <linux/module.h> #include <linux/io.h> +#include <linux/atomic.h> +#include <asm/system.h> #include <asm/irq.h> -#include <linux/atomic.h> #include <asm/mach/time.h> #include <asm/mach/irq.h>
@@ -108,13 +109,7 @@ void omap1_pm_idle(void)__u32 use_idlect1 = arm_idlect1_mask;int do_sleep =0 ; -local_irq_disable ();local_fiq_disable (); -if (need_resched ()) { -local_fiq_enable (); -local_irq_enable (); -return ; - }#if defined(CONFIG_OMAP_MPU_TIMER ) && !defined(CONFIG_OMAP_DM_TIMER )#warning Enable 32kHz OS timer in order to allow sleep states in idle
@@ -157,14 +152,12 @@ void omap1_pm_idle(void)omap_writel (saved_idlect1,ARM_IDLECT1 );local_fiq_enable (); -local_irq_enable ();return ; }omap_sram_suspend (omap_readl (ARM_IDLECT1 ),omap_readl (ARM_IDLECT2 ));local_fiq_enable (); -local_irq_enable (); }/*
@@ -592,8 +585,8 @@ static void (*saved_idle)(void) = NULL;static int omap_pm_prepare (void ) {/* We cannot sleep in idle until we have resumed */ - saved_idle = pm_idle; - pm_idle =NULL ; + saved_idle = arm_pm_idle; + arm_pm_idle =NULL ;return 0 ; }
@@ -630,7 +623,7 @@ static int omap_pm_enter(suspend_state_t state)static void omap_pm_finish (void ) { - pm_idle = saved_idle; + arm_pm_idle = saved_idle; }
@@ -687,7 +680,7 @@ static int __init omap_pm_init(void)return -ENODEV ; } - pm_idle = omap1_pm_idle; + arm_pm_idle = omap1_pm_idle;if (cpu_is_omap7xx ())setup_irq (INT_7XX_WAKE_UP_REQ , &omap_wakeup_irq);
arch/arm/mach-omap2/pm24xx.c +2 -3
@@ -34,6 +34,7 @@#include <asm/mach/time.h> #include <asm/mach/irq.h> +#include <asm/system.h> #include <asm/mach-types.h> #include <mach/irqs.h>
@@ -251,7 +252,6 @@ static int omap2_can_sleep(void)static void omap2_pm_idle (void ) { -local_irq_disable ();local_fiq_disable ();if (!omap2_can_sleep ()) {
@@ -268,7 +268,6 @@ static void omap2_pm_idle(void) out:local_fiq_enable (); -local_irq_enable (); }#ifdef CONFIG_SUSPEND
@@ -488,7 +487,7 @@ static int __init omap2_pm_init(void) }suspend_set_ops (&omap_pm_ops); - pm_idle = omap2_pm_idle; + arm_pm_idle = omap2_pm_idle;return 0 ; }
arch/arm/mach-omap2/pm34xx.c +3 -4
@@ -32,6 +32,7 @@#include <trace/events/power.h> #include <asm/suspend.h> +#include <asm/system.h> #include <plat/sram.h> #include "clockdomain.h"
@@ -494,13 +495,12 @@ int omap3_can_sleep(void)static void omap3_pm_idle (void ) { -local_irq_disable ();local_fiq_disable ();if (!omap3_can_sleep ()) goto out; -if (omap_irq_pending () ||need_resched ()) +if (omap_irq_pending ()) goto out;trace_power_start (POWER_CSTATE ,1 ,smp_processor_id ());
@@ -513,7 +513,6 @@ static void omap3_pm_idle(void) out:local_fiq_enable (); -local_irq_enable (); }#ifdef CONFIG_SUSPEND
@@ -918,7 +917,7 @@ static int __init omap3_pm_init(void)suspend_set_ops (&omap_pm_ops);#endif /* CONFIG_SUSPEND */ - pm_idle = omap3_pm_idle; + arm_pm_idle = omap3_pm_idle;omap3_idle_init ();/*
arch/arm/mach-omap2/pm44xx.c +2 -0
@@ -16,6 +16,8 @@#include <linux/err.h> #include <linux/slab.h> +#include <asm/system.h> +#include "common.h" #include "powerdomain.h"
arch/arm/mach-s5p64x0/cpu.c +7 -9
@@ -27,6 +27,7 @@#include <asm/mach/irq.h> #include <asm/proc-fns.h> #include <asm/irq.h> +#include <asm/system.h> #include <mach/hardware.h> #include <mach/map.h>
@@ -89,15 +90,12 @@ static void s5p64x0_idle(void) {unsigned long val; -if (!need_resched ()) { - val =__raw_readl (S5P64X0_PWR_CFG ); - val &= ~(0x3 <<5 ); - val |= (0x1 <<5 ); -__raw_writel (val,S5P64X0_PWR_CFG ); + val =__raw_readl (S5P64X0_PWR_CFG ); + val &= ~(0x3 <<5 ); + val |= (0x1 <<5 ); +__raw_writel (val,S5P64X0_PWR_CFG ); -cpu_do_idle (); - } -local_irq_enable (); +cpu_do_idle (); }/*
@@ -209,7 +207,7 @@ int __init s5p64x0_init(void)printk (KERN_INFO "S5P64X0(S5P6440/S5P6450): Initializing architecture\n" );/* set idle function */ - pm_idle = s5p64x0_idle; + arm_pm_idle = s5p64x0_idle;return sysdev_register (&s5p64x0_sysdev); }
Signature · 1 line
1.7.7.1.431.g10b2a
Tony Lindgren
maintainerPATCH 1/20 ARM: clean up idle handlers
Quoted 14 lines · Nicolas Pitre
Let's factor out the
need_resched()check instead of having it duplicated in everypm_idleimplementations to avoid inconsistencies (omap2_pm_idlewas missing it already).The forceful re-enablement of IRQs after
pm_idlehas returned can go. The warning certainly doesn't trigger for existing users. Similar for the redundantlocal_irq_disable()call in the OMAP implementations.To get rid of the
pm_idlecalling convention oddity, let's introducearm_pm_idle()allowing for thelocal_irq_enable()to be factored out from SOC specific implementations. The defaultpm_idlefunction becomes a wrapper forarm_pm_idleand it takes care of enabling IRQs closer to where they are initially disabled.
Quoted 4 lines
And finally move the comment explaining the reason for that turning off of IRQs to a more proper location.
Signed-off-by Nicolas Pitre <[email protected]>
For omaps:
For pm44xx.c the following merge will be needed for omap/omap4 branch in arm-soc tree:
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@@ -16,10 -17,10 +17,12 @@@
#include <linux/err.h>
#include <linux/slab.h>
+#include <asm/system.h>
+
#include "common.h"
+ #include "clockdomain.h"
#include "powerdomain.h"
+ #include "pm.h"
struct power_state {
struct powerdomain *pwrdm;
@@@ -85,11 -161,30 +163,24 @@@ static int __init pwrdms_setup(struct p
pwrst = kmalloc(sizeof(struct power_state), GFP_ATOMIC); if (!pwrst)
return -ENOMEM;
+
pwrst->pwrdm = pwrdm;
- pwrst->next_state = PWRDM_POWER_ON;
+ pwrst->next_state = PWRDM_POWER_RET;
list_add(&pwrst->node, &pwrst_list);
- return pwrdm_set_next_pwrst(pwrst->pwrdm, pwrst->next_state);
+ return omap_set_pwrdm_state(pwrst->pwrdm, pwrst->next_state);
+ }
+
+ /**
+ * omap_default_idle - OMAP4 default ilde routine.' + * + * Implements OMAP4 memory, IO ordering requirements which can't be addressed + * with default arch_idle() hook. Used by all CPUs with !CONFIG_CPUIDLE and + * by secondary CPU with CONFIG_CPUIDLE. + */
+ static void omap_default_idle(void)
+ {
- local_irq_disable();
- local_fiq_disable();
-
+ omap_do_wfi();
-
- local_fiq_enable();
- local_irq_enable();
}
/**
@@@ -117,6 -255,11 +251,11 @@@ static int __init omap4_pm_init(void
suspend_set_ops(&omap_pm_ops);
#endif /* CONFIG_SUSPEND */
+ /* Overwrite the default arch_idle() */
- pm_idle = omap_default_idle;
++ arm_pm_idle = omap_default_idle;
+
+ omap4_idle_init();
+
err2:
return ret;
}
Regards,
Tony
PATCH 1/20 ARM: clean up idle handlers
Quoted 15 lines · Tony Lindgren
Quoted 14 lines · Nicolas Pitre
Let's factor out the
need_resched()check instead of having it duplicated in everypm_idleimplementations to avoid inconsistencies (omap2_pm_idlewas missing it already).The forceful re-enablement of IRQs after
pm_idlehas returned can go. The warning certainly doesn't trigger for existing users. Similar for the redundantlocal_irq_disable()call in the OMAP implementations.To get rid of the
pm_idlecalling convention oddity, let's introducearm_pm_idle()allowing for thelocal_irq_enable()to be factored out from SOC specific implementations. The defaultpm_idlefunction becomes a wrapper forarm_pm_idleand it takes care of enabling IRQs closer to where they are initially disabled.
Quoted 8 lines
Quoted 4 lines
And finally move the comment explaining the reason for that turning off of IRQs to a more proper location.
Signed-off-by Nicolas Pitre <[email protected]>For omaps:
Tested-by Tony Lindgren <[email protected]>
Thanks.
Quoted 2 lines
For
pm44xx.cthe following merge will be needed for omap/omap4 branch in arm-soc tree:
Great. I'm CC'ing Arnd and Olof so they are aware.
Quoted 67 lines
arch/arm/mach-omap2/pm44xx.c +22
-2@@@ -16,10 -17,10 +17,12 @@@#include <linux/err.h> #include <linux/slab.h> +#include <asm/system.h> +#include "common.h" +#include "clockdomain.h" #include "powerdomain.h" +#include "pm.h" struct power_state {struct powerdomain *pwrdm;@@@ -85,11 -161,30 +163,24 @@@ static int __init pwrdms_setup(struct p pwrst =kmalloc (sizeof (struct power_state ),GFP_ATOMIC );if (!pwrst)return -ENOMEM ; + pwrst->pwrdm = pwrdm; - pwrst->next_state =PWRDM_POWER_ON ; + pwrst->next_state =PWRDM_POWER_RET ;list_add (&pwrst->node, &pwrst_list); -return pwrdm_set_next_pwrst (pwrst->pwrdm, pwrst->next_state); +return omap_set_pwrdm_state (pwrst->pwrdm, pwrst->next_state); + } + +/** +* omap_default_idle - OMAP4 default ilde routine.' +* +* Implements OMAP4 memory, IO ordering requirements which can't be addressed +* with default arch_idle() hook. Used by all CPUs with !CONFIG_CPUIDLE and +* by secondary CPU with CONFIG_CPUIDLE. +*/ +static void omap_default_idle (void ) + { -local_irq_disable (); -local_fiq_disable (); - +omap_do_wfi (); - -local_fiq_enable (); -local_irq_enable (); }/** @@@ -117,6 -255,11 +251,11 @@@ static int __init omap4_pm_init(voidsuspend_set_ops (&omap_pm_ops);#endif /* CONFIG_SUSPEND */ +/* Overwrite the default arch_idle() */ - pm_idle = omap_default_idle; ++ arm_pm_idle = omap_default_idle; + +omap4_idle_init (); + err2:return ret; }Regards,
Tony
PATCH 1/20 ARM: clean up idle handlers
In reply to Nicolas PitreNicolas Pitre wrote at Monday, December 19, 2011 2:48 AM:
Quoted 14 lines
Let's factor out the
need_resched()check instead of having it duplicated in everypm_idleimplementations to avoid inconsistencies (omap2_pm_idlewas missing it already).The forceful re-enablement of IRQs after
pm_idlehas returned can go. The warning certainly doesn't trigger for existing users. Similar for the redundantlocal_irq_disable()call in the OMAP implementations.To get rid of the
pm_idlecalling convention oddity, let's introducearm_pm_idle()allowing for thelocal_irq_enable()to be factored out from SOC specific implementations. The defaultpm_idlefunction becomes a wrapper forarm_pm_idleand it takes care of enabling IRQs closer to where they are initially disabled.
Quoted 4 lines
And finally move the comment explaining the reason for that turning off of IRQs to a more proper location.
Signed-off-by Nicolas Pitre <[email protected]>
The parts which affect Tegra,
Also,
(which IIUC for Tegra means booting with these patches applied, and running nothing much so that the CPU is idle, since we don't yet support any power management)
Signature · 1 line
nvpublic
PATCH 1/20 ARM: clean up idle handlers
In reply to Nicolas PitreQuoted 18 lines · Nicolas Pitre
Let's factor out the
need_resched()check instead of having it duplicated in everypm_idleimplementations to avoid inconsistencies (omap2_pm_idlewas missing it already).The forceful re-enablement of IRQs after
pm_idlehas returned can go. The warning certainly doesn't trigger for existing users. Similar for the redundantlocal_irq_disable()call in the OMAP implementations.To get rid of the
pm_idlecalling convention oddity, let's introducearm_pm_idle()allowing for thelocal_irq_enable()to be factored out from SOC specific implementations. The defaultpm_idlefunction becomes a wrapper forarm_pm_idleand it takes care of enabling IRQs closer to where they are initially disabled.And finally move the comment explaining the reason for that turning off of IRQs to a more proper location.
Signed-off-by Nicolas Pitre <[email protected]>
Quoted 10 lines
--- arch/arm/include/asm/system.h | 1 + arch/arm/kernel/process.c | 23 +++++++++++++++-------- arch/arm/mach-omap1/pm.c | 19 ++++++------------- arch/arm/mach-omap2/pm24xx.c | 5 ++--- arch/arm/mach-omap2/pm34xx.c | 7 +++---- arch/arm/mach-omap2/pm44xx.c | 2 ++ arch/arm/mach-s5p64x0/cpu.c | 16 +++++++--------- 7 files changed, 36 insertions(+), 37 deletions(-)
There is one more since v3.2-rc4, imx5_idle() in arch/arm/mach-mx5/mm.c
Signature · 2 lines
Regards, Shawn
PATCH 1/20 ARM: clean up idle handlers
Quoted 29 lines · Shawn Guo
Quoted 18 lines · Nicolas Pitre
Let's factor out the
need_resched()check instead of having it duplicated in everypm_idleimplementations to avoid inconsistencies (omap2_pm_idlewas missing it already).The forceful re-enablement of IRQs after
pm_idlehas returned can go. The warning certainly doesn't trigger for existing users. Similar for the redundantlocal_irq_disable()call in the OMAP implementations.To get rid of the
pm_idlecalling convention oddity, let's introducearm_pm_idle()allowing for thelocal_irq_enable()to be factored out from SOC specific implementations. The defaultpm_idlefunction becomes a wrapper forarm_pm_idleand it takes care of enabling IRQs closer to where they are initially disabled.And finally move the comment explaining the reason for that turning off of IRQs to a more proper location.
Signed-off-by Nicolas Pitre <[email protected]>Quoted 10 lines
--- arch/arm/include/asm/system.h | 1 + arch/arm/kernel/process.c | 23 +++++++++++++++-------- arch/arm/mach-omap1/pm.c | 19 ++++++------------- arch/arm/mach-omap2/pm24xx.c | 5 ++--- arch/arm/mach-omap2/pm34xx.c | 7 +++---- arch/arm/mach-omap2/pm44xx.c | 2 ++ arch/arm/mach-s5p64x0/cpu.c | 16 +++++++--------- 7 files changed, 36 insertions(+), 37 deletions(-)
Quoted 2 lines
There is one more since v3.2-rc4,
imx5_idle()inarch/arm/mach-mx5/mm.c
And imx3_idle() in arch/arm/mach-imx/mm-imx3.c
Signature · 2 lines
Regards, Shawn
PATCH 1/20 ARM: clean up idle handlers
Quoted 30 lines · Shawn Guo
Quoted 29 lines · Shawn Guo
Quoted 28 lines · Nicolas Pitre
Let's factor out the
need_resched()check instead of having it duplicated in everypm_idleimplementations to avoid inconsistencies (omap2_pm_idlewas missing it already).The forceful re-enablement of IRQs after
pm_idlehas returned can go. The warning certainly doesn't trigger for existing users. Similar for the redundantlocal_irq_disable()call in the OMAP implementations.To get rid of the
pm_idlecalling convention oddity, let's introducearm_pm_idle()allowing for thelocal_irq_enable()to be factored out from SOC specific implementations. The defaultpm_idlefunction becomes a wrapper forarm_pm_idleand it takes care of enabling IRQs closer to where they are initially disabled.And finally move the comment explaining the reason for that turning off of IRQs to a more proper location.
Signed-off-by Nicolas Pitre <[email protected]>--- arch/arm/include/asm/system.h | 1 + arch/arm/kernel/process.c | 23 +++++++++++++++-------- arch/arm/mach-omap1/pm.c | 19 ++++++------------- arch/arm/mach-omap2/pm24xx.c | 5 ++--- arch/arm/mach-omap2/pm34xx.c | 7 +++---- arch/arm/mach-omap2/pm44xx.c | 2 ++ arch/arm/mach-s5p64x0/cpu.c | 16 +++++++--------- 7 files changed, 36 insertions(+), 37 deletions(-)
Quoted 3 lines
Quoted 2 lines
There is one more since v3.2-rc4,
imx5_idle()inarch/arm/mach-mx5/mm.cAnd
imx3_idle()inarch/arm/mach-imx/mm-imx3.c
OK. Again, Ill see to them when I rebase.
Nicolas
PATCH 2/20 ARM: mach-s5pv210: use standard arch_idle()
In reply to Nicolas PitreThis is equivalent and more similar to existing architectures.
--- arch/arm/mach-s5pv210/cpu.c | 12 ------------ arch/arm/mach-s5pv210/include/mach/system.h | 2 +- 2 files changed, 1 insertions(+), 13 deletions(-)
arch/arm/mach-s5pv210/cpu.c +0 -12
@@ -99,14 +99,6 @@ static struct map_desc s5pv210_iodesc[] __initdata = { } }; -static void s5pv210_idle (void ) -{ -if (!need_resched ()) -cpu_do_idle (); - -local_irq_enable (); -} -void s5pv210_restart (char mode,const char *cmd) {__raw_writel (0x1 ,S5P_SWRESET );
@@ -191,9 +183,5 @@ core_initcall(s5pv210_core_init);int __init s5pv210_init (void ) {printk (KERN_INFO "S5PV210: Initializing architecture\n" ); - -/* set idle function */ - pm_idle = s5pv210_idle; -return sysdev_register (&s5pv210_sysdev); }
arch/arm/mach-s5pv210/include/mach/system.h +1 -1
@@ -17,7 +17,7 @@static void arch_idle (void ) { -/* nothing here yet */ +cpu_do_idle (); }#endif /* __ASM_ARCH_SYSTEM_H */
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 3/20 ARM: mach-s5pc100: use standard arch_idle()
In reply to Nicolas PitreThis is equivalent and more similar to existing architectures.
--- arch/arm/mach-s5pc100/cpu.c | 12 ------------ arch/arm/mach-s5pc100/include/mach/system.h | 2 +- 2 files changed, 1 insertions(+), 13 deletions(-)
arch/arm/mach-s5pc100/cpu.c +0 -12
@@ -92,14 +92,6 @@ static struct map_desc s5pc100_iodesc[] __initdata = { } }; -static void s5pc100_idle (void ) -{ -if (!need_resched ()) -cpu_do_idle (); - -local_irq_enable (); -} -/* s5pc100_map_io * * register the standard cpu IO areas
@@ -161,9 +153,5 @@ core_initcall(s5pc100_core_init);int __init s5pc100_init (void ) {printk (KERN_INFO "S5PC100: Initializing architecture\n" ); - -/* set idle function */ - pm_idle = s5pc100_idle; -return sysdev_register (&s5pc100_sysdev); }
arch/arm/mach-s5pc100/include/mach/system.h +1 -1
@@ -15,7 +15,7 @@static void arch_idle (void ) { -/* nothing here yet */ +cpu_do_idle (); }#endif /* __ASM_ARCH_IRQ_H */
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 4/20 ARM: mach-exynos: use standard arch_idle()
In reply to Nicolas PitreThis is equivalent and more similar to existing architectures.
--- arch/arm/mach-exynos/cpu.c | 12 ------------ arch/arm/mach-exynos/include/mach/system.h | 2 +- 2 files changed, 1 insertions(+), 13 deletions(-)
arch/arm/mach-exynos/cpu.c +0 -12
@@ -140,14 +140,6 @@ static struct map_desc exynos4_iodesc1[] __initdata = { }, }; -static void exynos_idle (void ) -{ -if (!need_resched ()) -cpu_do_idle (); - -local_irq_enable (); -} -void exynos4_restart (char mode,const char *cmd) {__raw_writel (0x1 ,S5P_SWRESET );
@@ -285,9 +277,5 @@ early_initcall(exynos4_l2x0_cache_init);int __init exynos_init (void ) {printk (KERN_INFO "EXYNOS: Initializing architecture\n" ); - -/* set idle function */ - pm_idle = exynos_idle; -return sysdev_register (&exynos4_sysdev); }
arch/arm/mach-exynos/include/mach/system.h +1 -1
@@ -17,6 +17,6 @@static void arch_idle (void ) { -/* nothing here yet */ +cpu_do_idle (); }#endif /* __ASM_ARCH_SYSTEM_H */
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 5/20 ARM: mach-at91: move special idle code out of line
In reply to Nicolas Pitre... and hook it to arm_pm_idle.
--- arch/arm/mach-at91/at91cap9.c | 8 ++++++++ arch/arm/mach-at91/at91rm9200.c | 10 ++++++++++ arch/arm/mach-at91/at91sam9260.c | 8 ++++++++ arch/arm/mach-at91/at91sam9261.c | 8 ++++++++ arch/arm/mach-at91/at91sam9263.c | 8 ++++++++ arch/arm/mach-at91/at91sam9g45.c | 7 +++++++ arch/arm/mach-at91/at91sam9rl.c | 8 ++++++++ arch/arm/mach-at91/at91x40.c | 12 ++++++++++++ arch/arm/mach-at91/include/mach/system.h | 21 --------------------- 9 files changed, 69 insertions(+), 21 deletions(-)
arch/arm/mach-at91/at91cap9.c +8 -0
@@ -15,6 +15,7 @@#include <linux/module.h> #include <linux/pm.h> +#include <asm/proc-fns.h> #include <asm/irq.h> #include <asm/mach/arch.h> #include <asm/mach/map.h>
@@ -313,6 +314,12 @@ static struct at91_gpio_bank at91cap9_gpio[] = { } }; +static void at91cap9_idle (void ) +{ +at91_sys_write (AT91_PMC_SCDR ,AT91_PMC_PCK ); +cpu_do_idle (); +} +static void at91cap9_restart (char mode,const char *cmd) {at91_sys_write (AT91_RSTC_CR ,AT91_RSTC_KEY |AT91_RSTC_PROCRST |AT91_RSTC_PERRST );
@@ -335,6 +342,7 @@ static void __init at91cap9_map_io(void)static void __init at91cap9_initialize (void ) { + arm_pm_idle = at91cap9_idle; arm_pm_restart = at91cap9_restart; pm_power_off = at91cap9_poweroff; at91_extern_irq = (1 <<AT91CAP9_ID_IRQ0 ) | (1 <<AT91CAP9_ID_IRQ1 );
arch/arm/mach-at91/at91rm9200.c +10 -0
@@ -288,6 +288,15 @@ static struct at91_gpio_bank at91rm9200_gpio[] = { } }; +static void at91rm9200_idle (void ) +{ +/* +* Disable the processor clock. The processor will be automatically +* re-enabled by an interrupt or by a reset. +*/ +at91_sys_write (AT91_PMC_SCDR ,AT91_PMC_PCK ); +} +static void at91rm9200_restart (char mode,const char *cmd) {/*
@@ -309,6 +318,7 @@ static void __init at91rm9200_map_io(void)static void __init at91rm9200_initialize (void ) { + arm_pm_idle = at91rm9200_idle; arm_pm_restart = at91rm9200_restart; at91_extern_irq = (1 <<AT91RM9200_ID_IRQ0 ) | (1 <<AT91RM9200_ID_IRQ1 ) | (1 <<AT91RM9200_ID_IRQ2 ) | (1 <<AT91RM9200_ID_IRQ3 )
arch/arm/mach-at91/at91sam9260.c +8 -0
@@ -13,6 +13,7 @@#include <linux/module.h> #include <linux/pm.h> +#include <asm/proc-fns.h> #include <asm/irq.h> #include <asm/mach/arch.h> #include <asm/mach/map.h>
@@ -325,8 +326,15 @@ static void __init at91sam9260_map_io(void) } } +static void at91sam9260_idle (void ) +{ +at91_sys_write (AT91_PMC_SCDR ,AT91_PMC_PCK ); +cpu_do_idle (); +} +static void __init at91sam9260_initialize (void ) { + arm_pm_idle = at91sam9260_idle; arm_pm_restart = at91sam9_alt_restart; pm_power_off = at91sam9260_poweroff; at91_extern_irq = (1 <<AT91SAM9260_ID_IRQ0 ) | (1 <<AT91SAM9260_ID_IRQ1 )
arch/arm/mach-at91/at91sam9261.c +8 -0
@@ -13,6 +13,7 @@#include <linux/module.h> #include <linux/pm.h> +#include <asm/proc-fns.h> #include <asm/irq.h> #include <asm/mach/arch.h> #include <asm/mach/map.h>
@@ -285,8 +286,15 @@ static void __init at91sam9261_map_io(void)at91_init_sram (0 ,AT91SAM9261_SRAM_BASE ,AT91SAM9261_SRAM_SIZE ); } +static void at91sam9261_idle (void ) +{ +at91_sys_write (AT91_PMC_SCDR ,AT91_PMC_PCK ); +cpu_do_idle (); +} +static void __init at91sam9261_initialize (void ) { + arm_pm_idle = at91sam9261_idle; arm_pm_restart = at91sam9_alt_restart; pm_power_off = at91sam9261_poweroff; at91_extern_irq = (1 <<AT91SAM9261_ID_IRQ0 ) | (1 <<AT91SAM9261_ID_IRQ1 )
arch/arm/mach-at91/at91sam9263.c +8 -0
@@ -13,6 +13,7 @@#include <linux/module.h> #include <linux/pm.h> +#include <asm/proc-fns.h> #include <asm/irq.h> #include <asm/mach/arch.h> #include <asm/mach/map.h>
@@ -303,8 +304,15 @@ static void __init at91sam9263_map_io(void)at91_init_sram (1 ,AT91SAM9263_SRAM1_BASE ,AT91SAM9263_SRAM1_SIZE ); } +static void at91sam9263_idle (void ) +{ +at91_sys_write (AT91_PMC_SCDR ,AT91_PMC_PCK ); +cpu_do_idle (); +} +static void __init at91sam9263_initialize (void ) { + arm_pm_idle = at91sam9263_idle; arm_pm_restart = at91sam9_alt_restart; pm_power_off = at91sam9263_poweroff; at91_extern_irq = (1 <<AT91SAM9263_ID_IRQ0 ) | (1 <<AT91SAM9263_ID_IRQ1 );
arch/arm/mach-at91/at91sam9g45.c +7 -0
@@ -317,6 +317,12 @@ static struct at91_gpio_bank at91sam9g45_gpio[] = { } }; +static void at91sam9g45_idle (void ) +{ +at91_sys_write (AT91_PMC_SCDR ,AT91_PMC_PCK ); +cpu_do_idle (); +} +static void at91sam9g45_restart (char mode,const char *cmd) {at91_sys_write (AT91_RSTC_CR ,AT91_RSTC_KEY |AT91_RSTC_PROCRST |AT91_RSTC_PERRST );
@@ -340,6 +346,7 @@ static void __init at91sam9g45_map_io(void)static void __init at91sam9g45_initialize (void ) { + arm_pm_idle = at91sam9g45_idle; arm_pm_restart = at91sam9g45_restart; pm_power_off = at91sam9g45_poweroff; at91_extern_irq = (1 <<AT91SAM9G45_ID_IRQ0 );
arch/arm/mach-at91/at91sam9rl.c +8 -0
@@ -12,6 +12,7 @@#include <linux/module.h> #include <linux/pm.h> +#include <asm/proc-fns.h> #include <asm/irq.h> #include <asm/mach/arch.h> #include <asm/mach/map.h>
@@ -290,8 +291,15 @@ static void __init at91sam9rl_map_io(void)at91_init_sram (0 ,AT91SAM9RL_SRAM_BASE , sram_size); } +static void at91sam9rl_idle (void ) +{ +at91_sys_write (AT91_PMC_SCDR ,AT91_PMC_PCK ); +cpu_do_idle (); +} +static void __init at91sam9rl_initialize (void ) { + arm_pm_idle = at91sam9rl_idle; arm_pm_restart = at91sam9_alt_restart; pm_power_off = at91sam9rl_poweroff; at91_extern_irq = (1 <<AT91SAM9RL_ID_IRQ0 );
arch/arm/mach-at91/at91x40.c +12 -0
@@ -13,6 +13,7 @@#include <linux/kernel.h> #include <linux/init.h> #include <linux/irq.h> +#include <asm/proc-fns.h> #include <asm/mach/arch.h> #include <mach/at91x40.h> #include <mach/at91_st.h>
@@ -37,8 +38,19 @@ unsigned long clk_get_rate(struct clk *clk)return AT91X40_MASTER_CLOCK ; } +static void at91x40_idle (void ) +{ +/* +* Disable the processor clock. The processor will be automatically +* re-enabled by an interrupt or by a reset. +*/ +at91_sys_write (AT91_PS_CR ,AT91_PS_CR_CPU ); +cpu_do_idle (); +} +void __init at91x40_initialize (unsigned long main_clock) { + arm_pm_idle = at91x40_idle; at91_extern_irq = (1 <<AT91X40_ID_IRQ0 ) | (1 <<AT91X40_ID_IRQ1 ) | (1 <<AT91X40_ID_IRQ2 ); }
arch/arm/mach-at91/include/mach/system.h +0 -21
@@ -21,30 +21,9 @@#ifndef __ASM_ARCH_SYSTEM_H#define __ASM_ARCH_SYSTEM_H -#include <mach/hardware.h> -#include <mach/at91_st.h> -#include <mach/at91_dbgu.h> -#include <mach/at91_pmc.h> -static inline void arch_idle (void ) { -/* -* Disable the processor clock. The processor will be automatically -* re-enabled by an interrupt or by a reset. -*/ -#ifdef AT91_PS -at91_sys_write (AT91_PS_CR ,AT91_PS_CR_CPU ); -#else -at91_sys_write (AT91_PMC_SCDR ,AT91_PMC_PCK ); -#endif -#ifndef CONFIG_CPU_ARM920T -/* -* Set the processor (CP15) into 'Wait for Interrupt' mode. -* Post-RM9200 processors need this in conjunction with the above -* to save power when idle. -*/ cpu_do_idle (); -#endif }#endif
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 6/20 ARM: mach-clps711x: move special idle code out of line
In reply to Nicolas Pitre... and hook it to arm_pm_idle.
--- arch/arm/mach-clps711x/common.c | 16 ++++++++++++++++ arch/arm/mach-clps711x/include/mach/system.h | 5 +---- 2 files changed, 17 insertions(+), 4 deletions(-)
arch/arm/mach-clps711x/common.c +16 -0
@@ -225,3 +225,19 @@ void clps711x_restart(char mode, const char *cmd) {soft_restart (0 ); } + +static void clps711x_idle (void ) +{ +clps_writel (1 ,HALT ); + __asm__ __volatile__( +"mov r0, r0\n\ +mov r0, r0" ); +} + +static int __init clps711x_idle_init (void ) +{ + arm_pm_idle = clps711x_idle; +return 0 ; +} + +arch_initcall (clps711x_idle_init);
arch/arm/mach-clps711x/include/mach/system.h +1 -4
@@ -26,10 +26,7 @@static inline void arch_idle (void ) { -clps_writel (1 ,HALT ); - __asm__ __volatile__( -"mov r0, r0\n\ -mov r0, r0" ); +cpu_do_idle (); }#endif
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 7/20 ARM: mach-ebsa110: move special idle code out of line
In reply to Nicolas Pitre... and hook it to arm_pm_idle.
--- arch/arm/mach-ebsa110/core.c | 25 +++++++++++++++++++++++++ arch/arm/mach-ebsa110/include/mach/system.h | 21 +-------------------- 2 files changed, 26 insertions(+), 20 deletions(-)
arch/arm/mach-ebsa110/core.c +25 -0
@@ -271,8 +271,33 @@ static struct platform_device *ebsa110_devices[] = { &am79c961_device, }; +/* +* EBSA110 idling methodology: +* +* We can not execute the "wait for interrupt" instruction since that +* will stop our MCLK signal (which provides the clock for the glue +* logic, and therefore the timer interrupt). +* +* Instead, we spin, polling the IRQ_STAT register for the occurrence +* of any interrupt with core clock down to the memory clock. +*/ +static void ebsa110_idle (void ) +{ +const char *irq_stat = (char *)0xff000000 ; + +/* disable clock switching */ + asmvolatile ("mcr p15, 0, ip, c15, c2, 2" : : :"cc" ); + +/* wait for an interrupt to occur */ +while (!*irq_stat); + +/* enable clock switching */ + asmvolatile ("mcr p15, 0, ip, c15, c1, 2" : : :"cc" ); +} +static int __init ebsa110_init (void ) { + arm_pm_idle = ebsa110_idle;return platform_add_devices (ebsa110_devices,ARRAY_SIZE (ebsa110_devices)); }
arch/arm/mach-ebsa110/include/mach/system.h +1 -20
@@ -10,28 +10,9 @@#ifndef __ASM_ARCH_SYSTEM_H#define __ASM_ARCH_SYSTEM_H -/* -* EBSA110 idling methodology: -* -* We can not execute the "wait for interrupt" instruction since that -* will stop our MCLK signal (which provides the clock for the glue -* logic, and therefore the timer interrupt). -* -* Instead, we spin, polling the IRQ_STAT register for the occurrence -* of any interrupt with core clock down to the memory clock. -*/ static inline void arch_idle (void ) { -const char *irq_stat = (char *)0xff000000 ; - -/* disable clock switching */ - asmvolatile ("mcr p15, 0, ip, c15, c2, 2" : : :"cc" ); - -/* wait for an interrupt to occur */ -while (!*irq_stat); - -/* enable clock switching */ - asmvolatile ("mcr p15, 0, ip, c15, c1, 2" : : :"cc" ); +cpu_do_idle (); }#endif
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 8/20 ARM: mach-gemini: move special idle code out of line
In reply to Nicolas Pitre... and hook it to arm_pm_idle.
--- arch/arm/mach-gemini/Makefile | 2 +- arch/arm/mach-gemini/idle.c | 29 ++++++++++++++++++++++++++++ arch/arm/mach-gemini/include/mach/system.h | 9 -------- arch/arm/mach-gemini/irq.c | 4 +- 4 files changed, 32 insertions(+), 12 deletions(-) create mode 100644 arch/arm/mach-gemini/idle.c
arch/arm/mach-gemini/Makefile +1 -1
@@ -4,7 +4,7 @@ # Object file lists. -obj-y := irq.o mm.o time.o devices.o gpio.o +obj-y := irq.o mm.o time.o devices.o gpio.o idle.o # Board-specific support obj-$(CONFIG_MACH_NAS4220B) += board-nas4220b.o
arch/arm/mach-gemini/idle.c new file +29 -0
@@ -0,0 +1,29 @@ +/* +* arch/arm/mach-gemini/idle.c +*/ + +#include <linux/init.h> +#include <asm/system.h> +#include <asm/proc-fns.h> + +static void gemini_idle (void ) +{ +/* +* Because of broken hardware we have to enable interrupts or the CPU +* will never wakeup... Acctualy it is not very good to enable +* interrupts first since scheduler can miss a tick, but there is +* no other way around this. Platforms that needs it for power saving +* should call enable_hlt() in init code, since by default it is +* disabled. +*/ +local_irq_enable (); +cpu_do_idle (); +} + +static int __init gemini_idle_init (void ) +{ + arm_pm_idle = gemini_idle; +return 0 ; +} + +arch_initcall (gemini_idle_init);
arch/arm/mach-gemini/include/mach/system.h +0 -9
@@ -12,15 +12,6 @@static inline void arch_idle (void ) { -/* -* Because of broken hardware we have to enable interrupts or the CPU -* will never wakeup... Acctualy it is not very good to enable -* interrupts here since scheduler can miss a tick, but there is -* no other way around this. Platforms that needs it for power saving -* should call enable_hlt() in init code, since by default it is -* disabled. -*/ -local_irq_enable ();cpu_do_idle (); }
arch/arm/mach-gemini/irq.c +2 -2
@@ -73,8 +73,8 @@ void __init gemini_init_irq(void)unsigned int i, mode =0 , level =0 ;/* -* Disable arch_idle() by default since it is buggy -* For more info see arch/arm/mach-gemini/include/mach/system.h +* Disable the idle handler by default since it is buggy +* For more info see arch/arm/mach-gemini/idle.c */ disable_hlt ();
Signature · 1 line
1.7.7.1.431.g10b2a
Tony Lindgren
maintainerPATCH 8/20 ARM: mach-gemini: move special idle code out of line
arch/arm/mach-gemini/irq.c void __init gemini_init_irq(void) · line 79
Quoted 12 lines · Nicolas Pitre
arch/arm/mach-gemini/irq.c +2
-2@@ -73,8 +73,8 @@ void __init gemini_init_irq(void)unsigned int i, mode =0 , level =0 ;/* -* Disable arch_idle() by default since it is buggy -* For more info see arch/arm/mach-gemini/include/mach/system.h +* Disable the idle handler by default since it is buggy +* For more info see arch/arm/mach-gemini/idle.c */ disable_hlt ();
FYI while applying using stg, got a "<stdin>:88: trailing whitespace." error here.
Tony
PATCH 9/20 ARM: mach-h720x: move special idle code out of line
In reply to Nicolas Pitre... and hook it to arm_pm_idle.
--- arch/arm/mach-h720x/common.c | 18 ++++++++++++++++++ arch/arm/mach-h720x/include/mach/system.h | 7 +------ 2 files changed, 19 insertions(+), 6 deletions(-)
arch/arm/mach-h720x/common.c +18 -0
@@ -247,3 +247,21 @@ void h720x_restart(char mode, const char *cmd) {CPU_REG (PMU_BASE ,PMU_STAT ) |=PMU_WARMRESET ; } + +static void h720x__idle (void ) +{ +CPU_REG (PMU_BASE ,PMU_MODE ) =PMU_MODE_IDLE ; +nop (); +nop (); +CPU_REG (PMU_BASE ,PMU_MODE ) =PMU_MODE_RUN ; +nop (); +nop (); +} + +static int __init h720x_idle_init (void ) +{ + arm_pm_idle = h720x__idle; +return 0 ; +} + +arch_initcall (h720x_idle_init);
arch/arm/mach-h720x/include/mach/system.h +1 -6
@@ -16,12 +16,7 @@static void arch_idle (void ) { -CPU_REG (PMU_BASE ,PMU_MODE ) =PMU_MODE_IDLE ; -nop (); -nop (); -CPU_REG (PMU_BASE ,PMU_MODE ) =PMU_MODE_RUN ; -nop (); -nop (); +cpu_do_idle (); }#endif
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 10/20 ARM: s3c24xx: move special idle code to out of line
In reply to Nicolas Pitre... and hook it to arm_pm_idle.
--- arch/arm/mach-s3c2410/include/mach/system.h | 34 +-------------------------- arch/arm/mach-s3c2412/s3c2412.c | 3 +- arch/arm/mach-s3c2416/s3c2416.c | 2 - arch/arm/plat-s3c24xx/cpu.c | 27 +++++++++++++++++++++ 4 files changed, 29 insertions(+), 37 deletions(-)
arch/arm/mach-s3c2410/include/mach/system.h +1 -33
@@ -14,45 +14,13 @@#include <mach/hardware.h> #include <mach/map.h> -#include <mach/idle.h> #include <mach/reset.h> -#include <mach/regs-clock.h> - -void (*s3c24xx_idle)(void );void (*s3c24xx_reset_hook)(void ); -void s3c24xx_default_idle (void ) -{ -unsigned long tmp; -int i; - -/* idle the system by using the idle mode which will wait for an -* interrupt to happen before restarting the system. -*/ - -/* Warning: going into idle state upsets jtag scanning */ - -__raw_writel (__raw_readl (S3C2410_CLKCON ) |S3C2410_CLKCON_IDLE , -S3C2410_CLKCON ); - -/* the samsung port seems to do a loop and then unset idle.. */ -for (i =0 ; i <50 ; i++) { - tmp +=__raw_readl (S3C2410_CLKCON );/* ensure loop not optimised out */ - } - -/* this bit is not cleared on re-start... */ - -__raw_writel (__raw_readl (S3C2410_CLKCON ) & ~S3C2410_CLKCON_IDLE , -S3C2410_CLKCON ); -} -static void arch_idle (void ) { -if (s3c24xx_idle !=NULL ) - (s3c24xx_idle)(); -else -s3c24xx_default_idle (); +cpu_do_idle (); }#include <mach/system-reset.h>
arch/arm/mach-s3c2412/s3c2412.c +1 -2
@@ -33,7 +33,6 @@#include <asm/irq.h> #include <mach/reset.h> -#include <mach/idle.h> #include <plat/cpu-freq.h>
@@ -162,7 +161,7 @@ void __init s3c2412_map_io(void)/* set our idle function */ - s3c24xx_idle = s3c2412_idle; + arm_pm_idle = s3c2412_idle;/* set custom reset hook */
arch/arm/mach-s3c2416/s3c2416.c +0 -2
@@ -45,7 +45,6 @@#include <asm/irq.h> #include <mach/reset.h> -#include <mach/idle.h> #include <mach/regs-s3c2443-clock.h> #include <plat/gpio-core.h>
@@ -86,7 +85,6 @@ int __init s3c2416_init(void)printk (KERN_INFO "S3C2416: Initializing architecture\n" ); s3c24xx_reset_hook = s3c2416_hard_reset; -/* s3c24xx_idle = s3c2416_idle; */ /* change WDT IRQ number */ s3c_device_wdt.resource[1 ].start =IRQ_S3C2443_WDT ;
arch/arm/plat-s3c24xx/cpu.c +27 -0
@@ -32,6 +32,7 @@#include <linux/io.h> #include <mach/hardware.h> +#include <mach/regs-clock.h> #include <asm/irq.h> #include <asm/cacheflush.h>
@@ -192,8 +193,34 @@ static unsigned long s3c24xx_read_idcode_v4(void)return __raw_readl (S3C2410_GSTATUS1 ); } +static void s3c24xx_default_idle (void ) +{ +unsigned long tmp; +int i; + +/* idle the system by using the idle mode which will wait for an +* interrupt to happen before restarting the system. +*/ + +/* Warning: going into idle state upsets jtag scanning */ + +__raw_writel (__raw_readl (S3C2410_CLKCON ) |S3C2410_CLKCON_IDLE , +S3C2410_CLKCON ); + +/* the samsung port seems to do a loop and then unset idle.. */ +for (i =0 ; i <50 ; i++) + tmp +=__raw_readl (S3C2410_CLKCON );/* ensure loop not optimised out */ + +/* this bit is not cleared on re-start... */ + +__raw_writel (__raw_readl (S3C2410_CLKCON ) & ~S3C2410_CLKCON_IDLE , +S3C2410_CLKCON ); +} +void __init s3c24xx_init_io (struct map_desc *mach_desc,int size) { + arm_pm_idle = s3c24xx_default_idle; +/* initialise the io descriptors we need for initialisation */ iotable_init (mach_desc, size);iotable_init (s3c_iodesc,ARRAY_SIZE (s3c_iodesc));
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 11/20 ARM: plat-mxc: hook special idle handlers to arm_pm_idle
In reply to Nicolas Pitre... and remove redundant include of <mach/system.h>.
--- arch/arm/mach-imx/mm-imx3.c | 4 ++-- arch/arm/mach-imx/pm-imx27.c | 3 +-- arch/arm/mach-mx5/mm.c | 2 +- arch/arm/mach-mxs/pm.c | 3 +-- arch/arm/plat-mxc/include/mach/common.h | 1 - arch/arm/plat-mxc/include/mach/system.h | 7 +------ arch/arm/plat-mxc/system.c | 1 - 7 files changed, 6 insertions(+), 15 deletions(-)
arch/arm/mach-imx/mm-imx3.c +2 -2
@@ -143,8 +143,8 @@ void __init imx31_init_early(void) {mxc_set_cpu_type (MXC_CPU_MX31 );mxc_arch_reset_init (MX31_IO_ADDRESS (MX31_WDOG_BASE_ADDR )); - imx_idle = imx3_idle; imx_ioremap = imx3_ioremap; + arm_pm_idle = imx3_idle; }void __init imx35_init_early (void )
@@ -152,8 +152,8 @@ void __init imx35_init_early(void)mxc_set_cpu_type (MXC_CPU_MX35 );mxc_iomux_v3_init (MX35_IO_ADDRESS (MX35_IOMUXC_BASE_ADDR ));mxc_arch_reset_init (MX35_IO_ADDRESS (MX35_WDOG_BASE_ADDR )); - imx_idle = imx3_idle; imx_ioremap = imx3_ioremap; + arm_pm_idle = imx3_idle; }void __init mx31_init_irq (void )
arch/arm/mach-imx/pm-imx27.c +1 -2
@@ -10,7 +10,6 @@#include <linux/kernel.h> #include <linux/suspend.h> #include <linux/io.h> -#include <mach/system.h> #include <mach/hardware.h> static int mx27_suspend_enter (suspend_state_t state)
@@ -23,7 +22,7 @@ static int mx27_suspend_enter(suspend_state_t state) cscr &=0xFFFFFFFC ;__raw_writel (cscr,MX27_IO_ADDRESS (MX27_CCM_BASE_ADDR ));/* Executes WFI */ -arch_idle (); +cpu_do_idle ();break ;default :
arch/arm/mach-mx5/mm.c +1 -1
@@ -89,7 +89,7 @@ void __init imx51_init_early(void)mxc_set_cpu_type (MXC_CPU_MX51 );mxc_iomux_v3_init (MX51_IO_ADDRESS (MX51_IOMUXC_BASE_ADDR ));mxc_arch_reset_init (MX51_IO_ADDRESS (MX51_WDOG1_BASE_ADDR )); - imx_idle = imx5_idle; + arm_pm_idle = imx5_idle; }void __init imx53_init_early (void )
arch/arm/mach-mxs/pm.c +1 -2
@@ -15,13 +15,12 @@#include <linux/kernel.h> #include <linux/suspend.h> #include <linux/io.h> -#include <mach/system.h> static int mxs_suspend_enter (suspend_state_t state) {switch (state) {case PM_SUSPEND_MEM : -arch_idle (); +cpu_do_idle ();break ;default :
arch/arm/plat-mxc/include/mach/common.h +0 -1
@@ -85,7 +85,6 @@ enum mxc_cpu_pwr_mode { };extern void mx5_cpu_lp_set (enum mxc_cpu_pwr_mode mode); -extern void (*imx_idle)(void );extern void imx_print_silicon_rev (const char *cpu,int srev);void avic_handle_irq (struct pt_regs *);
arch/arm/plat-mxc/include/mach/system.h +1 -6
@@ -17,14 +17,9 @@#ifndef __ASM_ARCH_MXC_SYSTEM_H__#define __ASM_ARCH_MXC_SYSTEM_H__ -extern void (*imx_idle)(void ); -static inline void arch_idle (void ) { -if (imx_idle !=NULL ) - (imx_idle)(); -else -cpu_do_idle (); +cpu_do_idle (); }#endif /* __ASM_ARCH_MXC_SYSTEM_H__ */
arch/arm/plat-mxc/system.c +0 -1
@@ -28,7 +28,6 @@#include <asm/system.h> #include <asm/mach-types.h> -void (*imx_idle)(void ) =NULL ;void __iomem *(*imx_ioremap)(unsigned long ,size_t ,unsigned int ) =NULL ;static void __iomem *wdog_base;
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 11/20 ARM: plat-mxc: hook special idle handlers to arm_pm_idle
Hi Nico,
Quoted 7 lines · Nicolas Pitre
... and remove redundant include of <
mach/system.h>.Signed-off-by Nicolas Pitre <[email protected]>--- arch/arm/mach-imx/mm-imx3.c | 4 ++-- arch/arm/mach-imx/pm-imx27.c | 3 +-- arch/arm/mach-mx5/mm.c | 2 +-
The hook imx_idle has been removed since v3.2-rc4 as suggested by rmk, so the context is changed here.
Quoted 1 line
arch/arm/mach-mxs/pm.c | 3 +--
The mxs is a different sub-architecture/platform than imx/mxc, so it might be better to split it out.
Signature · 2 lines
Regards, Shawn
Quoted 5 lines
arch/arm/plat-mxc/include/mach/common.h | 1 - arch/arm/plat-mxc/include/mach/system.h | 7 +------ arch/arm/plat-mxc/system.c | 1 - 7 files changed, 6 insertions(+), 15 deletions(-)
PATCH 11/20 ARM: plat-mxc: hook special idle handlers to arm_pm_idle
Quoted 5 lines · Shawn Guo
Hi Nico,
Quoted 2 lines · Nicolas Pitre
... and remove redundant include of <
mach/system.h>.
Quoted 8 lines
Quoted 5 lines
Signed-off-by Nicolas Pitre <[email protected]>--- arch/arm/mach-imx/mm-imx3.c | 4 ++-- arch/arm/mach-imx/pm-imx27.c | 3 +-- arch/arm/mach-mx5/mm.c | 2 +-The hook
imx_idlehas been removed since v3.2-rc4 as suggested by rmk, so the context is changed here.
OK, will fix when I rebase.
Quoted 4 lines
Quoted 1 line
arch/arm/mach-mxs/pm.c | 3 +--The mxs is a different sub-architecture/platform than imx/mxc, so it might be better to split it out.
Yes, in fact it is best to fold that change in the patch called "ARM: substitute arch_idle()".
Nicolas
PATCH 12/20 ARM: mach-msm: hook special idle handlers to arm_pm_idle
In reply to Nicolas Pitre--- arch/arm/mach-msm/idle.S | 36 ---------------------- arch/arm/mach-msm/idle.c | 49 +++++++++++++++++++++++++++++++ arch/arm/mach-msm/include/mach/system.h | 5 ++- 3 files changed, 53 insertions(+), 37 deletions(-) delete mode 100644 arch/arm/mach-msm/idle.S create mode 100644 arch/arm/mach-msm/idle.c
arch/arm/mach-msm/idle.S deleted +0 -36
@@ -1,36 +0,0 @@ -/* arch/arm/mach-msm/include/mach/idle.S - * - * Idle processing for MSM7K - work around bugs with SWFI. - * - * Copyright (c) 2007 QUALCOMM Incorporated. - * Copyright (C) 2007 Google, Inc. - * - * This software is licensed under the terms of the GNU General Public - * License version 2, as published by the Free Software Foundation, and - * may be copied, distributed, and modified under those terms. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include <linux/linkage.h> -#include <asm/assembler.h> - -ENTRY(arch_idle) -#ifdef CONFIG_MSM7X00A_IDLE - mrc p15, 0, r1, c1, c0, 0 /* read current CR */ - bic r0, r1, #(1 << 2) /* clear dcache bit */ - bic r0, r0, #(1 << 12) /* clear icache bit */ - mcr p15, 0, r0, c1, c0, 0 /* disable d/i cache */ - - mov r0, #0 /* prepare wfi value */ - mcr p15, 0, r0, c7, c10, 0 /* flush the cache */ - mcr p15, 0, r0, c7, c10, 4 /* memory barrier */ - mcr p15, 0, r0, c7, c0, 4 /* wait for interrupt */ - - mcr p15, 0, r1, c1, c0, 0 /* restore d/i cache */ -#endif - mov pc, lr
arch/arm/mach-msm/idle.c new file +49 -0
49 lines not on this page · raw message
arch/arm/mach-msm/include/mach/system.h +4 -1
@@ -12,7 +12,10 @@* GNU General Public License for more details. * */ -void arch_idle (void ); +static inline void arch_idle (void ) +{ +cpu_do_idle (); +}/* low level hardware reset hook -- for example, hitting the * PSHOLD line on the PMIC to hard reset the system
Signature · 1 line
1.7.7.1.431.g10b2a
Tony Lindgren
maintainerPATCH 12/20 ARM: mach-msm: hook special idle handlers to arm_pm_idle
arch/arm/mach-msm/idle.c line 6
Quoted 9 lines · Nicolas Pitre
arch/arm/mach-msm/idle.c new file +6
-0@@ -0,0 +1,49 @@ +/* arch/arm/mach-msm/idle.c +* +* Idle processing for MSM7K - work around bugs with SWFI. +* +* Copyright (c) 2007 QUALCOMM Incorporated. +* Copyright (C) 2007 Google, Inc.
Trailing whitespace here too "<stdin>:62: trailing whitespace.".
Tony
PATCH 12/20 ARM: mach-msm: hook special idle handlers to arm_pm_idle
Quoted 12 lines · Tony Lindgren
arch/arm/mach-msm/idle.c line 6
Quoted 9 lines · Nicolas Pitre
arch/arm/mach-msm/idle.c new file +6
-0@@ -0,0 +1,49 @@ +/* arch/arm/mach-msm/idle.c +* +* Idle processing for MSM7K - work around bugs with SWFI. +* +* Copyright (c) 2007 QUALCOMM Incorporated. +* Copyright (C) 2007 Google, Inc. Trailing whitespace here too "<stdin>:62: trailing whitespace.".
I just did "git rebase --whitespace=fix" on my branch. They should all be gone now.
Nicolas
PATCH 12/20 ARM: mach-msm: hook special idle handlers to arm_pm_idle
In reply to Nicolas PitreQuoted 8 lines · Nicolas Pitre
Signed-off-by Nicolas Pitre <[email protected]>--- arch/arm/mach-msm/idle.S | 36 ---------------------- arch/arm/mach-msm/idle.c | 49 +++++++++++++++++++++++++++++++ arch/arm/mach-msm/include/mach/system.h | 5 ++- 3 files changed, 53 insertions(+), 37 deletions(-) delete mode 100644 arch/arm/mach-msm/idle.S create mode 100644 arch/arm/mach-msm/idle.c
I've tested this on 8660. It'd be nice if someone was able to test this on the G1 to make sure it doesn't break idle there. I've compile tested it, though.
We do have idle support for our newer chips, and hopefully we'll be able to add that at some point. There is also reset support.
But, this does help clean up the current functionality.
Signature · 2 lines
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
PATCH 13/20 ARM: mach-ixp23xx: properly disable CPU idle call
In reply to Nicolas Pitre--- arch/arm/mach-ixp23xx/core.c | 3 +++ arch/arm/mach-ixp23xx/include/mach/system.h | 5 +---- 2 files changed, 4 insertions(+), 4 deletions(-)
arch/arm/mach-ixp23xx/core.c +3 -0
@@ -441,6 +441,9 @@ static struct platform_device *ixp23xx_devices[] __initdata = {void __init ixp23xx_sys_init (void ) { +/* by default, the idle code is disabled */ +disable_hlt (); + *IXP23XX_EXP_UNIT_FUSE |=0xf ;platform_add_devices (ixp23xx_devices,ARRAY_SIZE (ixp23xx_devices)); }
arch/arm/mach-ixp23xx/include/mach/system.h +1 -4
@@ -9,8 +9,5 @@*/ static inline void arch_idle (void ) { -#if 0 -if (!hlt_counter) -cpu_do_idle (); -#endif +cpu_do_idle (); }
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 14/20 ARM: mach-ixp4xx: properly disable CPU idle call
In reply to Nicolas Pitre--- arch/arm/mach-ixp4xx/common.c | 6 ++++++ arch/arm/mach-ixp4xx/include/mach/system.h | 5 ----- 2 files changed, 6 insertions(+), 5 deletions(-)
arch/arm/mach-ixp4xx/common.c +6 -0
@@ -237,6 +237,12 @@ void __init ixp4xx_init_irq(void) {int i =0 ; +/* +* ixp4xx does not implement the XScale PWRMODE register +* so it must not call cpu_do_idle(). +*/ +disable_hlt (); +/* Route all sources to IRQ instead of FIQ */ *IXP4XX_ICLR =0x0 ;
arch/arm/mach-ixp4xx/include/mach/system.h +0 -5
@@ -10,10 +10,5 @@*/ static inline void arch_idle (void ) { -/* ixp4xx does not implement the XScale PWRMODE register, -* so it must not call cpu_do_idle() here. -*/ -#if 0 cpu_do_idle (); -#endif }
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 15/20 ARM: mach-shark: properly disable CPU idle call
In reply to Nicolas Pitre--- arch/arm/mach-shark/core.c | 6 ++++++ arch/arm/mach-shark/include/mach/system.h | 1 + 2 files changed, 7 insertions(+), 0 deletions(-)
arch/arm/mach-shark/core.c +6 -0
@@ -149,11 +149,17 @@ static struct sys_timer shark_timer = { .init = shark_timer_init, }; +static void shark_init_machine (void ) +{ +disable_hlt (); +} +MACHINE_START (SHARK ,"Shark" )/* Maintainer: Alexander Schulz */ .atag_offset = 0x3000, .map_io = shark_map_io, .init_irq = shark_init_irq, + .init_machine = shark_init_machine, .timer = &shark_timer, .dma_zone_size = SZ_4M, .restart = shark_restart,
arch/arm/mach-shark/include/mach/system.h +1 -0
@@ -8,6 +8,7 @@static inline void arch_idle (void ) { +cpu_do_idle (); }#endif
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 16/20 ARM: mach-w90x900: properly disable CPU idle call
In reply to Nicolas Pitre--- arch/arm/mach-w90x900/dev.c | 1 + arch/arm/mach-w90x900/include/mach/system.h | 1 + 2 files changed, 2 insertions(+), 0 deletions(-)
arch/arm/mach-w90x900/dev.c +1 -0
@@ -530,6 +530,7 @@ static struct platform_device *nuc900_public_dev[] __initdata = {void __init nuc900_board_init (struct platform_device **device,int size) { +disable_hlt ();platform_add_devices (device, size);platform_add_devices (nuc900_public_dev,ARRAY_SIZE (nuc900_public_dev)); spi_register_board_info(nuc900_spi_board_info,
arch/arm/mach-w90x900/include/mach/system.h +1 -0
@@ -16,4 +16,5 @@*/ static void arch_idle (void ) { +cpu_do_idle (); }
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 17/20 ARM: mach-s3c64xx: properly disable CPU idle call
In reply to Nicolas Pitre--- arch/arm/mach-s3c64xx/cpu.c | 2 ++ arch/arm/mach-s3c64xx/include/mach/system.h | 2 +- 2 files changed, 3 insertions(+), 1 deletions(-)
arch/arm/mach-s3c64xx/cpu.c +2 -0
@@ -141,6 +141,8 @@ void __init s3c6400_common_init_uarts(struct s3c2410_uartcfg *cfg, int no)void __init s3c64xx_init_io (struct map_desc *mach_desc,int size) { +disable_hlt ();/* idle WFI usage needs to be confirmed */ +/* initialise the io descriptors we need for initialisation */ iotable_init (s3c_iodesc,ARRAY_SIZE (s3c_iodesc));iotable_init (mach_desc, size);
arch/arm/mach-s3c64xx/include/mach/system.h +1 -1
@@ -15,7 +15,7 @@static void arch_idle (void ) { -/* nothing here yet */ +cpu_do_idle (); }static void arch_reset (char mode,const char *cmd)
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 17/20 ARM: mach-s3c64xx: properly disable CPU idle call
arch/arm/mach-s3c64xx/cpu.c void __init s3c6400_common_init_uarts(struct s3c2410_uartcfg *cfg, int no) · line 145
Quoted 4 lines · Nicolas Pitre
void
__inits3c64xx_init_io(struct map_desc *mach_desc, int size){arch/arm/mach-s3c64xx/cpu.c +2
-0+disable_hlt ();/* idle WFI usage needs to be confirmed */ +
I'm not sure what the intention of the comment is but the CPU can use WFI to idle (I've got a cpuidle driver which I've posted which does the basics and some more updates in the pipeline).
PATCH 17/20 ARM: mach-s3c64xx: properly disable CPU idle call
Quoted 10 lines · Mark Brown
arch/arm/mach-s3c64xx/cpu.c void __init s3c6400_common_init_uarts(struct s3c2410_uartcfg *cfg, int no) · line 145
Quoted 4 lines · Nicolas Pitre
void
__inits3c64xx_init_io(struct map_desc *mach_desc, int size){arch/arm/mach-s3c64xx/cpu.c +2
-0+disable_hlt ();/* idle WFI usage needs to be confirmed */ +I'm not sure what the intention of the comment is but the CPU can use WFI to idle (I've got a cpuidle driver which I've posted which does the basics and some more updates in the pipeline).
Still, the code as it is before this patch doesn't use it given the empty arch_idle(). So I'm only providing the same behavior in a different form.
So if you can confirm the kernel works fine with that disable_hlt() commented out (while still including the rest of the patch) then I can change the patch. And if you can measure a difference in power consumption when the system is idle then that would be even better.
Nicolas
PATCH 17/20 ARM: mach-s3c64xx: properly disable CPU idle call
Quoted 4 lines · Nicolas Pitre
So if you can confirm the kernel works fine with that
disable_hlt()commented out (while still including the rest of the patch) then I can change the patch. And if you can measure a difference in power consumption when the system is idle then that would be even better.
with and without the disable_hlt() call. I don't have equipment with me to measure power but I don't expect much effect without additional code to enable power saving in WFI as for some reason the default behaviour isn't to save power.
PATCH 18/20 ARM: mach-tegra: properly disable CPU idle call
In reply to Nicolas Pitre--- arch/arm/mach-tegra/common.c | 3 ++- arch/arm/mach-tegra/include/mach/system.h | 1 + 2 files changed, 3 insertions(+), 1 deletions(-)
arch/arm/mach-tegra/common.c +2 -1
@@ -25,7 +25,6 @@#include <asm/hardware/cache-l2x0.h> #include <mach/iomap.h> -#include <mach/system.h> #include "board.h" #include "clock.h"
@@ -74,6 +73,8 @@ static void __init tegra_init_cache(void)void __init tegra_init_early (void ) { +disable_hlt ();/* idle WFI usage needs to be confirmed */ +tegra_init_fuse ();tegra_init_clock ();tegra_clk_init_from_table (common_clk_init_table);
arch/arm/mach-tegra/include/mach/system.h +1 -0
@@ -23,6 +23,7 @@static inline void arch_idle (void ) { +cpu_do_idle (); }#endif
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 19/20 ARM: substitute arch_idle()
In reply to Nicolas PitreNow that all implementations of arch_idle() are equivalent to cpu_do_idle() we can just use the later directly and stop including mach/system.h.
--- arch/arm/kernel/process.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-)
arch/arm/kernel/process.c +1 -3
@@ -61,8 +61,6 @@ extern void setup_mm_for_reboot(void);static volatile int hlt_counter; -#include <mach/system.h> -void disable_hlt (void ) { hlt_counter++;
@@ -161,7 +159,7 @@ static void default_idle(void)if (arm_pm_idle)arm_pm_idle ();else -arch_idle (); +cpu_do_idle ();local_irq_enable (); }
Signature · 1 line
1.7.7.1.431.g10b2a
Tony Lindgren
maintainerPATCH 19/20 ARM: substitute arch_idle()
Quoted 4 lines · Nicolas Pitre
Now that all implementations of
arch_idle()are equivalent tocpu_do_idle()we can just use the later directly and stop includingmach/system.h.Signed-off-by Nicolas Pitre <[email protected]>
PATCH 20/20 ARM: big removal of now unused arch_reset()
In reply to Nicolas PitreWhen this is the only content remaining in mach/system.h then the whole file is removed.
--- arch/arm/mach-at91/include/mach/system.h | 29 --------------------- arch/arm/mach-bcmring/include/mach/system.h | 28 -------------------- arch/arm/mach-clps711x/include/mach/system.h | 32 ----------------------- arch/arm/mach-cns3xxx/include/mach/system.h | 25 ------------------ arch/arm/mach-davinci/include/mach/system.h | 21 --------------- arch/arm/mach-dove/include/mach/system.h | 17 ------------ arch/arm/mach-ebsa110/include/mach/system.h | 18 ------------- arch/arm/mach-ep93xx/include/mach/system.h | 7 ----- arch/arm/mach-exynos/include/mach/system.h | 22 ---------------- arch/arm/mach-footbridge/include/mach/system.h | 13 --------- arch/arm/mach-gemini/include/mach/system.h | 22 ---------------- arch/arm/mach-h720x/include/mach/system.h | 22 ---------------- arch/arm/mach-highbank/include/mach/system.h | 24 ----------------- arch/arm/mach-integrator/include/mach/system.h | 33 ------------------------ arch/arm/mach-iop13xx/include/mach/system.h | 13 --------- arch/arm/mach-iop32x/include/mach/system.h | 13 --------- arch/arm/mach-iop33x/include/mach/system.h | 13 --------- arch/arm/mach-ixp2000/include/mach/system.h | 14 ---------- arch/arm/mach-ixp23xx/include/mach/system.h | 13 --------- arch/arm/mach-ixp4xx/include/mach/system.h | 14 ---------- arch/arm/mach-kirkwood/include/mach/system.h | 17 ------------ arch/arm/mach-ks8695/include/mach/system.h | 27 ------------------- arch/arm/mach-lpc32xx/include/mach/system.h | 27 ------------------- arch/arm/mach-mmp/include/mach/system.h | 16 ----------- arch/arm/mach-msm/include/mach/system.h | 4 --- arch/arm/mach-mv78xx0/include/mach/system.h | 17 ------------ arch/arm/mach-mxs/include/mach/system.h | 25 ------------------ arch/arm/mach-netx/include/mach/system.h | 28 -------------------- arch/arm/mach-nomadik/include/mach/system.h | 32 ----------------------- arch/arm/mach-omap1/include/mach/system.h | 5 --- arch/arm/mach-omap2/include/mach/system.h | 5 --- arch/arm/mach-orion5x/include/mach/system.h | 19 ------------- arch/arm/mach-picoxcell/include/mach/system.h | 26 ------------------ arch/arm/mach-pnx4008/include/mach/system.h | 29 --------------------- arch/arm/mach-prima2/include/mach/system.h | 17 ------------ arch/arm/mach-pxa/include/mach/system.h | 15 ----------- arch/arm/mach-realview/include/mach/system.h | 33 ------------------------ arch/arm/mach-rpc/include/mach/system.h | 13 --------- arch/arm/mach-s3c2410/include/mach/system.h | 5 --- arch/arm/mach-s3c64xx/include/mach/system.h | 5 --- arch/arm/mach-s5p64x0/include/mach/system.h | 23 ---------------- arch/arm/mach-s5pc100/include/mach/system.h | 21 --------------- arch/arm/mach-s5pv210/include/mach/system.h | 23 ---------------- arch/arm/mach-sa1100/include/mach/system.h | 9 ------ arch/arm/mach-shark/include/mach/system.h | 14 ---------- arch/arm/mach-shmobile/include/mach/system.h | 5 --- arch/arm/mach-spear3xx/include/mach/system.h | 19 ------------- arch/arm/mach-spear6xx/include/mach/system.h | 19 ------------- arch/arm/mach-tegra/include/mach/system.h | 29 --------------------- arch/arm/mach-u300/include/mach/system.h | 14 ---------- arch/arm/mach-ux500/include/mach/system.h | 20 -------------- arch/arm/mach-versatile/include/mach/system.h | 33 ------------------------ arch/arm/mach-vexpress/include/mach/system.h | 33 ------------------------ arch/arm/mach-vt8500/include/mach/system.h | 5 --- arch/arm/mach-w90x900/include/mach/system.h | 20 -------------- arch/arm/mach-zynq/include/mach/system.h | 23 ---------------- arch/arm/plat-mxc/include/mach/system.h | 25 ------------------ arch/arm/plat-omap/include/plat/system.h | 15 ----------- arch/arm/plat-spear/include/plat/system.h | 26 ------------------ arch/arm/plat-tcc/include/mach/system.h | 31 ---------------------- 60 files changed, 0 insertions(+), 1165 deletions(-) delete mode 100644 arch/arm/mach-at91/include/mach/system.h delete mode 100644 arch/arm/mach-bcmring/include/mach/system.h delete mode 100644 arch/arm/mach-clps711x/include/mach/system.h delete mode 100644 arch/arm/mach-cns3xxx/include/mach/system.h delete mode 100644 arch/arm/mach-davinci/include/mach/system.h delete mode 100644 arch/arm/mach-dove/include/mach/system.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/system.h delete mode 100644 arch/arm/mach-ep93xx/include/mach/system.h delete mode 100644 arch/arm/mach-exynos/include/mach/system.h delete mode 100644 arch/arm/mach-footbridge/include/mach/system.h delete mode 100644 arch/arm/mach-gemini/include/mach/system.h delete mode 100644 arch/arm/mach-h720x/include/mach/system.h delete mode 100644 arch/arm/mach-highbank/include/mach/system.h delete mode 100644 arch/arm/mach-integrator/include/mach/system.h delete mode 100644 arch/arm/mach-iop13xx/include/mach/system.h delete mode 100644 arch/arm/mach-iop32x/include/mach/system.h delete mode 100644 arch/arm/mach-iop33x/include/mach/system.h delete mode 100644 arch/arm/mach-ixp2000/include/mach/system.h delete mode 100644 arch/arm/mach-ixp23xx/include/mach/system.h delete mode 100644 arch/arm/mach-ixp4xx/include/mach/system.h delete mode 100644 arch/arm/mach-kirkwood/include/mach/system.h delete mode 100644 arch/arm/mach-ks8695/include/mach/system.h delete mode 100644 arch/arm/mach-lpc32xx/include/mach/system.h delete mode 100644 arch/arm/mach-mmp/include/mach/system.h delete mode 100644 arch/arm/mach-mv78xx0/include/mach/system.h delete mode 100644 arch/arm/mach-mxs/include/mach/system.h delete mode 100644 arch/arm/mach-netx/include/mach/system.h delete mode 100644 arch/arm/mach-nomadik/include/mach/system.h delete mode 100644 arch/arm/mach-omap1/include/mach/system.h delete mode 100644 arch/arm/mach-omap2/include/mach/system.h delete mode 100644 arch/arm/mach-orion5x/include/mach/system.h delete mode 100644 arch/arm/mach-picoxcell/include/mach/system.h delete mode 100644 arch/arm/mach-pnx4008/include/mach/system.h delete mode 100644 arch/arm/mach-prima2/include/mach/system.h delete mode 100644 arch/arm/mach-pxa/include/mach/system.h delete mode 100644 arch/arm/mach-realview/include/mach/system.h delete mode 100644 arch/arm/mach-rpc/include/mach/system.h delete mode 100644 arch/arm/mach-s5p64x0/include/mach/system.h delete mode 100644 arch/arm/mach-s5pc100/include/mach/system.h delete mode 100644 arch/arm/mach-s5pv210/include/mach/system.h delete mode 100644 arch/arm/mach-sa1100/include/mach/system.h delete mode 100644 arch/arm/mach-shark/include/mach/system.h delete mode 100644 arch/arm/mach-spear3xx/include/mach/system.h delete mode 100644 arch/arm/mach-spear6xx/include/mach/system.h delete mode 100644 arch/arm/mach-tegra/include/mach/system.h delete mode 100644 arch/arm/mach-u300/include/mach/system.h delete mode 100644 arch/arm/mach-ux500/include/mach/system.h delete mode 100644 arch/arm/mach-versatile/include/mach/system.h delete mode 100644 arch/arm/mach-vexpress/include/mach/system.h delete mode 100644 arch/arm/mach-w90x900/include/mach/system.h delete mode 100644 arch/arm/mach-zynq/include/mach/system.h delete mode 100644 arch/arm/plat-mxc/include/mach/system.h delete mode 100644 arch/arm/plat-omap/include/plat/system.h delete mode 100644 arch/arm/plat-spear/include/plat/system.h delete mode 100644 arch/arm/plat-tcc/include/mach/system.h
arch/arm/mach-at91/include/mach/system.h deleted +0 -29
@@ -1,29 +0,0 @@ -/* -* arch/arm/mach-at91/include/mach/system.h -* -* Copyright (C) 2003 SAN People -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-bcmring/include/mach/system.h deleted +0 -28
@@ -1,28 +0,0 @@ -/* -* -* Copyright (C) 1999 ARM Limited -* Copyright (C) 2000 Deep Blue Solutions Ltd -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-clps711x/include/mach/system.h deleted +0 -32
@@ -1,32 +0,0 @@ -/* -* arch/arm/mach-clps711x/include/mach/system.h -* -* Copyright (C) 2000 Deep Blue Solutions Ltd -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -#include <linux/io.h> -#include <mach/hardware.h> -#include <asm/hardware/clps7111.h> - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-cns3xxx/include/mach/system.h deleted +0 -25
@@ -1,25 +0,0 @@ -/* -* Copyright 2000 Deep Blue Solutions Ltd -* Copyright 2003 ARM Limited -* Copyright 2008 Cavium Networks -* -* This file is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License, Version 2, as -* published by the Free Software Foundation. -*/ - -#ifndef __MACH_SYSTEM_H -#define __MACH_SYSTEM_H - -#include <asm/proc-fns.h> - -static inline void arch_idle (void ) -{ -/* -* This should do all the clock switching -* and wait for interrupt tricks -*/ -cpu_do_idle (); -} - -#endif
arch/arm/mach-davinci/include/mach/system.h deleted +0 -21
@@ -1,21 +0,0 @@ -/* -* DaVinci system defines -* -* Author: Kevin Hilman, MontaVista Software, Inc. <[email protected]> -* -* 2007 (c) MontaVista Software, Inc. This file is licensed under -* the terms of the GNU General Public License version 2. This program -* is licensed "as is" without any warranty of any kind, whether express -* or implied. -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -#include <mach/common.h> - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif /* __ASM_ARCH_SYSTEM_H */
arch/arm/mach-dove/include/mach/system.h deleted +0 -17
@@ -1,17 +0,0 @@ -/* -* arch/arm/mach-dove/include/mach/system.h -* -* This file is licensed under the terms of the GNU General Public -* License version 2. This program is licensed "as is" without any -* warranty of any kind, whether express or implied. -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-ebsa110/include/mach/system.h deleted +0 -18
@@ -1,18 +0,0 @@ -/* -* arch/arm/mach-ebsa110/include/mach/system.h -* -* Copyright (C) 1996-2000 Russell King. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-ep93xx/include/mach/system.h deleted +0 -7
@@ -1,7 +0,0 @@ -/* -* arch/arm/mach-ep93xx/include/mach/system.h -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-exynos/include/mach/system.h deleted +0 -22
@@ -1,22 +0,0 @@ -/* linux/arch/arm/mach-exynos4/include/mach/system.h -* -* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. -* http://www.samsung.com -* -* EXYNOS4 - system support header -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H __FILE__ - -#include <plat/system-reset.h> - -static void arch_idle (void ) -{ -cpu_do_idle (); -} -#endif /* __ASM_ARCH_SYSTEM_H */
arch/arm/mach-footbridge/include/mach/system.h deleted +0 -13
@@ -1,13 +0,0 @@ -/* -* arch/arm/mach-footbridge/include/mach/system.h -* -* Copyright (C) 1996-1999 Russell King. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-gemini/include/mach/system.h deleted +0 -22
@@ -1,22 +0,0 @@ -/* -* Copyright (C) 2001-2006 Storlink, Corp. -* Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]> -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -*/ -#ifndef __MACH_SYSTEM_H -#define __MACH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -static inline void arch_reset (char mode,const char *cmd) -{ -} - -#endif /* __MACH_SYSTEM_H */
arch/arm/mach-h720x/include/mach/system.h deleted +0 -22
@@ -1,22 +0,0 @@ -/* -* arch/arm/mach-h720x/include/mach/system.h -* -* Copyright (C) 2001-2002 Jungjun Kim, Hynix Semiconductor Inc. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -* arch/arm/mach-h720x/include/mach/system.h -* -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H -#include <mach/hardware.h> - -static void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-highbank/include/mach/system.h deleted +0 -24
@@ -1,24 +0,0 @@ -/* -* Copyright 2010-2011 Calxeda, Inc. -* -* This program is free software; you can redistribute it and/or modify it -* under the terms and conditions of the GNU General Public License, -* version 2, as published by the Free Software Foundation. -* -* This program is distributed in the hope it will be useful, but WITHOUT -* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -* more details. -* -* You should have received a copy of the GNU General Public License along with -* this program. If not, see <http://www.gnu.org/licenses/>. -*/ -#ifndef __MACH_SYSTEM_H -#define __MACH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-integrator/include/mach/system.h deleted +0 -33
@@ -1,33 +0,0 @@ -/* -* arch/arm/mach-integrator/include/mach/system.h -* -* Copyright (C) 1999 ARM Limited -* Copyright (C) 2000 Deep Blue Solutions Ltd -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -/* -* This should do all the clock switching -* and wait for interrupt tricks -*/ -cpu_do_idle (); -} - -#endif
arch/arm/mach-iop13xx/include/mach/system.h deleted +0 -13
@@ -1,13 +0,0 @@ -/* -* arch/arm/mach-iop13xx/include/mach/system.h -* -* Copyright (C) 2004 Intel Corp. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-iop32x/include/mach/system.h deleted +0 -13
@@ -1,13 +0,0 @@ -/* -* arch/arm/mach-iop32x/include/mach/system.h -* -* Copyright (C) 2001 MontaVista Software, Inc. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-iop33x/include/mach/system.h deleted +0 -13
@@ -1,13 +0,0 @@ -/* -* arch/arm/mach-iop33x/include/mach/system.h -* -* Copyright (C) 2001 MontaVista Software, Inc. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-ixp2000/include/mach/system.h deleted +0 -14
@@ -1,14 +0,0 @@ -/* -* arch/arm/mach-ixp2000/include/mach/system.h -* -* Copyright (C) 2002 Intel Corp. -* Copyricht (C) 2003-2005 MontaVista Software, Inc. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-ixp23xx/include/mach/system.h deleted +0 -13
@@ -1,13 +0,0 @@ -/* -* arch/arm/mach-ixp23xx/include/mach/system.h -* -* Copyright (C) 2003 Intel Corporation. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-ixp4xx/include/mach/system.h deleted +0 -14
@@ -1,14 +0,0 @@ -/* -* arch/arm/mach-ixp4xx/include/mach/system.h -* -* Copyright (C) 2002 Intel Corporation. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -* -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-kirkwood/include/mach/system.h deleted +0 -17
@@ -1,17 +0,0 @@ -/* -* arch/arm/mach-kirkwood/include/mach/system.h -* -* This file is licensed under the terms of the GNU General Public -* License version 2. This program is licensed "as is" without any -* warranty of any kind, whether express or implied. -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-ks8695/include/mach/system.h deleted +0 -27
@@ -1,27 +0,0 @@ -/* -* arch/arm/mach-s3c2410/include/mach/system.h -* -* Copyright (C) 2006 Simtec Electronics -* Ben Dooks <[email protected]> -* -* KS8695 - System function defines and includes -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static void arch_idle (void ) -{ -/* -* This should do all the clock switching -* and wait for interrupt tricks, -*/ -cpu_do_idle (); - -} - -#endif
arch/arm/mach-lpc32xx/include/mach/system.h deleted +0 -27
@@ -1,27 +0,0 @@ -/* -* arch/arm/mach-lpc32xx/include/mach/system.h -* -* Author: Kevin Wells <[email protected]> -* -* Copyright (C) 2010 NXP Semiconductors -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-mmp/include/mach/system.h deleted +0 -16
@@ -1,16 +0,0 @@ -/* -* linux/arch/arm/mach-mmp/include/mach/system.h -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ - -#ifndef __ASM_MACH_SYSTEM_H -#define __ASM_MACH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} -#endif /* __ASM_MACH_SYSTEM_H */
arch/arm/mach-msm/include/mach/system.h +0 -4
@@ -12,10 +12,6 @@* GNU General Public License for more details. * */ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}/* low level hardware reset hook -- for example, hitting the * PSHOLD line on the PMIC to hard reset the system
arch/arm/mach-mv78xx0/include/mach/system.h deleted +0 -17
@@ -1,17 +0,0 @@ -/* -* arch/arm/mach-mv78xx0/include/mach/system.h -* -* This file is licensed under the terms of the GNU General Public -* License version 2. This program is licensed "as is" without any -* warranty of any kind, whether express or implied. -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-mxs/include/mach/system.h deleted +0 -25
@@ -1,25 +0,0 @@ -/* -* Copyright (C) 1999 ARM Limited -* Copyright (C) 2000 Deep Blue Solutions Ltd -* Copyright 2004-2008 Freescale Semiconductor, Inc. All Rights Reserved. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -*/ - -#ifndef __MACH_MXS_SYSTEM_H__ -#define __MACH_MXS_SYSTEM_H__ - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif /* __MACH_MXS_SYSTEM_H__ */
arch/arm/mach-netx/include/mach/system.h deleted +0 -28
@@ -1,28 +0,0 @@ -/* -* arch/arm/mach-netx/include/mach/system.h -* -* Copyright (C) 2005 Sascha Hauer <[email protected]>, Pengutronix -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 -* as published by the Free Software Foundation. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif -
arch/arm/mach-nomadik/include/mach/system.h deleted +0 -32
@@ -1,32 +0,0 @@ -/* -* mach-nomadik/include/mach/system.h -* -* Copyright (C) 2008 STMicroelectronics -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -/* -* This should do all the clock switching -* and wait for interrupt tricks -*/ -cpu_do_idle (); -} - -#endif
arch/arm/mach-omap1/include/mach/system.h deleted +0 -5
@@ -1,5 +0,0 @@ -/* -* arch/arm/mach-omap1/include/mach/system.h -*/ - -#include <plat/system.h>
arch/arm/mach-omap2/include/mach/system.h deleted +0 -5
@@ -1,5 +0,0 @@ -/* -* arch/arm/mach-omap2/include/mach/system.h -*/ - -#include <plat/system.h>
arch/arm/mach-orion5x/include/mach/system.h deleted +0 -19
@@ -1,19 +0,0 @@ -/* -* arch/arm/mach-orion5x/include/mach/system.h -* -* Tzachi Perelstein <[email protected]> -* -* This file is licensed under the terms of the GNU General Public -* License version 2. This program is licensed "as is" without any -* warranty of any kind, whether express or implied. -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-picoxcell/include/mach/system.h deleted +0 -26
@@ -1,26 +0,0 @@ -/* -* Copyright (c) 2011 Picochip Ltd., Jamie Iles -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -/* -* This should do all the clock switching and wait for interrupt -* tricks. -*/ -cpu_do_idle (); -} - -#endif /* __ASM_ARCH_SYSTEM_H */
arch/arm/mach-pnx4008/include/mach/system.h deleted +0 -29
@@ -1,29 +0,0 @@ -/* -* arch/arm/mach-pnx4008/include/mach/system.h -* -* Copyright (C) 2003 Philips Semiconductors -* Copyright (C) 2005 MontaVista Software, Inc. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-prima2/include/mach/system.h deleted +0 -17
@@ -1,17 +0,0 @@ -/* -* arch/arm/mach-prima2/include/mach/system.h -* -* Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company. -* -* Licensed under GPLv2 or later. -*/ - -#ifndef __MACH_SYSTEM_H__ -#define __MACH_SYSTEM_H__ - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-pxa/include/mach/system.h deleted +0 -15
@@ -1,15 +0,0 @@ -/* -* arch/arm/mach-pxa/include/mach/system.h -* -* Author: Nicolas Pitre -* Created: Jun 15, 2001 -* Copyright: MontaVista Software Inc. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-realview/include/mach/system.h deleted +0 -33
@@ -1,33 +0,0 @@ -/* -* arch/arm/mach-realview/include/mach/system.h -* -* Copyright (C) 2003 ARM Limited -* Copyright (C) 2000 Deep Blue Solutions Ltd -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -/* -* This should do all the clock switching -* and wait for interrupt tricks -*/ -cpu_do_idle (); -} - -#endif
arch/arm/mach-rpc/include/mach/system.h deleted +0 -13
@@ -1,13 +0,0 @@ -/* -* arch/arm/mach-rpc/include/mach/system.h -* -* Copyright (C) 1996-1999 Russell King. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-s3c2410/include/mach/system.h +0 -5
@@ -18,9 +18,4 @@void (*s3c24xx_reset_hook)(void ); -static void arch_idle (void ) -{ -cpu_do_idle (); -} -#include <mach/system-reset.h>
arch/arm/mach-s3c64xx/include/mach/system.h +0 -5
@@ -13,11 +13,6 @@#include <plat/watchdog-reset.h> -static void arch_idle (void ) -{ -cpu_do_idle (); -} -static void arch_reset (char mode,const char *cmd) {if (mode !='s' )
arch/arm/mach-s5p64x0/include/mach/system.h deleted +0 -23
@@ -1,23 +0,0 @@ -/* linux/arch/arm/mach-s5p64x0/include/mach/system.h -* -* Copyright (c) 2009-2010 Samsung Electronics Co., Ltd. -* http://www.samsung.com -* -* S5P64X0 - system support header -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H __FILE__ - -#include <plat/system-reset.h> - -static void arch_idle (void ) -{ -/* nothing here yet */ -} - -#endif /* __ASM_ARCH_SYSTEM_H */
arch/arm/mach-s5pc100/include/mach/system.h deleted +0 -21
@@ -1,21 +0,0 @@ -/* linux/arch/arm/mach-s5pc100/include/mach/system.h -* -* Copyright 2009 Samsung Electronics Co. -* Byungho Min <[email protected]> -* -* S5PC100 - system implementation -* -* Based on mach-s3c6400/include/mach/system.h -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H __FILE__ - -#include <plat/system-reset.h> - -static void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif /* __ASM_ARCH_IRQ_H */
arch/arm/mach-s5pv210/include/mach/system.h deleted +0 -23
@@ -1,23 +0,0 @@ -/* linux/arch/arm/mach-s5pv210/include/mach/system.h -* -* Copyright (c) 2010 Samsung Electronics Co., Ltd. -* http://www.samsung.com/ -* -* S5PV210 - system support header -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License version 2 as -* published by the Free Software Foundation. -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H __FILE__ - -#include <plat/system-reset.h> - -static void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif /* __ASM_ARCH_SYSTEM_H */
arch/arm/mach-sa1100/include/mach/system.h deleted +0 -9
@@ -1,9 +0,0 @@ -/* -* arch/arm/mach-sa1100/include/mach/system.h -* -* Copyright (c) 1999 Nicolas Pitre <[email protected]> -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-shark/include/mach/system.h deleted +0 -14
@@ -1,14 +0,0 @@ -/* -* arch/arm/mach-shark/include/mach/system.h -* -* by Alexander Schulz -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-shmobile/include/mach/system.h +0 -5
@@ -1,11 +1,6 @@#ifndef __ASM_ARCH_SYSTEM_H#define __ASM_ARCH_SYSTEM_H -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} -static inline void arch_reset (char mode,const char *cmd) {soft_restart (0 );
arch/arm/mach-spear3xx/include/mach/system.h deleted +0 -19
@@ -1,19 +0,0 @@ -/* -* arch/arm/mach-spear3xx/include/mach/system.h -* -* SPEAr3xx Machine family specific architecture functions -* -* Copyright (C) 2009 ST Microelectronics -* Viresh Kumar<[email protected]> -* -* This file is licensed under the terms of the GNU General Public -* License version 2. This program is licensed "as is" without any -* warranty of any kind, whether express or implied. -*/ - -#ifndef __MACH_SYSTEM_H -#define __MACH_SYSTEM_H - -#include <plat/system.h> - -#endif /* __MACH_SYSTEM_H */
arch/arm/mach-spear6xx/include/mach/system.h deleted +0 -19
@@ -1,19 +0,0 @@ -/* -* arch/arm/mach-spear6xx/include/mach/system.h -* -* SPEAr6xx Machine family specific architecture functions -* -* Copyright (C) 2009 ST Microelectronics -* Rajeev Kumar<[email protected]> -* -* This file is licensed under the terms of the GNU General Public -* License version 2. This program is licensed "as is" without any -* warranty of any kind, whether express or implied. -*/ - -#ifndef __MACH_SYSTEM_H -#define __MACH_SYSTEM_H - -#include <plat/system.h> - -#endif /* __MACH_SYSTEM_H */
arch/arm/mach-tegra/include/mach/system.h deleted +0 -29
@@ -1,29 +0,0 @@ -/* -* arch/arm/mach-tegra/include/mach/system.h -* -* Copyright (C) 2010 Google, Inc. -* -* Author: -* Colin Cross <[email protected]> -* Erik Gilling <[email protected]> -* -* This software is licensed under the terms of the GNU General Public -* License version 2, as published by the Free Software Foundation, and -* may be copied, distributed, and modified under those terms. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -*/ - -#ifndef __MACH_TEGRA_SYSTEM_H -#define __MACH_TEGRA_SYSTEM_H - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/mach-u300/include/mach/system.h deleted +0 -14
@@ -1,14 +0,0 @@ -/* -* -* arch/arm/mach-u300/include/mach/system.h -* -* -* Copyright (C) 2007-2009 ST-Ericsson AB -* License terms: GNU General Public License (GPL) version 2 -* System shutdown and reset functions. -* Author: Linus Walleij <[email protected]> -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-ux500/include/mach/system.h deleted +0 -20
@@ -1,20 +0,0 @@ -/* -* Copyright (C) 2009 ST-Ericsson. -* -* This file is licensed under the terms of the GNU General Public -* License version 2. This program is licensed "as is" without any -* warranty of any kind, whether express or implied. -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -/* -* This should do all the clock switching -* and wait for interrupt tricks -*/ -cpu_do_idle (); -} - -#endif
arch/arm/mach-versatile/include/mach/system.h deleted +0 -33
@@ -1,33 +0,0 @@ -/* -* arch/arm/mach-versatile/include/mach/system.h -* -* Copyright (C) 2003 ARM Limited -* Copyright (C) 2000 Deep Blue Solutions Ltd -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -/* -* This should do all the clock switching -* and wait for interrupt tricks -*/ -cpu_do_idle (); -} - -#endif
arch/arm/mach-vexpress/include/mach/system.h deleted +0 -33
@@ -1,33 +0,0 @@ -/* -* arch/arm/mach-vexpress/include/mach/system.h -* -* Copyright (C) 2003 ARM Limited -* Copyright (C) 2000 Deep Blue Solutions Ltd -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -static inline void arch_idle (void ) -{ -/* -* This should do all the clock switching -* and wait for interrupt tricks -*/ -cpu_do_idle (); -} - -#endif
arch/arm/mach-vt8500/include/mach/system.h +0 -5
@@ -7,11 +7,6 @@/* PM Software Reset request register */ #define VT8500_PMSR_VIRT 0xf8130060 -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} -static inline void arch_reset (char mode,const char *cmd) {writel (1 ,VT8500_PMSR_VIRT );
arch/arm/mach-w90x900/include/mach/system.h deleted +0 -20
@@ -1,20 +0,0 @@ -/* -* arch/arm/mach-w90x900/include/mach/system.h -* -* Copyright (c) 2008 Nuvoton technology corporation -* All rights reserved. -* -* Wan ZongShun <[email protected]> -* -* Based on arch/arm/mach-s3c2410/include/mach/system.h -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -*/ -static void arch_idle (void ) -{ -cpu_do_idle (); -}
arch/arm/mach-zynq/include/mach/system.h deleted +0 -23
@@ -1,23 +0,0 @@ -/* arch/arm/mach-zynq/include/mach/system.h -* -* Copyright (C) 2011 Xilinx -* -* This software is licensed under the terms of the GNU General Public -* License version 2, as published by the Free Software Foundation, and -* may be copied, distributed, and modified under those terms. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -*/ - -#ifndef __MACH_SYSTEM_H__ -#define __MACH_SYSTEM_H__ - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/plat-mxc/include/mach/system.h deleted +0 -25
@@ -1,25 +0,0 @@ -/* -* Copyright (C) 1999 ARM Limited -* Copyright (C) 2000 Deep Blue Solutions Ltd -* Copyright 2004-2008 Freescale Semiconductor, Inc. All Rights Reserved. -* -* This program is free software; you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation; either version 2 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -*/ - -#ifndef __ASM_ARCH_MXC_SYSTEM_H__ -#define __ASM_ARCH_MXC_SYSTEM_H__ - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif /* __ASM_ARCH_MXC_SYSTEM_H__ */
arch/arm/plat-omap/include/plat/system.h deleted +0 -15
@@ -1,15 +0,0 @@ -/* -* Copied from arch/arm/mach-sa1100/include/mach/system.h -* Copyright (c) 1999 Nicolas Pitre <[email protected]> -*/ -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H - -#include <asm/proc-fns.h> - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -#endif
arch/arm/plat-spear/include/plat/system.h deleted +0 -26
@@ -1,26 +0,0 @@ -/* -* arch/arm/plat-spear/include/plat/system.h -* -* SPEAr platform specific architecture functions -* -* Copyright (C) 2009 ST Microelectronics -* Viresh Kumar<[email protected]> -* -* This file is licensed under the terms of the GNU General Public -* License version 2. This program is licensed "as is" without any -* warranty of any kind, whether express or implied. -*/ - -#ifndef __PLAT_SYSTEM_H -#define __PLAT_SYSTEM_H - -static inline void arch_idle (void ) -{ -/* -* This should do all the clock switching -* and wait for interrupt tricks -*/ -cpu_do_idle (); -} - -#endif /* __PLAT_SYSTEM_H */
arch/arm/plat-tcc/include/mach/system.h deleted +0 -31
@@ -1,31 +0,0 @@ -/* -* Author: <[email protected]> -* Created: June 10, 2008 -* Description: LINUX SYSTEM FUNCTIONS for TCC83x -* -* Copyright (C) 2008-2009 Telechips -* -* Licensed under the terms of the GPL v2. -* -*/ - -#ifndef __ASM_ARCH_SYSTEM_H -#define __ASM_ARCH_SYSTEM_H -#include <linux/clk.h> - -#include <asm/mach-types.h> -#include <mach/hardware.h> - -extern void plat_tcc_restart (char mode,const char *cmd); - -static inline void arch_idle (void ) -{ -cpu_do_idle (); -} - -static inline void arch_reset (char mode,const char *cmd) -{ -plat_tcc_restart (mode, cmd); -} - -#endif
Signature · 1 line
1.7.7.1.431.g10b2a
PATCH 20/20 ARM: big removal of now unused arch_reset()
Quoted 6 lines · Nicolas Pitre
When this is the only content remaining in
mach/system.hthen the whole file is removed.Signed-off-by Nicolas Pitre <[email protected]>---
[...]
Quoted 1 line
arch/arm/mach-ep93xx/include/mach/system.h | 7 -----
[...]
Quoted 1 line
delete mode 100644 arch/arm/mach-ep93xx/include/mach/system.h
[...]
arch/arm/mach-ep93xx/include/mach/system.h line 7
Quoted 13 lines
arch/arm/mach-ep93xx/include/mach/system.h deleted +0
-7@@ -1,7 +0,0 @@ -/* -* arch/arm/mach-ep93xx/include/mach/system.h -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}
For this part and [PATCH 19/20], for ep93xx...
PATCH 20/20 ARM: big removal of now unused arch_reset()
Quoted 17 lines · H Hartley Sweeten
arch/arm/mach-ep93xx/include/mach/system.h line 7
Quoted 13 lines · Nicolas Pitre
arch/arm/mach-ep93xx/include/mach/system.h deleted +0
-7@@ -1,7 +0,0 @@ -/* -* arch/arm/mach-ep93xx/include/mach/system.h -*/ -static inline void arch_idle (void ) -{ -cpu_do_idle (); -}For this part and [PATCH 19/20], for ep93xx...
Quoted 1 line
Thanks
Nicolas
Tony Lindgren
maintainerPATCH 20/20 ARM: big removal of now unused arch_reset()
In reply to Nicolas PitreQuoted 4 lines · Nicolas Pitre
When this is the only content remaining in
mach/system.hthen the whole file is removed.Signed-off-by Nicolas Pitre <[email protected]>
PATCH 20/20 ARM: big removal of now unused arch_reset()
In reply to Nicolas PitreQuoted 6 lines · Nicolas Pitre
When this is the only content remaining in
mach/system.hthen the whole file is removed.Signed-off-by Nicolas Pitre <[email protected]>arch/arm/mach-msm/include/mach/system.h | 4 ---
Signature · 2 lines
Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
PATCH 20/20 ARM: big removal of now unused arch_reset()
In reply to Nicolas PitreQuoted 2 lines · Nicolas Pitre
When this is the only content remaining in
mach/system.hthen the whole file is removed.
Merry christmas!
Quoted 6 lines
Signed-off-by Nicolas Pitre <[email protected]>?arch/arm/mach-integrator/include/mach/system.h | ? 33 ------------------------ ?arch/arm/mach-nomadik/include/mach/system.h ? ?| ? 32 ----------------------- ?arch/arm/mach-u300/include/mach/system.h ? ? ? | ? 14 ---------- ?arch/arm/mach-ux500/include/mach/system.h ? ? ?| ? 20 --------------
Acked-by:
Linus Walleij <[email protected]>
Yours,
Linus Walleij
cover arch_idle() cleanup and mach/system.h removal
In reply to Nicolas PitreHi Nicolas,
Quoted 14 lines · Nicolas Pitre
This is the logical continuation of the
arch_reset()work that Russell did and therefore this must be applied on top of Russell's "reset" branch.Most
arch_idle()implementations are simply a call tocpu_do_idle()and can be eliminated in favor of a common call. However, some platforms require special idle handling and thearm_pm_idlehook is made available for those cases.Why "
arm_pm_idle"? Because there is already a generic "pm_idle", but its calling convention is rather awkward with regard to interrupts, so the default "pm_idle" handler will callarm_pm_idleif it is non null, orcpu_do_idleotherwise. The genericpm_idlehook still can be overriden as before.
Quoted 3 lines
This series is therefore meant to be functionally a big no-op i.e. everything should just behave as before, despite having more than 1000 lines of code and 55 files removed in the end.
Tested on picoxcell, works great.
btw,
Quoted 1 line
[PATCH 20/20] ARM: big removal of now unused
arch_reset()
I guess this should be "ARM: big removal of now unused mach/system.h" or similar?
Jamie
cover arch_idle() cleanup and mach/system.h removal
Quoted 17 lines · Jamie Iles
Hi Nicolas,
Quoted 14 lines · Nicolas Pitre
This is the logical continuation of the
arch_reset()work that Russell did and therefore this must be applied on top of Russell's "reset" branch.Most
arch_idle()implementations are simply a call tocpu_do_idle()and can be eliminated in favor of a common call. However, some platforms require special idle handling and thearm_pm_idlehook is made available for those cases.Why "
arm_pm_idle"? Because there is already a generic "pm_idle", but its calling convention is rather awkward with regard to interrupts, so the default "pm_idle" handler will callarm_pm_idleif it is non null, orcpu_do_idleotherwise. The genericpm_idlehook still can be overriden as before.
Quoted 7 lines
Quoted 3 lines
This series is therefore meant to be functionally a big no-op i.e. everything should just behave as before, despite having more than 1000 lines of code and 55 files removed in the end.
Tested on picoxcell, works great.
Acked-and-tested-by Jamie Iles <[email protected]>
Great!
Quoted 6 lines
btw,
Quoted 1 line
[PATCH 20/20] ARM: big removal of now unused
arch_reset()I guess this should be "ARM: big removal of now unused
mach/system.h" or similar?
Indeed!
Nicolas
cover arch_idle() cleanup and mach/system.h removal
In reply to Nicolas PitreQuoted 7 lines · Nicolas Pitre
This is the logical continuation of the
arch_reset()work that Russell did and therefore this must be applied on top of Russell's "reset" branch.Most
arch_idle()implementations are simply a call tocpu_do_idle()and can be eliminated in favor of a common call. However, some platforms require special idle handling and thearm_pm_idlehook is made available for those cases.
Right, it's time for a decision. I was going to send the remainder of what's in my tree today.
However, that decision has been made for me with the latest conflict debacle between my tree and Linus' tree due to Samsung stuff, the timing of the merge window, the timing of linux-next, and the number of merges between what I was planning to push today and Linus' tree.
Essentially:
1. on Monday a patch was submitted to fix some of the fallout in Exynos for the restart cleanups. I applied this last night, and pushed it out. This morning, sfr reported that he had to drop that change because it was already fixed. I've had to back this change out.
2. There is not going to be another -next tree until after the weekend, so my new tree will not have had -next exposure.
3. The merge window is due to close Wednesday.
4. There are conflicts in these files:
arch/arm/mach-at91/at91sam9260.c arch/arm/mach-at91/at91sam9261.c arch/arm/mach-at91/at91sam9263.c arch/arm/mach-at91/at91sam9rl.c arch/arm/mach-exynos/common.c arch/arm/mach-mx5/mm.c arch/arm/mach-omap2/pm34xx.c arch/arm/mach-s5pc100/common.c arch/arm/mach-s5pv210/common.c
5. I don't think this idle stuff was in the -next tree Linus pulled when he opened the merge window. (This is the big one which says no to it.)
So, sending a pull request for the idle stuff in the last two days of the merge window, for a change which is quite big, which conflicts, which wasn't in -next before the merge window is just asking for trouble, and I'm not going to do it.
cover arch_idle() cleanup and mach/system.h removal
Quoted 4 lines · Russell King - ARM Linux
So, sending a pull request for the idle stuff in the last two days of the merge window, for a change which is quite big, which conflicts, which wasn't in -next before the merge window is just asking for trouble, and I'm not going to do it.
Too bad. Let's try to stage this early in your devel-stable branch for next cycle then.
Nicolas
cover arch_idle() cleanup and mach/system.h removal
Quoted 9 lines · Nicolas Pitre
Quoted 4 lines · Russell King - ARM Linux
So, sending a pull request for the idle stuff in the last two days of the merge window, for a change which is quite big, which conflicts, which wasn't in -next before the merge window is just asking for trouble, and I'm not going to do it.
Too bad. Let's try to stage this early in your devel-stable branch for next cycle then.
Arnd and myself just agreed this; once rc1 is out, could you please rebase on that, resend the pull request, and we'll merge it into both trees.
cover arch_idle() cleanup and mach/system.h removal
Quoted 8 lines · Russell King - ARM Linux
Quoted 7 lines · Nicolas Pitre
Quoted 4 lines · Russell King - ARM Linux
So, sending a pull request for the idle stuff in the last two days of the merge window, for a change which is quite big, which conflicts, which wasn't in -next before the merge window is just asking for trouble, and I'm not going to do it.
Quoted 5 lines
Quoted 2 lines
Too bad. Let's try to stage this early in your devel-stable branch for next cycle then.
Arnd and myself just agreed this; once rc1 is out, could you please rebase on that, resend the pull request, and we'll merge it into both trees.
Sure.
Nicolas
cover arch_idle() cleanup and mach/system.h removal
In reply to Russell King - ARM LinuxQuoted 8 lines · Russell King - ARM Linux
Quoted 7 lines · Nicolas Pitre
Quoted 4 lines · Russell King - ARM Linux
So, sending a pull request for the idle stuff in the last two days of the merge window, for a change which is quite big, which conflicts, which wasn't in -next before the merge window is just asking for trouble, and I'm not going to do it.
Quoted 6 lines
Quoted 2 lines
Too bad. Let's try to stage this early in your devel-stable branch for next cycle then.
Arnd and myself just agreed this; once rc1 is out, could you please rebase on that, resend the pull request, and we'll merge it into both trees.
Here it is.
The following changes since commit dcd6c92267155e70a94b3927bce681ce74b80d1f:
Linux 3.3-rc1 (2012-01-19 15:04:48 -0800)
are available in the git repository at:
git://git.linaro.org/people/nico/linux idle
for you to fetch changes up to a570067df9cc1b1821ca5255bbbe8adb67aca199:
ARM: big removal of now unused arch_idle() (2012-01-20 19:25:58 -0500)
----------------------------------------------------------------
Nicolas Pitre (23):
ARM: OMAP1: Fix pm_idle during suspend
ARM: clean up idle handlers
ARM: OMAP: convert idle handlers from pm_idle to arm_pm_idle
ARM: mach-s5pv210: use standard arch_idle()
ARM: mach-s5pc100: use standard arch_idle()
ARM: mach-s5p64x0: move idle handler from pm_idle to arm_pm_idle
ARM: mach-exynos: use standard arch_idle()
ARM: mach-at91: move special idle code out of line
ARM: mach-clps711x: move special idle code out of line
ARM: mach-ebsa110: move special idle code out of line
ARM: mach-gemini: move special idle code out of line
ARM: mach-h720x: move special idle code out of line
ARM: s3c24xx: move special idle code to out of line
ARM: plat-mxc: hook special idle handlers to arm_pm_idle
ARM: mach-msm: hook special idle handlers to arm_pm_idle
ARM: mach-ixp23xx: properly disable CPU idle call
ARM: mach-ixp4xx: properly disable CPU idle call
ARM: mach-shark: properly disable CPU idle call
ARM: mach-w90x900: properly disable CPU idle call
ARM: mach-s3c64xx: use standard arch_idle() implementation
ARM: mach-tegra: properly disable CPU idle call
ARM: substitute arch_idle()
ARM: big removal of now unused arch_idle()
arch/arm/include/asm/system.h | 1 + arch/arm/kernel/process.c | 27 +++++++----- arch/arm/mach-at91/at91cap9.c | 8 ++++ arch/arm/mach-at91/at91rm9200.c | 10 ++++ arch/arm/mach-at91/at91sam9260.c | 8 ++++ arch/arm/mach-at91/at91sam9261.c | 8 ++++ arch/arm/mach-at91/at91sam9263.c | 8 ++++ arch/arm/mach-at91/at91sam9g45.c | 7 +++ arch/arm/mach-at91/at91sam9rl.c | 8 ++++ arch/arm/mach-at91/at91x40.c | 12 +++++ arch/arm/mach-at91/include/mach/system.h | 50 ---------------------- arch/arm/mach-bcmring/include/mach/system.h | 28 ------------ arch/arm/mach-clps711x/common.c | 16 +++++++ arch/arm/mach-clps711x/include/mach/system.h | 35 --------------- arch/arm/mach-cns3xxx/include/mach/system.h | 25 ----------- arch/arm/mach-davinci/include/mach/system.h | 21 --------- arch/arm/mach-dove/include/mach/system.h | 17 ------- arch/arm/mach-ebsa110/core.c | 25 +++++++++++ arch/arm/mach-ebsa110/include/mach/system.h | 37 ---------------- arch/arm/mach-ep93xx/include/mach/system.h | 7 --- arch/arm/mach-exynos/common.c | 12 ----- arch/arm/mach-exynos/include/mach/system.h | 20 --------- arch/arm/mach-footbridge/include/mach/system.h | 13 ------ arch/arm/mach-gemini/Makefile | 2 +- arch/arm/mach-gemini/idle.c | 29 +++++++++++++ arch/arm/mach-gemini/include/mach/system.h | 14 ------ arch/arm/mach-gemini/irq.c | 4 +- arch/arm/mach-h720x/common.c | 18 ++++++++ arch/arm/mach-h720x/include/mach/system.h | 27 ------------ arch/arm/mach-highbank/include/mach/system.h | 24 ---------- arch/arm/mach-imx/mm-imx3.c | 52 +++++++++++------------ arch/arm/mach-imx/pm-imx27.c | 3 +- arch/arm/mach-integrator/include/mach/system.h | 33 -------------- arch/arm/mach-iop13xx/include/mach/system.h | 13 ------ arch/arm/mach-iop32x/include/mach/system.h | 13 ------ arch/arm/mach-iop33x/include/mach/system.h | 13 ------ arch/arm/mach-ixp2000/include/mach/system.h | 14 ------ arch/arm/mach-ixp23xx/core.c | 3 + arch/arm/mach-ixp23xx/include/mach/system.h | 16 ------- arch/arm/mach-ixp4xx/common.c | 6 +++ arch/arm/mach-ixp4xx/include/mach/system.h | 19 -------- arch/arm/mach-kirkwood/include/mach/system.h | 17 ------- arch/arm/mach-ks8695/include/mach/system.h | 27 ------------ arch/arm/mach-lpc32xx/include/mach/system.h | 27 ------------ arch/arm/mach-mmp/include/mach/system.h | 16 ------- arch/arm/mach-msm/idle.S | 36 ---------------- arch/arm/mach-msm/idle.c | 49 +++++++++++++++++++++ arch/arm/mach-msm/include/mach/system.h | 1 - arch/arm/mach-mv78xx0/include/mach/system.h | 17 ------- arch/arm/mach-mx5/mm.c | 28 +++++------- arch/arm/mach-mxs/include/mach/system.h | 25 ----------- arch/arm/mach-mxs/pm.c | 3 +- arch/arm/mach-netx/include/mach/system.h | 28 ------------ arch/arm/mach-nomadik/include/mach/system.h | 32 -------------- arch/arm/mach-omap1/include/mach/system.h | 5 -- arch/arm/mach-omap1/pm.c | 19 ++------- arch/arm/mach-omap2/include/mach/system.h | 5 -- arch/arm/mach-omap2/pm24xx.c | 4 +- arch/arm/mach-omap2/pm34xx.c | 6 +-- arch/arm/mach-omap2/pm44xx.c | 8 +-- arch/arm/mach-omap2/prm_common.c | 1 - arch/arm/mach-orion5x/include/mach/system.h | 19 -------- arch/arm/mach-picoxcell/include/mach/system.h | 26 ----------- arch/arm/mach-pnx4008/include/mach/system.h | 29 ------------- arch/arm/mach-prima2/include/mach/system.h | 17 ------- arch/arm/mach-pxa/include/mach/system.h | 15 ------- arch/arm/mach-realview/include/mach/system.h | 33 -------------- arch/arm/mach-rpc/include/mach/system.h | 13 ------ arch/arm/mach-s3c2410/include/mach/system.h | 54 ------------------------ arch/arm/mach-s3c2412/s3c2412.c | 4 +- arch/arm/mach-s3c2416/s3c2416.c | 3 - arch/arm/mach-s3c64xx/include/mach/system.h | 19 -------- arch/arm/mach-s5p64x0/common.c | 15 +++---- arch/arm/mach-s5p64x0/include/mach/system.h | 21 --------- arch/arm/mach-s5pc100/common.c | 12 ----- arch/arm/mach-s5pc100/include/mach/system.h | 19 -------- arch/arm/mach-s5pv210/common.c | 12 ----- arch/arm/mach-s5pv210/include/mach/system.h | 21 --------- arch/arm/mach-sa1100/include/mach/system.h | 9 ---- arch/arm/mach-shark/core.c | 6 +++ arch/arm/mach-shark/include/mach/system.h | 13 ------ arch/arm/mach-shmobile/include/mach/system.h | 5 -- arch/arm/mach-spear3xx/include/mach/system.h | 19 -------- arch/arm/mach-spear6xx/include/mach/system.h | 19 -------- arch/arm/mach-tegra/common.c | 3 +- arch/arm/mach-tegra/include/mach/system.h | 28 ------------ arch/arm/mach-u300/include/mach/system.h | 14 ------ arch/arm/mach-ux500/include/mach/system.h | 20 --------- arch/arm/mach-versatile/include/mach/system.h | 33 -------------- arch/arm/mach-vexpress/include/mach/system.h | 33 -------------- arch/arm/mach-vt8500/include/mach/system.h | 5 -- arch/arm/mach-w90x900/dev.c | 1 + arch/arm/mach-w90x900/include/mach/system.h | 19 -------- arch/arm/mach-zynq/include/mach/system.h | 23 ---------- arch/arm/plat-mxc/include/mach/system.h | 25 ----------- arch/arm/plat-omap/include/plat/system.h | 15 ------- arch/arm/plat-s3c24xx/cpu.c | 27 ++++++++++++ arch/arm/plat-spear/include/plat/system.h | 26 ----------- 98 files changed, 326 insertions(+), 1409 deletions(-) delete mode 100644 arch/arm/mach-at91/include/mach/system.h delete mode 100644 arch/arm/mach-bcmring/include/mach/system.h delete mode 100644 arch/arm/mach-clps711x/include/mach/system.h delete mode 100644 arch/arm/mach-cns3xxx/include/mach/system.h delete mode 100644 arch/arm/mach-davinci/include/mach/system.h delete mode 100644 arch/arm/mach-dove/include/mach/system.h delete mode 100644 arch/arm/mach-ebsa110/include/mach/system.h delete mode 100644 arch/arm/mach-ep93xx/include/mach/system.h delete mode 100644 arch/arm/mach-exynos/include/mach/system.h delete mode 100644 arch/arm/mach-footbridge/include/mach/system.h create mode 100644 arch/arm/mach-gemini/idle.c delete mode 100644 arch/arm/mach-h720x/include/mach/system.h delete mode 100644 arch/arm/mach-highbank/include/mach/system.h delete mode 100644 arch/arm/mach-integrator/include/mach/system.h delete mode 100644 arch/arm/mach-iop13xx/include/mach/system.h delete mode 100644 arch/arm/mach-iop32x/include/mach/system.h delete mode 100644 arch/arm/mach-iop33x/include/mach/system.h delete mode 100644 arch/arm/mach-ixp2000/include/mach/system.h delete mode 100644 arch/arm/mach-ixp23xx/include/mach/system.h delete mode 100644 arch/arm/mach-ixp4xx/include/mach/system.h delete mode 100644 arch/arm/mach-kirkwood/include/mach/system.h delete mode 100644 arch/arm/mach-ks8695/include/mach/system.h delete mode 100644 arch/arm/mach-lpc32xx/include/mach/system.h delete mode 100644 arch/arm/mach-mmp/include/mach/system.h delete mode 100644 arch/arm/mach-msm/idle.S create mode 100644 arch/arm/mach-msm/idle.c delete mode 100644 arch/arm/mach-mv78xx0/include/mach/system.h delete mode 100644 arch/arm/mach-mxs/include/mach/system.h delete mode 100644 arch/arm/mach-netx/include/mach/system.h delete mode 100644 arch/arm/mach-nomadik/include/mach/system.h delete mode 100644 arch/arm/mach-omap1/include/mach/system.h delete mode 100644 arch/arm/mach-omap2/include/mach/system.h delete mode 100644 arch/arm/mach-orion5x/include/mach/system.h delete mode 100644 arch/arm/mach-picoxcell/include/mach/system.h delete mode 100644 arch/arm/mach-pnx4008/include/mach/system.h delete mode 100644 arch/arm/mach-prima2/include/mach/system.h delete mode 100644 arch/arm/mach-pxa/include/mach/system.h delete mode 100644 arch/arm/mach-realview/include/mach/system.h delete mode 100644 arch/arm/mach-rpc/include/mach/system.h delete mode 100644 arch/arm/mach-s3c2410/include/mach/system.h delete mode 100644 arch/arm/mach-s3c64xx/include/mach/system.h delete mode 100644 arch/arm/mach-s5p64x0/include/mach/system.h delete mode 100644 arch/arm/mach-s5pc100/include/mach/system.h delete mode 100644 arch/arm/mach-s5pv210/include/mach/system.h delete mode 100644 arch/arm/mach-sa1100/include/mach/system.h delete mode 100644 arch/arm/mach-shark/include/mach/system.h delete mode 100644 arch/arm/mach-spear3xx/include/mach/system.h delete mode 100644 arch/arm/mach-spear6xx/include/mach/system.h delete mode 100644 arch/arm/mach-tegra/include/mach/system.h delete mode 100644 arch/arm/mach-u300/include/mach/system.h delete mode 100644 arch/arm/mach-ux500/include/mach/system.h delete mode 100644 arch/arm/mach-versatile/include/mach/system.h delete mode 100644 arch/arm/mach-vexpress/include/mach/system.h delete mode 100644 arch/arm/mach-w90x900/include/mach/system.h delete mode 100644 arch/arm/mach-zynq/include/mach/system.h delete mode 100644 arch/arm/plat-mxc/include/mach/system.h delete mode 100644 arch/arm/plat-omap/include/plat/system.h delete mode 100644 arch/arm/plat-spear/include/plat/system.h