All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/20] arch_idle() cleanup and mach/system.h removal
@ 2011-12-19  9:47 Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 01/20] ARM: clean up idle handlers Nicolas Pitre
                   ` (21 more replies)
  0 siblings, 22 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

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(-)

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 01/20] ARM: clean up idle handlers
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19 19:07   ` Tony Lindgren
                     ` (2 more replies)
  2011-12-19  9:47 ` [PATCH 02/20] ARM: mach-s5pv210: use standard arch_idle() Nicolas Pitre
                   ` (20 subsequent siblings)
  21 siblings, 3 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

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.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 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(-)

diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
index 03775b14be..8f1adbbbed 100644
--- a/arch/arm/include/asm/system.h
+++ b/arch/arm/include/asm/system.h
@@ -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)
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index a92ca50f6f..bf904624c5 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -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();
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
index 89ea20ca0c..575950ef81 100644
--- a/arch/arm/mach-omap1/pm.c
+++ b/arch/arm/mach-omap1/pm.c
@@ -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);
diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c
index ef8595c802..7903087182 100644
--- a/arch/arm/mach-omap2/pm24xx.c
+++ b/arch/arm/mach-omap2/pm24xx.c
@@ -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;
 }
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index fa637dfdda..c4b3d7291b 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -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();
 
 	/*
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
index 8edb015f56..b02124ce14 100644
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -16,6 +16,8 @@
 #include <linux/err.h>
 #include <linux/slab.h>
 
+#include <asm/system.h>
+
 #include "common.h"
 #include "powerdomain.h"
 
diff --git a/arch/arm/mach-s5p64x0/cpu.c b/arch/arm/mach-s5p64x0/cpu.c
index ecab40cf19..b776c2b167 100644
--- a/arch/arm/mach-s5p64x0/cpu.c
+++ b/arch/arm/mach-s5p64x0/cpu.c
@@ -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);
 }
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 02/20] ARM: mach-s5pv210: use standard arch_idle()
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 01/20] ARM: clean up idle handlers Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 03/20] ARM: mach-s5pc100: " Nicolas Pitre
                   ` (19 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

This is equivalent and more similar to existing architectures.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
---
 arch/arm/mach-s5pv210/cpu.c                 |   12 ------------
 arch/arm/mach-s5pv210/include/mach/system.h |    2 +-
 2 files changed, 1 insertions(+), 13 deletions(-)

diff --git a/arch/arm/mach-s5pv210/cpu.c b/arch/arm/mach-s5pv210/cpu.c
index 4c7b071131..8d500a7b80 100644
--- a/arch/arm/mach-s5pv210/cpu.c
+++ b/arch/arm/mach-s5pv210/cpu.c
@@ -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);
 }
diff --git a/arch/arm/mach-s5pv210/include/mach/system.h b/arch/arm/mach-s5pv210/include/mach/system.h
index af8a200b21..0c1cb1f327 100644
--- a/arch/arm/mach-s5pv210/include/mach/system.h
+++ b/arch/arm/mach-s5pv210/include/mach/system.h
@@ -17,7 +17,7 @@
 
 static void arch_idle(void)
 {
-	/* nothing here yet */
+	cpu_do_idle();
 }
 
 #endif /* __ASM_ARCH_SYSTEM_H */
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 03/20] ARM: mach-s5pc100: use standard arch_idle()
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 01/20] ARM: clean up idle handlers Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 02/20] ARM: mach-s5pv210: use standard arch_idle() Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 04/20] ARM: mach-exynos: " Nicolas Pitre
                   ` (18 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

This is equivalent and more similar to existing architectures.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
---
 arch/arm/mach-s5pc100/cpu.c                 |   12 ------------
 arch/arm/mach-s5pc100/include/mach/system.h |    2 +-
 2 files changed, 1 insertions(+), 13 deletions(-)

diff --git a/arch/arm/mach-s5pc100/cpu.c b/arch/arm/mach-s5pc100/cpu.c
index fd2708e7d8..82da5d706a 100644
--- a/arch/arm/mach-s5pc100/cpu.c
+++ b/arch/arm/mach-s5pc100/cpu.c
@@ -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);
 }
diff --git a/arch/arm/mach-s5pc100/include/mach/system.h b/arch/arm/mach-s5pc100/include/mach/system.h
index a9ea57c066..ebfeb943f5 100644
--- a/arch/arm/mach-s5pc100/include/mach/system.h
+++ b/arch/arm/mach-s5pc100/include/mach/system.h
@@ -15,7 +15,7 @@
 
 static void arch_idle(void)
 {
-	/* nothing here yet */
+	cpu_do_idle();
 }
 
 #endif /* __ASM_ARCH_IRQ_H */
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 04/20] ARM: mach-exynos: use standard arch_idle()
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (2 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 03/20] ARM: mach-s5pc100: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 05/20] ARM: mach-at91: move special idle code out of line Nicolas Pitre
                   ` (17 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

This is equivalent and more similar to existing architectures.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
---
 arch/arm/mach-exynos/cpu.c                 |   12 ------------
 arch/arm/mach-exynos/include/mach/system.h |    2 +-
 2 files changed, 1 insertions(+), 13 deletions(-)

diff --git a/arch/arm/mach-exynos/cpu.c b/arch/arm/mach-exynos/cpu.c
index d933cb106f..c9d0f0dfbb 100644
--- a/arch/arm/mach-exynos/cpu.c
+++ b/arch/arm/mach-exynos/cpu.c
@@ -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);
 }
diff --git a/arch/arm/mach-exynos/include/mach/system.h b/arch/arm/mach-exynos/include/mach/system.h
index 5e3220c18f..4d5a9d73fb 100644
--- a/arch/arm/mach-exynos/include/mach/system.h
+++ b/arch/arm/mach-exynos/include/mach/system.h
@@ -17,6 +17,6 @@
 
 static void arch_idle(void)
 {
-	/* nothing here yet */
+	cpu_do_idle();
 }
 #endif /* __ASM_ARCH_SYSTEM_H */
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 05/20] ARM: mach-at91: move special idle code out of line
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (3 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 04/20] ARM: mach-exynos: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 06/20] ARM: mach-clps711x: " Nicolas Pitre
                   ` (16 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

... and hook it to arm_pm_idle.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 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(-)

diff --git a/arch/arm/mach-at91/at91cap9.c b/arch/arm/mach-at91/at91cap9.c
index 29373397d2..f1c829f2a0 100644
--- a/arch/arm/mach-at91/at91cap9.c
+++ b/arch/arm/mach-at91/at91cap9.c
@@ -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);
diff --git a/arch/arm/mach-at91/at91rm9200.c b/arch/arm/mach-at91/at91rm9200.c
index 430a9fdc3d..4327aa26ad 100644
--- a/arch/arm/mach-at91/at91rm9200.c
+++ b/arch/arm/mach-at91/at91rm9200.c
@@ -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)
diff --git a/arch/arm/mach-at91/at91sam9260.c b/arch/arm/mach-at91/at91sam9260.c
index ec9e23dbce..66751edea1 100644
--- a/arch/arm/mach-at91/at91sam9260.c
+++ b/arch/arm/mach-at91/at91sam9260.c
@@ -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)
diff --git a/arch/arm/mach-at91/at91sam9261.c b/arch/arm/mach-at91/at91sam9261.c
index 19ac7c0729..40ac62024d 100644
--- a/arch/arm/mach-at91/at91sam9261.c
+++ b/arch/arm/mach-at91/at91sam9261.c
@@ -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)
diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c
index 50d0163100..5e2485bcd3 100644
--- a/arch/arm/mach-at91/at91sam9263.c
+++ b/arch/arm/mach-at91/at91sam9263.c
@@ -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);
diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c
index ff21f7a60c..e3a0f0c078 100644
--- a/arch/arm/mach-at91/at91sam9g45.c
+++ b/arch/arm/mach-at91/at91sam9g45.c
@@ -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);
diff --git a/arch/arm/mach-at91/at91sam9rl.c b/arch/arm/mach-at91/at91sam9rl.c
index 61cbb46f5b..5309b44806 100644
--- a/arch/arm/mach-at91/at91sam9rl.c
+++ b/arch/arm/mach-at91/at91sam9rl.c
@@ -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);
diff --git a/arch/arm/mach-at91/at91x40.c b/arch/arm/mach-at91/at91x40.c
index 56ba3bd035..0154b7f44f 100644
--- a/arch/arm/mach-at91/at91x40.c
+++ b/arch/arm/mach-at91/at91x40.c
@@ -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);
 }
diff --git a/arch/arm/mach-at91/include/mach/system.h b/arch/arm/mach-at91/include/mach/system.h
index cbd64f3bce..ba85c441ca 100644
--- a/arch/arm/mach-at91/include/mach/system.h
+++ b/arch/arm/mach-at91/include/mach/system.h
@@ -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
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 06/20] ARM: mach-clps711x: move special idle code out of line
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (4 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 05/20] ARM: mach-at91: move special idle code out of line Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 07/20] ARM: mach-ebsa110: " Nicolas Pitre
                   ` (15 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

... and hook it to arm_pm_idle.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 arch/arm/mach-clps711x/common.c              |   16 ++++++++++++++++
 arch/arm/mach-clps711x/include/mach/system.h |    5 +----
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-clps711x/common.c b/arch/arm/mach-clps711x/common.c
index ab1711b9b4..8736c1acc1 100644
--- a/arch/arm/mach-clps711x/common.c
+++ b/arch/arm/mach-clps711x/common.c
@@ -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);
diff --git a/arch/arm/mach-clps711x/include/mach/system.h b/arch/arm/mach-clps711x/include/mach/system.h
index 23d6ef8c84..0e74e1e9cc 100644
--- a/arch/arm/mach-clps711x/include/mach/system.h
+++ b/arch/arm/mach-clps711x/include/mach/system.h
@@ -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
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 07/20] ARM: mach-ebsa110: move special idle code out of line
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (5 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 06/20] ARM: mach-clps711x: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 08/20] ARM: mach-gemini: " Nicolas Pitre
                   ` (14 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

... and hook it to arm_pm_idle.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 arch/arm/mach-ebsa110/core.c                |   25 +++++++++++++++++++++++++
 arch/arm/mach-ebsa110/include/mach/system.h |   21 +--------------------
 2 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/arch/arm/mach-ebsa110/core.c b/arch/arm/mach-ebsa110/core.c
index 294aad07f7..804c9122b7 100644
--- a/arch/arm/mach-ebsa110/core.c
+++ b/arch/arm/mach-ebsa110/core.c
@@ -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 */
+	asm volatile ("mcr p15, 0, ip, c15, c2, 2" : : : "cc");
+
+	/* wait for an interrupt to occur */
+	while (!*irq_stat);
+
+	/* enable clock switching */
+	asm volatile ("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));
 }
 
diff --git a/arch/arm/mach-ebsa110/include/mach/system.h b/arch/arm/mach-ebsa110/include/mach/system.h
index 2e4af65edb..b4601699b3 100644
--- a/arch/arm/mach-ebsa110/include/mach/system.h
+++ b/arch/arm/mach-ebsa110/include/mach/system.h
@@ -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 */
-	asm volatile ("mcr p15, 0, ip, c15, c2, 2" : : : "cc");
-
-	/* wait for an interrupt to occur */
-	while (!*irq_stat);
-
-	/* enable clock switching */
-	asm volatile ("mcr p15, 0, ip, c15, c1, 2" : : : "cc");
+	cpu_do_idle();
 }
 
 #endif
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 08/20] ARM: mach-gemini: move special idle code out of line
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (6 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 07/20] ARM: mach-ebsa110: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19 17:55   ` Tony Lindgren
  2011-12-19  9:47 ` [PATCH 09/20] ARM: mach-h720x: " Nicolas Pitre
                   ` (13 subsequent siblings)
  21 siblings, 1 reply; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

... and hook it to arm_pm_idle.

Signed-off-by: nicolas Pitre <nicolas.pitre@linaro.org>
---
 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

diff --git a/arch/arm/mach-gemini/Makefile b/arch/arm/mach-gemini/Makefile
index c5b24b95a7..7355c0bbcb 100644
--- a/arch/arm/mach-gemini/Makefile
+++ b/arch/arm/mach-gemini/Makefile
@@ -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
diff --git a/arch/arm/mach-gemini/idle.c b/arch/arm/mach-gemini/idle.c
new file mode 100644
index 0000000000..92bbd6bb60
--- /dev/null
+++ b/arch/arm/mach-gemini/idle.c
@@ -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);
diff --git a/arch/arm/mach-gemini/include/mach/system.h b/arch/arm/mach-gemini/include/mach/system.h
index 860cff8fb7..1bb2734e73 100644
--- a/arch/arm/mach-gemini/include/mach/system.h
+++ b/arch/arm/mach-gemini/include/mach/system.h
@@ -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();
 }
 
diff --git a/arch/arm/mach-gemini/irq.c b/arch/arm/mach-gemini/irq.c
index 9485a8fdf8..65bc4f0607 100644
--- a/arch/arm/mach-gemini/irq.c
+++ b/arch/arm/mach-gemini/irq.c
@@ -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();
 
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 09/20] ARM: mach-h720x: move special idle code out of line
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (7 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 08/20] ARM: mach-gemini: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 10/20] ARM: s3c24xx: move special idle code to " Nicolas Pitre
                   ` (12 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

... and hook it to arm_pm_idle.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 arch/arm/mach-h720x/common.c              |   18 ++++++++++++++++++
 arch/arm/mach-h720x/include/mach/system.h |    7 +------
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/arch/arm/mach-h720x/common.c b/arch/arm/mach-h720x/common.c
index f8a2f6bb54..e756d1ac00 100644
--- a/arch/arm/mach-h720x/common.c
+++ b/arch/arm/mach-h720x/common.c
@@ -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);
diff --git a/arch/arm/mach-h720x/include/mach/system.h b/arch/arm/mach-h720x/include/mach/system.h
index 16ac46e239..008ed164b2 100644
--- a/arch/arm/mach-h720x/include/mach/system.h
+++ b/arch/arm/mach-h720x/include/mach/system.h
@@ -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
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 10/20] ARM: s3c24xx: move special idle code to out of line
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (8 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 09/20] ARM: mach-h720x: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 11/20] ARM: plat-mxc: hook special idle handlers to arm_pm_idle Nicolas Pitre
                   ` (11 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

... and hook it to arm_pm_idle.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 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(-)

diff --git a/arch/arm/mach-s3c2410/include/mach/system.h b/arch/arm/mach-s3c2410/include/mach/system.h
index a8cbca6701..0cff890b9b 100644
--- a/arch/arm/mach-s3c2410/include/mach/system.h
+++ b/arch/arm/mach-s3c2410/include/mach/system.h
@@ -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>
diff --git a/arch/arm/mach-s3c2412/s3c2412.c b/arch/arm/mach-s3c2412/s3c2412.c
index 57a1e01e4e..d1c855d125 100644
--- a/arch/arm/mach-s3c2412/s3c2412.c
+++ b/arch/arm/mach-s3c2412/s3c2412.c
@@ -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 */
 
diff --git a/arch/arm/mach-s3c2416/s3c2416.c b/arch/arm/mach-s3c2416/s3c2416.c
index ee214bc83c..456cc11cfc 100644
--- a/arch/arm/mach-s3c2416/s3c2416.c
+++ b/arch/arm/mach-s3c2416/s3c2416.c
@@ -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;
diff --git a/arch/arm/plat-s3c24xx/cpu.c b/arch/arm/plat-s3c24xx/cpu.c
index 1121df13e1..49094b13b4 100644
--- a/arch/arm/plat-s3c24xx/cpu.c
+++ b/arch/arm/plat-s3c24xx/cpu.c
@@ -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));
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 11/20] ARM: plat-mxc: hook special idle handlers to arm_pm_idle
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (9 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 10/20] ARM: s3c24xx: move special idle code to " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-25  1:53   ` Shawn Guo
  2011-12-19  9:47 ` [PATCH 12/20] ARM: mach-msm: " Nicolas Pitre
                   ` (10 subsequent siblings)
  21 siblings, 1 reply; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

... and remove redundant include of <mach/system.h>.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 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(-)

diff --git a/arch/arm/mach-imx/mm-imx3.c b/arch/arm/mach-imx/mm-imx3.c
index 9f0e82ec33..e7a14396b2 100644
--- a/arch/arm/mach-imx/mm-imx3.c
+++ b/arch/arm/mach-imx/mm-imx3.c
@@ -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)
diff --git a/arch/arm/mach-imx/pm-imx27.c b/arch/arm/mach-imx/pm-imx27.c
index e455d2f855..6fcffa7db9 100644
--- a/arch/arm/mach-imx/pm-imx27.c
+++ b/arch/arm/mach-imx/pm-imx27.c
@@ -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:
diff --git a/arch/arm/mach-mx5/mm.c b/arch/arm/mach-mx5/mm.c
index 26eacc9d0d..65139a60a4 100644
--- a/arch/arm/mach-mx5/mm.c
+++ b/arch/arm/mach-mx5/mm.c
@@ -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)
diff --git a/arch/arm/mach-mxs/pm.c b/arch/arm/mach-mxs/pm.c
index fb042da29b..a9b4bbcdaf 100644
--- a/arch/arm/mach-mxs/pm.c
+++ b/arch/arm/mach-mxs/pm.c
@@ -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:
diff --git a/arch/arm/plat-mxc/include/mach/common.h b/arch/arm/plat-mxc/include/mach/common.h
index 4ee98d56df..ca04e7d6ae 100644
--- a/arch/arm/plat-mxc/include/mach/common.h
+++ b/arch/arm/plat-mxc/include/mach/common.h
@@ -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 *);
diff --git a/arch/arm/plat-mxc/include/mach/system.h b/arch/arm/plat-mxc/include/mach/system.h
index b9c71b4090..13ad0df2e8 100644
--- a/arch/arm/plat-mxc/include/mach/system.h
+++ b/arch/arm/plat-mxc/include/mach/system.h
@@ -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__ */
diff --git a/arch/arm/plat-mxc/system.c b/arch/arm/plat-mxc/system.c
index 80de9e24d4..e8f4a5c390 100644
--- a/arch/arm/plat-mxc/system.c
+++ b/arch/arm/plat-mxc/system.c
@@ -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;
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 12/20] ARM: mach-msm: hook special idle handlers to arm_pm_idle
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (10 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 11/20] ARM: plat-mxc: hook special idle handlers to arm_pm_idle Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19 17:56   ` Tony Lindgren
  2011-12-19 23:21   ` David Brown
  2011-12-19  9:47 ` [PATCH 13/20] ARM: mach-ixp23xx: properly disable CPU idle call Nicolas Pitre
                   ` (9 subsequent siblings)
  21 siblings, 2 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 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

diff --git a/arch/arm/mach-msm/idle.S b/arch/arm/mach-msm/idle.S
deleted file mode 100644
index 6a94f05271..0000000000
--- a/arch/arm/mach-msm/idle.S
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-msm/idle.c b/arch/arm/mach-msm/idle.c
new file mode 100644
index 0000000000..f9c955f37f
--- /dev/null
+++ b/arch/arm/mach-msm/idle.c
@@ -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. 
+ *
+ * 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/init.h>
+#include <asm/system.h>
+
+static void msm_idle(void)
+{
+#ifdef CONFIG_MSM7X00A_IDLE
+	asm volatile (
+
+	"mrc     p15, 0, r1, c1, c0, 0    /* read current CR    */ \n\t"
+	"bic     r0, r1, #(1 << 2)        /* clear dcache bit   */ \n\t"
+	"bic     r0, r0, #(1 << 12)       /* clear icache bit   */ \n\t"
+	"mcr     p15, 0, r0, c1, c0, 0    /* disable d/i cache  */ \n\t"
+
+	"mov     r0, #0                   /* prepare wfi value  */ \n\t"
+	"mcr     p15, 0, r0, c7, c10, 0   /* flush the cache    */ \n\t"
+	"mcr     p15, 0, r0, c7, c10, 4   /* memory barrier     */ \n\t"
+	"mcr     p15, 0, r0, c7, c0, 4    /* wait for interrupt */ \n\t"
+
+	"mcr     p15, 0, r1, c1, c0, 0    /* restore d/i cache  */ \n\t"
+
+	: : : "r0","r1" );
+#endif
+}
+
+static int __init msm_idle_init(void)
+{
+	arm_pm_idle = msm_idle;
+	return 0;
+}
+
+arch_initcall(msm_idle_init);
diff --git a/arch/arm/mach-msm/include/mach/system.h b/arch/arm/mach-msm/include/mach/system.h
index 311db2b35d..f2c049526b 100644
--- a/arch/arm/mach-msm/include/mach/system.h
+++ b/arch/arm/mach-msm/include/mach/system.h
@@ -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
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 13/20] ARM: mach-ixp23xx: properly disable CPU idle call
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (11 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 12/20] ARM: mach-msm: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 14/20] ARM: mach-ixp4xx: " Nicolas Pitre
                   ` (8 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 arch/arm/mach-ixp23xx/core.c                |    3 +++
 arch/arm/mach-ixp23xx/include/mach/system.h |    5 +----
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-ixp23xx/core.c b/arch/arm/mach-ixp23xx/core.c
index 0923bb905c..7c1495e4fe 100644
--- a/arch/arm/mach-ixp23xx/core.c
+++ b/arch/arm/mach-ixp23xx/core.c
@@ -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));
 }
diff --git a/arch/arm/mach-ixp23xx/include/mach/system.h b/arch/arm/mach-ixp23xx/include/mach/system.h
index 277dda7334..69f80006fc 100644
--- a/arch/arm/mach-ixp23xx/include/mach/system.h
+++ b/arch/arm/mach-ixp23xx/include/mach/system.h
@@ -9,8 +9,5 @@
  */
 static inline void arch_idle(void)
 {
-#if 0
-	if (!hlt_counter)
-		cpu_do_idle();
-#endif
+	cpu_do_idle();
 }
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 14/20] ARM: mach-ixp4xx: properly disable CPU idle call
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (12 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 13/20] ARM: mach-ixp23xx: properly disable CPU idle call Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 15/20] ARM: mach-shark: " Nicolas Pitre
                   ` (7 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 arch/arm/mach-ixp4xx/common.c              |    6 ++++++
 arch/arm/mach-ixp4xx/include/mach/system.h |    5 -----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
index 04aa12103b..ef39c02f43 100644
--- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c
@@ -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;
 
diff --git a/arch/arm/mach-ixp4xx/include/mach/system.h b/arch/arm/mach-ixp4xx/include/mach/system.h
index 140a9bef44..768ac09d0f 100644
--- a/arch/arm/mach-ixp4xx/include/mach/system.h
+++ b/arch/arm/mach-ixp4xx/include/mach/system.h
@@ -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
 }
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 15/20] ARM: mach-shark: properly disable CPU idle call
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (13 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 14/20] ARM: mach-ixp4xx: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 16/20] ARM: mach-w90x900: " Nicolas Pitre
                   ` (6 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 arch/arm/mach-shark/core.c                |    6 ++++++
 arch/arm/mach-shark/include/mach/system.h |    1 +
 2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-shark/core.c b/arch/arm/mach-shark/core.c
index a851c254ad..487a12af8c 100644
--- a/arch/arm/mach-shark/core.c
+++ b/arch/arm/mach-shark/core.c
@@ -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,
diff --git a/arch/arm/mach-shark/include/mach/system.h b/arch/arm/mach-shark/include/mach/system.h
index 1b2f2c5050..1ec8d6c383 100644
--- a/arch/arm/mach-shark/include/mach/system.h
+++ b/arch/arm/mach-shark/include/mach/system.h
@@ -8,6 +8,7 @@
 
 static inline void arch_idle(void)
 {
+	cpu_do_idle();
 }
 
 #endif
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 16/20] ARM: mach-w90x900: properly disable CPU idle call
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (14 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 15/20] ARM: mach-shark: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 17/20] ARM: mach-s3c64xx: " Nicolas Pitre
                   ` (5 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: nicolas Pitre <nicolas.pitre@linaro.org>
---
 arch/arm/mach-w90x900/dev.c                 |    1 +
 arch/arm/mach-w90x900/include/mach/system.h |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-w90x900/dev.c b/arch/arm/mach-w90x900/dev.c
index 7a1fa6adb7..c30aeaaa93 100644
--- a/arch/arm/mach-w90x900/dev.c
+++ b/arch/arm/mach-w90x900/dev.c
@@ -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,
diff --git a/arch/arm/mach-w90x900/include/mach/system.h b/arch/arm/mach-w90x900/include/mach/system.h
index 2aaeb93116..f713161ee5 100644
--- a/arch/arm/mach-w90x900/include/mach/system.h
+++ b/arch/arm/mach-w90x900/include/mach/system.h
@@ -16,4 +16,5 @@
  */
 static void arch_idle(void)
 {
+	cpu_do_idle();
 }
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 17/20] ARM: mach-s3c64xx: properly disable CPU idle call
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (15 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 16/20] ARM: mach-w90x900: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-20 15:03   ` Mark Brown
  2011-12-19  9:47 ` [PATCH 18/20] ARM: mach-tegra: " Nicolas Pitre
                   ` (4 subsequent siblings)
  21 siblings, 1 reply; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: nicolas Pitre <nicolas.pitre@linaro.org>
---
 arch/arm/mach-s3c64xx/cpu.c                 |    2 ++
 arch/arm/mach-s3c64xx/include/mach/system.h |    2 +-
 2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-s3c64xx/cpu.c b/arch/arm/mach-s3c64xx/cpu.c
index de085b798a..90c26bbe6b 100644
--- a/arch/arm/mach-s3c64xx/cpu.c
+++ b/arch/arm/mach-s3c64xx/cpu.c
@@ -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);
diff --git a/arch/arm/mach-s3c64xx/include/mach/system.h b/arch/arm/mach-s3c64xx/include/mach/system.h
index d8ca5786ba..0868f26c83 100644
--- a/arch/arm/mach-s3c64xx/include/mach/system.h
+++ b/arch/arm/mach-s3c64xx/include/mach/system.h
@@ -15,7 +15,7 @@
 
 static void arch_idle(void)
 {
-	/* nothing here yet */
+	cpu_do_idle();
 }
 
 static void arch_reset(char mode, const char *cmd)
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 18/20] ARM: mach-tegra: properly disable CPU idle call
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (16 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 17/20] ARM: mach-s3c64xx: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19  9:47 ` [PATCH 19/20] ARM: substitute arch_idle() Nicolas Pitre
                   ` (3 subsequent siblings)
  21 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

Signed-off-by: nicolas Pitre <nicolas.pitre@linaro.org>
---
 arch/arm/mach-tegra/common.c              |    3 ++-
 arch/arm/mach-tegra/include/mach/system.h |    1 +
 2 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c
index 20f396d740..ca0a297b72 100644
--- a/arch/arm/mach-tegra/common.c
+++ b/arch/arm/mach-tegra/common.c
@@ -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);
diff --git a/arch/arm/mach-tegra/include/mach/system.h b/arch/arm/mach-tegra/include/mach/system.h
index a312988bf6..968ea2b052 100644
--- a/arch/arm/mach-tegra/include/mach/system.h
+++ b/arch/arm/mach-tegra/include/mach/system.h
@@ -23,6 +23,7 @@
 
 static inline void arch_idle(void)
 {
+	cpu_do_idle();
 }
 
 #endif
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 19/20] ARM: substitute arch_idle()
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (17 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 18/20] ARM: mach-tegra: " Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19 19:08   ` Tony Lindgren
  2011-12-19  9:47 ` [PATCH 20/20] ARM: big removal of now unused arch_reset() Nicolas Pitre
                   ` (2 subsequent siblings)
  21 siblings, 1 reply; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

Now 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.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 arch/arm/kernel/process.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index bf904624c5..4a04b2d661 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -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();
 }
 
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 20/20] ARM: big removal of now unused arch_reset()
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (18 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 19/20] ARM: substitute arch_idle() Nicolas Pitre
@ 2011-12-19  9:47 ` Nicolas Pitre
  2011-12-19 18:15   ` H Hartley Sweeten
                     ` (3 more replies)
  2011-12-19 18:57 ` [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Jamie Iles
  2012-01-13 10:43 ` Russell King - ARM Linux
  21 siblings, 4 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19  9:47 UTC (permalink / raw)
  To: linux-arm-kernel

When this is the only content remaining in mach/system.h then the
whole file is removed.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
 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

diff --git a/arch/arm/mach-at91/include/mach/system.h b/arch/arm/mach-at91/include/mach/system.h
deleted file mode 100644
index ba85c441ca..0000000000
--- a/arch/arm/mach-at91/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-bcmring/include/mach/system.h b/arch/arm/mach-bcmring/include/mach/system.h
deleted file mode 100644
index cb78250db6..0000000000
--- a/arch/arm/mach-bcmring/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-clps711x/include/mach/system.h b/arch/arm/mach-clps711x/include/mach/system.h
deleted file mode 100644
index 0e74e1e9cc..0000000000
--- a/arch/arm/mach-clps711x/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-cns3xxx/include/mach/system.h b/arch/arm/mach-cns3xxx/include/mach/system.h
deleted file mode 100644
index 9e56b7dc13..0000000000
--- a/arch/arm/mach-cns3xxx/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-davinci/include/mach/system.h b/arch/arm/mach-davinci/include/mach/system.h
deleted file mode 100644
index fcb7a015ab..0000000000
--- a/arch/arm/mach-davinci/include/mach/system.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * DaVinci system defines
- *
- * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
- *
- * 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 */
diff --git a/arch/arm/mach-dove/include/mach/system.h b/arch/arm/mach-dove/include/mach/system.h
deleted file mode 100644
index 3027954f61..0000000000
--- a/arch/arm/mach-dove/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-ebsa110/include/mach/system.h b/arch/arm/mach-ebsa110/include/mach/system.h
deleted file mode 100644
index b4601699b3..0000000000
--- a/arch/arm/mach-ebsa110/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-ep93xx/include/mach/system.h b/arch/arm/mach-ep93xx/include/mach/system.h
deleted file mode 100644
index b5bec7cb9b..0000000000
--- a/arch/arm/mach-ep93xx/include/mach/system.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/*
- * arch/arm/mach-ep93xx/include/mach/system.h
- */
-static inline void arch_idle(void)
-{
-	cpu_do_idle();
-}
diff --git a/arch/arm/mach-exynos/include/mach/system.h b/arch/arm/mach-exynos/include/mach/system.h
deleted file mode 100644
index 4d5a9d73fb..0000000000
--- a/arch/arm/mach-exynos/include/mach/system.h
+++ /dev/null
@@ -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 */
diff --git a/arch/arm/mach-footbridge/include/mach/system.h b/arch/arm/mach-footbridge/include/mach/system.h
deleted file mode 100644
index a174a5841b..0000000000
--- a/arch/arm/mach-footbridge/include/mach/system.h
+++ /dev/null
@@ -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();
-}
diff --git a/arch/arm/mach-gemini/include/mach/system.h b/arch/arm/mach-gemini/include/mach/system.h
deleted file mode 100644
index 1bb2734e73..0000000000
--- a/arch/arm/mach-gemini/include/mach/system.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- *  Copyright (C) 2001-2006 Storlink, Corp.
- *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
- *
- * 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 */
diff --git a/arch/arm/mach-h720x/include/mach/system.h b/arch/arm/mach-h720x/include/mach/system.h
deleted file mode 100644
index 008ed164b2..0000000000
--- a/arch/arm/mach-h720x/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-highbank/include/mach/system.h b/arch/arm/mach-highbank/include/mach/system.h
deleted file mode 100644
index b1d8b5fbe3..0000000000
--- a/arch/arm/mach-highbank/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-integrator/include/mach/system.h b/arch/arm/mach-integrator/include/mach/system.h
deleted file mode 100644
index 901514eba4..0000000000
--- a/arch/arm/mach-integrator/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-iop13xx/include/mach/system.h b/arch/arm/mach-iop13xx/include/mach/system.h
deleted file mode 100644
index 1f31ed3f8a..0000000000
--- a/arch/arm/mach-iop13xx/include/mach/system.h
+++ /dev/null
@@ -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();
-}
diff --git a/arch/arm/mach-iop32x/include/mach/system.h b/arch/arm/mach-iop32x/include/mach/system.h
deleted file mode 100644
index 4a88727bca..0000000000
--- a/arch/arm/mach-iop32x/include/mach/system.h
+++ /dev/null
@@ -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();
-}
diff --git a/arch/arm/mach-iop33x/include/mach/system.h b/arch/arm/mach-iop33x/include/mach/system.h
deleted file mode 100644
index 4f98e76539..0000000000
--- a/arch/arm/mach-iop33x/include/mach/system.h
+++ /dev/null
@@ -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();
-}
diff --git a/arch/arm/mach-ixp2000/include/mach/system.h b/arch/arm/mach-ixp2000/include/mach/system.h
deleted file mode 100644
index a7fb08b2b8..0000000000
--- a/arch/arm/mach-ixp2000/include/mach/system.h
+++ /dev/null
@@ -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();
-}
diff --git a/arch/arm/mach-ixp23xx/include/mach/system.h b/arch/arm/mach-ixp23xx/include/mach/system.h
deleted file mode 100644
index 69f80006fc..0000000000
--- a/arch/arm/mach-ixp23xx/include/mach/system.h
+++ /dev/null
@@ -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();
-}
diff --git a/arch/arm/mach-ixp4xx/include/mach/system.h b/arch/arm/mach-ixp4xx/include/mach/system.h
deleted file mode 100644
index 768ac09d0f..0000000000
--- a/arch/arm/mach-ixp4xx/include/mach/system.h
+++ /dev/null
@@ -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();
-}
diff --git a/arch/arm/mach-kirkwood/include/mach/system.h b/arch/arm/mach-kirkwood/include/mach/system.h
deleted file mode 100644
index 5fddde002b..0000000000
--- a/arch/arm/mach-kirkwood/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-ks8695/include/mach/system.h b/arch/arm/mach-ks8695/include/mach/system.h
deleted file mode 100644
index 59fe992395..0000000000
--- a/arch/arm/mach-ks8695/include/mach/system.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * arch/arm/mach-s3c2410/include/mach/system.h
- *
- * Copyright (C) 2006 Simtec Electronics
- *	Ben Dooks <ben@simtec.co.uk>
- *
- * 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
diff --git a/arch/arm/mach-lpc32xx/include/mach/system.h b/arch/arm/mach-lpc32xx/include/mach/system.h
deleted file mode 100644
index bf176c9915..0000000000
--- a/arch/arm/mach-lpc32xx/include/mach/system.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * arch/arm/mach-lpc32xx/include/mach/system.h
- *
- * Author: Kevin Wells <kevin.wells@nxp.com>
- *
- * 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
diff --git a/arch/arm/mach-mmp/include/mach/system.h b/arch/arm/mach-mmp/include/mach/system.h
deleted file mode 100644
index 1d001eab81..0000000000
--- a/arch/arm/mach-mmp/include/mach/system.h
+++ /dev/null
@@ -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 */
diff --git a/arch/arm/mach-msm/include/mach/system.h b/arch/arm/mach-msm/include/mach/system.h
index f2c049526b..f5fb2ec87f 100644
--- a/arch/arm/mach-msm/include/mach/system.h
+++ b/arch/arm/mach-msm/include/mach/system.h
@@ -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
diff --git a/arch/arm/mach-mv78xx0/include/mach/system.h b/arch/arm/mach-mv78xx0/include/mach/system.h
deleted file mode 100644
index 8c3a5387ce..0000000000
--- a/arch/arm/mach-mv78xx0/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-mxs/include/mach/system.h b/arch/arm/mach-mxs/include/mach/system.h
deleted file mode 100644
index e7ad1bb294..0000000000
--- a/arch/arm/mach-mxs/include/mach/system.h
+++ /dev/null
@@ -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__ */
diff --git a/arch/arm/mach-netx/include/mach/system.h b/arch/arm/mach-netx/include/mach/system.h
deleted file mode 100644
index b38fa36d58..0000000000
--- a/arch/arm/mach-netx/include/mach/system.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * arch/arm/mach-netx/include/mach/system.h
- *
- * Copyright (C) 2005 Sascha Hauer <s.hauer@pengutronix.de>, 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
-
diff --git a/arch/arm/mach-nomadik/include/mach/system.h b/arch/arm/mach-nomadik/include/mach/system.h
deleted file mode 100644
index 25e198b897..0000000000
--- a/arch/arm/mach-nomadik/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-omap1/include/mach/system.h b/arch/arm/mach-omap1/include/mach/system.h
deleted file mode 100644
index a6c1b3a16d..0000000000
--- a/arch/arm/mach-omap1/include/mach/system.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
- * arch/arm/mach-omap1/include/mach/system.h
- */
-
-#include <plat/system.h>
diff --git a/arch/arm/mach-omap2/include/mach/system.h b/arch/arm/mach-omap2/include/mach/system.h
deleted file mode 100644
index d488721ab9..0000000000
--- a/arch/arm/mach-omap2/include/mach/system.h
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
- * arch/arm/mach-omap2/include/mach/system.h
- */
-
-#include <plat/system.h>
diff --git a/arch/arm/mach-orion5x/include/mach/system.h b/arch/arm/mach-orion5x/include/mach/system.h
deleted file mode 100644
index 825a2650ce..0000000000
--- a/arch/arm/mach-orion5x/include/mach/system.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * arch/arm/mach-orion5x/include/mach/system.h
- *
- * Tzachi Perelstein <tzachi@marvell.com>
- *
- * 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
diff --git a/arch/arm/mach-picoxcell/include/mach/system.h b/arch/arm/mach-picoxcell/include/mach/system.h
deleted file mode 100644
index 1a5d8cb57d..0000000000
--- a/arch/arm/mach-picoxcell/include/mach/system.h
+++ /dev/null
@@ -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 */
diff --git a/arch/arm/mach-pnx4008/include/mach/system.h b/arch/arm/mach-pnx4008/include/mach/system.h
deleted file mode 100644
index 60cfe71880..0000000000
--- a/arch/arm/mach-pnx4008/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-prima2/include/mach/system.h b/arch/arm/mach-prima2/include/mach/system.h
deleted file mode 100644
index 2c7d2a9d0c..0000000000
--- a/arch/arm/mach-prima2/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-pxa/include/mach/system.h b/arch/arm/mach-pxa/include/mach/system.h
deleted file mode 100644
index c5afacd3cc..0000000000
--- a/arch/arm/mach-pxa/include/mach/system.h
+++ /dev/null
@@ -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();
-}
diff --git a/arch/arm/mach-realview/include/mach/system.h b/arch/arm/mach-realview/include/mach/system.h
deleted file mode 100644
index 471b671159..0000000000
--- a/arch/arm/mach-realview/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-rpc/include/mach/system.h b/arch/arm/mach-rpc/include/mach/system.h
deleted file mode 100644
index 359bab94b6..0000000000
--- a/arch/arm/mach-rpc/include/mach/system.h
+++ /dev/null
@@ -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();
-}
diff --git a/arch/arm/mach-s3c2410/include/mach/system.h b/arch/arm/mach-s3c2410/include/mach/system.h
index 0cff890b9b..e537fdc59a 100644
--- a/arch/arm/mach-s3c2410/include/mach/system.h
+++ b/arch/arm/mach-s3c2410/include/mach/system.h
@@ -18,9 +18,4 @@
 
 void (*s3c24xx_reset_hook)(void);
 
-static void arch_idle(void)
-{
-	cpu_do_idle();
-}
-
 #include <mach/system-reset.h>
diff --git a/arch/arm/mach-s3c64xx/include/mach/system.h b/arch/arm/mach-s3c64xx/include/mach/system.h
index 0868f26c83..8a9e93a547 100644
--- a/arch/arm/mach-s3c64xx/include/mach/system.h
+++ b/arch/arm/mach-s3c64xx/include/mach/system.h
@@ -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')
diff --git a/arch/arm/mach-s5p64x0/include/mach/system.h b/arch/arm/mach-s5p64x0/include/mach/system.h
deleted file mode 100644
index 60f57532c9..0000000000
--- a/arch/arm/mach-s5p64x0/include/mach/system.h
+++ /dev/null
@@ -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 */
diff --git a/arch/arm/mach-s5pc100/include/mach/system.h b/arch/arm/mach-s5pc100/include/mach/system.h
deleted file mode 100644
index ebfeb943f5..0000000000
--- a/arch/arm/mach-s5pc100/include/mach/system.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* linux/arch/arm/mach-s5pc100/include/mach/system.h
- *
- * Copyright 2009 Samsung Electronics Co.
- *      Byungho Min <bhmin@samsung.com>
- *
- * 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 */
diff --git a/arch/arm/mach-s5pv210/include/mach/system.h b/arch/arm/mach-s5pv210/include/mach/system.h
deleted file mode 100644
index 0c1cb1f327..0000000000
--- a/arch/arm/mach-s5pv210/include/mach/system.h
+++ /dev/null
@@ -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 */
diff --git a/arch/arm/mach-sa1100/include/mach/system.h b/arch/arm/mach-sa1100/include/mach/system.h
deleted file mode 100644
index e17b208f76..0000000000
--- a/arch/arm/mach-sa1100/include/mach/system.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * arch/arm/mach-sa1100/include/mach/system.h
- *
- * Copyright (c) 1999 Nicolas Pitre <nico@fluxnic.net>
- */
-static inline void arch_idle(void)
-{
-	cpu_do_idle();
-}
diff --git a/arch/arm/mach-shark/include/mach/system.h b/arch/arm/mach-shark/include/mach/system.h
deleted file mode 100644
index 1ec8d6c383..0000000000
--- a/arch/arm/mach-shark/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-shmobile/include/mach/system.h b/arch/arm/mach-shmobile/include/mach/system.h
index 956ac18ddb..3bbcb3fa07 100644
--- a/arch/arm/mach-shmobile/include/mach/system.h
+++ b/arch/arm/mach-shmobile/include/mach/system.h
@@ -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);
diff --git a/arch/arm/mach-spear3xx/include/mach/system.h b/arch/arm/mach-spear3xx/include/mach/system.h
deleted file mode 100644
index 92cee6335c..0000000000
--- a/arch/arm/mach-spear3xx/include/mach/system.h
+++ /dev/null
@@ -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<viresh.kumar@st.com>
- *
- * 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 */
diff --git a/arch/arm/mach-spear6xx/include/mach/system.h b/arch/arm/mach-spear6xx/include/mach/system.h
deleted file mode 100644
index 0b1d2be81c..0000000000
--- a/arch/arm/mach-spear6xx/include/mach/system.h
+++ /dev/null
@@ -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<rajeev-dlh.kumar@st.com>
- *
- * 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 */
diff --git a/arch/arm/mach-tegra/include/mach/system.h b/arch/arm/mach-tegra/include/mach/system.h
deleted file mode 100644
index 968ea2b052..0000000000
--- a/arch/arm/mach-tegra/include/mach/system.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * arch/arm/mach-tegra/include/mach/system.h
- *
- * Copyright (C) 2010 Google, Inc.
- *
- * Author:
- *	Colin Cross <ccross@google.com>
- *	Erik Gilling <konkers@google.com>
- *
- * 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
diff --git a/arch/arm/mach-u300/include/mach/system.h b/arch/arm/mach-u300/include/mach/system.h
deleted file mode 100644
index 574d46e382..0000000000
--- a/arch/arm/mach-u300/include/mach/system.h
+++ /dev/null
@@ -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 <linus.walleij@stericsson.com>
- */
-static inline void arch_idle(void)
-{
-	cpu_do_idle();
-}
diff --git a/arch/arm/mach-ux500/include/mach/system.h b/arch/arm/mach-ux500/include/mach/system.h
deleted file mode 100644
index 258e5c919c..0000000000
--- a/arch/arm/mach-ux500/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-versatile/include/mach/system.h b/arch/arm/mach-versatile/include/mach/system.h
deleted file mode 100644
index f3fa347895..0000000000
--- a/arch/arm/mach-versatile/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-vexpress/include/mach/system.h b/arch/arm/mach-vexpress/include/mach/system.h
deleted file mode 100644
index f653a8e265..0000000000
--- a/arch/arm/mach-vexpress/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/mach-vt8500/include/mach/system.h b/arch/arm/mach-vt8500/include/mach/system.h
index d6c757eaf2..58fa8010ee 100644
--- a/arch/arm/mach-vt8500/include/mach/system.h
+++ b/arch/arm/mach-vt8500/include/mach/system.h
@@ -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);
diff --git a/arch/arm/mach-w90x900/include/mach/system.h b/arch/arm/mach-w90x900/include/mach/system.h
deleted file mode 100644
index f713161ee5..0000000000
--- a/arch/arm/mach-w90x900/include/mach/system.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * arch/arm/mach-w90x900/include/mach/system.h
- *
- * Copyright (c) 2008 Nuvoton technology corporation
- * All rights reserved.
- *
- * Wan ZongShun <mcuos.com@gmail.com>
- *
- * 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();
-}
diff --git a/arch/arm/mach-zynq/include/mach/system.h b/arch/arm/mach-zynq/include/mach/system.h
deleted file mode 100644
index 8e88e0b8d2..0000000000
--- a/arch/arm/mach-zynq/include/mach/system.h
+++ /dev/null
@@ -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
diff --git a/arch/arm/plat-mxc/include/mach/system.h b/arch/arm/plat-mxc/include/mach/system.h
deleted file mode 100644
index 13ad0df2e8..0000000000
--- a/arch/arm/plat-mxc/include/mach/system.h
+++ /dev/null
@@ -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__ */
diff --git a/arch/arm/plat-omap/include/plat/system.h b/arch/arm/plat-omap/include/plat/system.h
deleted file mode 100644
index 8e5ebd74b1..0000000000
--- a/arch/arm/plat-omap/include/plat/system.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * Copied from arch/arm/mach-sa1100/include/mach/system.h
- * Copyright (c) 1999 Nicolas Pitre <nico@fluxnic.net>
- */
-#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
diff --git a/arch/arm/plat-spear/include/plat/system.h b/arch/arm/plat-spear/include/plat/system.h
deleted file mode 100644
index 86c6f83b44..0000000000
--- a/arch/arm/plat-spear/include/plat/system.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * arch/arm/plat-spear/include/plat/system.h
- *
- * SPEAr platform specific architecture functions
- *
- * Copyright (C) 2009 ST Microelectronics
- * Viresh Kumar<viresh.kumar@st.com>
- *
- * 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 */
diff --git a/arch/arm/plat-tcc/include/mach/system.h b/arch/arm/plat-tcc/include/mach/system.h
deleted file mode 100644
index 9adf36f9e8..0000000000
--- a/arch/arm/plat-tcc/include/mach/system.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Author: <linux@telechips.com>
- * 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
-- 
1.7.7.1.431.g10b2a

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 08/20] ARM: mach-gemini: move special idle code out of line
  2011-12-19  9:47 ` [PATCH 08/20] ARM: mach-gemini: " Nicolas Pitre
@ 2011-12-19 17:55   ` Tony Lindgren
  0 siblings, 0 replies; 49+ messages in thread
From: Tony Lindgren @ 2011-12-19 17:55 UTC (permalink / raw)
  To: linux-arm-kernel

* Nicolas Pitre <nico@fluxnic.net> [111219 01:32]:
> --- a/arch/arm/mach-gemini/irq.c
> +++ b/arch/arm/mach-gemini/irq.c
> @@ -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

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 12/20] ARM: mach-msm: hook special idle handlers to arm_pm_idle
  2011-12-19  9:47 ` [PATCH 12/20] ARM: mach-msm: " Nicolas Pitre
@ 2011-12-19 17:56   ` Tony Lindgren
  2011-12-19 18:07     ` Nicolas Pitre
  2011-12-19 23:21   ` David Brown
  1 sibling, 1 reply; 49+ messages in thread
From: Tony Lindgren @ 2011-12-19 17:56 UTC (permalink / raw)
  To: linux-arm-kernel

* Nicolas Pitre <nico@fluxnic.net> [111219 01:42]:
> --- /dev/null
> +++ b/arch/arm/mach-msm/idle.c
> @@ -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

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 12/20] ARM: mach-msm: hook special idle handlers to arm_pm_idle
  2011-12-19 17:56   ` Tony Lindgren
@ 2011-12-19 18:07     ` Nicolas Pitre
  0 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19 18:07 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 19 Dec 2011, Tony Lindgren wrote:

> * Nicolas Pitre <nico@fluxnic.net> [111219 01:42]:
> > --- /dev/null
> > +++ b/arch/arm/mach-msm/idle.c
> > @@ -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

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 20/20] ARM: big removal of now unused arch_reset()
  2011-12-19  9:47 ` [PATCH 20/20] ARM: big removal of now unused arch_reset() Nicolas Pitre
@ 2011-12-19 18:15   ` H Hartley Sweeten
  2011-12-19 18:21     ` Nicolas Pitre
  2011-12-19 19:08   ` Tony Lindgren
                     ` (2 subsequent siblings)
  3 siblings, 1 reply; 49+ messages in thread
From: H Hartley Sweeten @ 2011-12-19 18:15 UTC (permalink / raw)
  To: linux-arm-kernel

On Monday, December 19, 2011 2:48 AM, Nicolas Pitre wrote:
>
> When this is the only content remaining in mach/system.h then the
> whole file is removed.
>
> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
> ---

[...]

>  arch/arm/mach-ep93xx/include/mach/system.h     |    7 -----

[...]

>  delete mode 100644 arch/arm/mach-ep93xx/include/mach/system.h

[...]

> diff --git a/arch/arm/mach-ep93xx/include/mach/system.h b/arch/arm/mach-ep93xx/include/mach/system.h
> deleted file mode 100644
> index b5bec7cb9b..0000000000
> --- a/arch/arm/mach-ep93xx/include/mach/system.h
> +++ /dev/null
> @@ -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...

Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 20/20] ARM: big removal of now unused arch_reset()
  2011-12-19 18:15   ` H Hartley Sweeten
@ 2011-12-19 18:21     ` Nicolas Pitre
  0 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19 18:21 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 19 Dec 2011, H Hartley Sweeten wrote:

> On Monday, December 19, 2011 2:48 AM, Nicolas Pitre wrote:
> > diff --git a/arch/arm/mach-ep93xx/include/mach/system.h b/arch/arm/mach-ep93xx/include/mach/system.h
> > deleted file mode 100644
> > index b5bec7cb9b..0000000000
> > --- a/arch/arm/mach-ep93xx/include/mach/system.h
> > +++ /dev/null
> > @@ -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...
> 
> Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com>

Thanks


Nicolas

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 00/20] arch_idle() cleanup and mach/system.h removal
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (19 preceding siblings ...)
  2011-12-19  9:47 ` [PATCH 20/20] ARM: big removal of now unused arch_reset() Nicolas Pitre
@ 2011-12-19 18:57 ` Jamie Iles
  2011-12-19 19:25   ` Nicolas Pitre
  2012-01-13 10:43 ` Russell King - ARM Linux
  21 siblings, 1 reply; 49+ messages in thread
From: Jamie Iles @ 2011-12-19 18:57 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Nicolas,

On Mon, Dec 19, 2011 at 04:47:29AM -0500, Nicolas Pitre wrote:
> 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.

Tested on picoxcell, works great.

Acked-and-tested-by: Jamie Iles <jamie@jamieiles.com>

btw,

> [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

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 01/20] ARM: clean up idle handlers
  2011-12-19  9:47 ` [PATCH 01/20] ARM: clean up idle handlers Nicolas Pitre
@ 2011-12-19 19:07   ` Tony Lindgren
  2011-12-19 19:43     ` Nicolas Pitre
  2011-12-20  0:41   ` Stephen Warren
  2011-12-25  1:42   ` Shawn Guo
  2 siblings, 1 reply; 49+ messages in thread
From: Tony Lindgren @ 2011-12-19 19:07 UTC (permalink / raw)
  To: linux-arm-kernel

* Nicolas Pitre <nico@fluxnic.net> [111219 01:20]:
> 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.
> 
> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>

For omaps:

Tested-by: Tony Lindgren <tony@atomide.com>

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

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 19/20] ARM: substitute arch_idle()
  2011-12-19  9:47 ` [PATCH 19/20] ARM: substitute arch_idle() Nicolas Pitre
@ 2011-12-19 19:08   ` Tony Lindgren
  0 siblings, 0 replies; 49+ messages in thread
From: Tony Lindgren @ 2011-12-19 19:08 UTC (permalink / raw)
  To: linux-arm-kernel

* Nicolas Pitre <nico@fluxnic.net> [111219 01:43]:
> Now 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.
> 
> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>

Acked-by: Tony Lindgren <tony@atomide.com>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 20/20] ARM: big removal of now unused arch_reset()
  2011-12-19  9:47 ` [PATCH 20/20] ARM: big removal of now unused arch_reset() Nicolas Pitre
  2011-12-19 18:15   ` H Hartley Sweeten
@ 2011-12-19 19:08   ` Tony Lindgren
  2011-12-19 23:22   ` David Brown
  2011-12-24 23:22   ` Linus Walleij
  3 siblings, 0 replies; 49+ messages in thread
From: Tony Lindgren @ 2011-12-19 19:08 UTC (permalink / raw)
  To: linux-arm-kernel

* Nicolas Pitre <nico@fluxnic.net> [111219 01:43]:
> When this is the only content remaining in mach/system.h then the
> whole file is removed.
> 
> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>

Acked-by: Tony Lindgren <tony@atomide.com>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 00/20] arch_idle() cleanup and mach/system.h removal
  2011-12-19 18:57 ` [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Jamie Iles
@ 2011-12-19 19:25   ` Nicolas Pitre
  0 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19 19:25 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 19 Dec 2011, Jamie Iles wrote:

> Hi Nicolas,
> 
> On Mon, Dec 19, 2011 at 04:47:29AM -0500, Nicolas Pitre wrote:
> > 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.
> 
> Tested on picoxcell, works great.
> 
> Acked-and-tested-by: Jamie Iles <jamie@jamieiles.com>

Great!

> btw,
> 
> > [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

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 01/20] ARM: clean up idle handlers
  2011-12-19 19:07   ` Tony Lindgren
@ 2011-12-19 19:43     ` Nicolas Pitre
  0 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-19 19:43 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, 19 Dec 2011, Tony Lindgren wrote:

> * Nicolas Pitre <nico@fluxnic.net> [111219 01:20]:
> > 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.
> > 
> > Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
> 
> For omaps:
> 
> Tested-by: Tony Lindgren <tony@atomide.com>

Thanks.

> For pm44xx.c the 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.

> 
> --- 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
> 

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 12/20] ARM: mach-msm: hook special idle handlers to arm_pm_idle
  2011-12-19  9:47 ` [PATCH 12/20] ARM: mach-msm: " Nicolas Pitre
  2011-12-19 17:56   ` Tony Lindgren
@ 2011-12-19 23:21   ` David Brown
  1 sibling, 0 replies; 49+ messages in thread
From: David Brown @ 2011-12-19 23:21 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Dec 19, 2011 at 04:47:41AM -0500, Nicolas Pitre wrote:
> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
> ---
>  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.

Acked-by: David Brown <davidb@codeaurora.org>

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 20/20] ARM: big removal of now unused arch_reset()
  2011-12-19  9:47 ` [PATCH 20/20] ARM: big removal of now unused arch_reset() Nicolas Pitre
  2011-12-19 18:15   ` H Hartley Sweeten
  2011-12-19 19:08   ` Tony Lindgren
@ 2011-12-19 23:22   ` David Brown
  2011-12-24 23:22   ` Linus Walleij
  3 siblings, 0 replies; 49+ messages in thread
From: David Brown @ 2011-12-19 23:22 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Dec 19, 2011 at 04:47:49AM -0500, Nicolas Pitre wrote:
> When this is the only content remaining in mach/system.h then the
> whole file is removed.
> 
> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>

>  arch/arm/mach-msm/include/mach/system.h        |    4 ---

Acked-by: David Brown <davidb@codeaurora.org>

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 01/20] ARM: clean up idle handlers
  2011-12-19  9:47 ` [PATCH 01/20] ARM: clean up idle handlers Nicolas Pitre
  2011-12-19 19:07   ` Tony Lindgren
@ 2011-12-20  0:41   ` Stephen Warren
  2011-12-25  1:42   ` Shawn Guo
  2 siblings, 0 replies; 49+ messages in thread
From: Stephen Warren @ 2011-12-20  0:41 UTC (permalink / raw)
  To: linux-arm-kernel

Nicolas Pitre wrote at Monday, December 19, 2011 2:48 AM:
> 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.
> 
> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>

The parts which affect Tegra,

Acked-by: Stephen Warren <swarren@nvidia.com>

Also,

Tested-by: Stephen Warren <swarren@nvidia.com>

(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)

-- 
nvpublic

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 17/20] ARM: mach-s3c64xx: properly disable CPU idle call
  2011-12-19  9:47 ` [PATCH 17/20] ARM: mach-s3c64xx: " Nicolas Pitre
@ 2011-12-20 15:03   ` Mark Brown
  2011-12-20 18:54     ` Nicolas Pitre
  0 siblings, 1 reply; 49+ messages in thread
From: Mark Brown @ 2011-12-20 15:03 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Dec 19, 2011 at 04:47:46AM -0500, Nicolas Pitre wrote:

>  void __init s3c64xx_init_io(struct map_desc *mach_desc, int size)
>  {
> +	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).

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 17/20] ARM: mach-s3c64xx: properly disable CPU idle call
  2011-12-20 15:03   ` Mark Brown
@ 2011-12-20 18:54     ` Nicolas Pitre
  2011-12-20 23:36       ` Mark Brown
  0 siblings, 1 reply; 49+ messages in thread
From: Nicolas Pitre @ 2011-12-20 18:54 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, 20 Dec 2011, Mark Brown wrote:

> On Mon, Dec 19, 2011 at 04:47:46AM -0500, Nicolas Pitre wrote:
> 
> >  void __init s3c64xx_init_io(struct map_desc *mach_desc, int size)
> >  {
> > +	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

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 17/20] ARM: mach-s3c64xx: properly disable CPU idle call
  2011-12-20 18:54     ` Nicolas Pitre
@ 2011-12-20 23:36       ` Mark Brown
  0 siblings, 0 replies; 49+ messages in thread
From: Mark Brown @ 2011-12-20 23:36 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Dec 20, 2011 at 01:54:00PM -0500, Nicolas Pitre wrote:

> 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.

Tested-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

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.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 20/20] ARM: big removal of now unused arch_reset()
  2011-12-19  9:47 ` [PATCH 20/20] ARM: big removal of now unused arch_reset() Nicolas Pitre
                     ` (2 preceding siblings ...)
  2011-12-19 23:22   ` David Brown
@ 2011-12-24 23:22   ` Linus Walleij
  3 siblings, 0 replies; 49+ messages in thread
From: Linus Walleij @ 2011-12-24 23:22 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Dec 19, 2011 at 10:47 AM, Nicolas Pitre <nico@fluxnic.net> wrote:

> When this is the only content remaining in mach/system.h then the
> whole file is removed.

Merry christmas!

> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
>
> ?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 <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 01/20] ARM: clean up idle handlers
  2011-12-19  9:47 ` [PATCH 01/20] ARM: clean up idle handlers Nicolas Pitre
  2011-12-19 19:07   ` Tony Lindgren
  2011-12-20  0:41   ` Stephen Warren
@ 2011-12-25  1:42   ` Shawn Guo
  2011-12-25  1:48     ` Shawn Guo
  2 siblings, 1 reply; 49+ messages in thread
From: Shawn Guo @ 2011-12-25  1:42 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Dec 19, 2011 at 04:47:30AM -0500, Nicolas Pitre wrote:
> 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.
> 
> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
> ---
>  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

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 01/20] ARM: clean up idle handlers
  2011-12-25  1:42   ` Shawn Guo
@ 2011-12-25  1:48     ` Shawn Guo
  2012-01-03  3:34       ` Nicolas Pitre
  0 siblings, 1 reply; 49+ messages in thread
From: Shawn Guo @ 2011-12-25  1:48 UTC (permalink / raw)
  To: linux-arm-kernel

On Sun, Dec 25, 2011 at 09:42:28AM +0800, Shawn Guo wrote:
> On Mon, Dec 19, 2011 at 04:47:30AM -0500, Nicolas Pitre wrote:
> > 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.
> > 
> > Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
> > ---
> >  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
> 
And imx3_idle() in arch/arm/mach-imx/mm-imx3.c

-- 
Regards,
Shawn

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 11/20] ARM: plat-mxc: hook special idle handlers to arm_pm_idle
  2011-12-19  9:47 ` [PATCH 11/20] ARM: plat-mxc: hook special idle handlers to arm_pm_idle Nicolas Pitre
@ 2011-12-25  1:53   ` Shawn Guo
  2012-01-03  3:32     ` Nicolas Pitre
  0 siblings, 1 reply; 49+ messages in thread
From: Shawn Guo @ 2011-12-25  1:53 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Nico,

On Mon, Dec 19, 2011 at 04:47:40AM -0500, Nicolas Pitre wrote:
> ... and remove redundant include of <mach/system.h>.
> 
> Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
> ---
>  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.

>  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.

-- 
Regards,
Shawn

>  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(-)
> 

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 11/20] ARM: plat-mxc: hook special idle handlers to arm_pm_idle
  2011-12-25  1:53   ` Shawn Guo
@ 2012-01-03  3:32     ` Nicolas Pitre
  0 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2012-01-03  3:32 UTC (permalink / raw)
  To: linux-arm-kernel

On Sun, 25 Dec 2011, Shawn Guo wrote:

> Hi Nico,
> 
> On Mon, Dec 19, 2011 at 04:47:40AM -0500, Nicolas Pitre wrote:
> > ... and remove redundant include of <mach/system.h>.
> > 
> > Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
> > ---
> >  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.

OK, will fix when I rebase.

> >  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

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 01/20] ARM: clean up idle handlers
  2011-12-25  1:48     ` Shawn Guo
@ 2012-01-03  3:34       ` Nicolas Pitre
  0 siblings, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2012-01-03  3:34 UTC (permalink / raw)
  To: linux-arm-kernel

On Sun, 25 Dec 2011, Shawn Guo wrote:

> On Sun, Dec 25, 2011 at 09:42:28AM +0800, Shawn Guo wrote:
> > On Mon, Dec 19, 2011 at 04:47:30AM -0500, Nicolas Pitre wrote:
> > > 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.
> > > 
> > > Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
> > > ---
> > >  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
> > 
> And imx3_idle() in arch/arm/mach-imx/mm-imx3.c

OK.  Again, Ill see to them when I rebase.


Nicolas

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 00/20] arch_idle() cleanup and mach/system.h removal
  2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
                   ` (20 preceding siblings ...)
  2011-12-19 18:57 ` [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Jamie Iles
@ 2012-01-13 10:43 ` Russell King - ARM Linux
  2012-01-13 13:54   ` Nicolas Pitre
  21 siblings, 1 reply; 49+ messages in thread
From: Russell King - ARM Linux @ 2012-01-13 10:43 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Dec 19, 2011 at 04:47:29AM -0500, Nicolas Pitre wrote:
> 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.

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.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 00/20] arch_idle() cleanup and mach/system.h removal
  2012-01-13 10:43 ` Russell King - ARM Linux
@ 2012-01-13 13:54   ` Nicolas Pitre
  2012-01-13 14:07     ` Russell King - ARM Linux
  0 siblings, 1 reply; 49+ messages in thread
From: Nicolas Pitre @ 2012-01-13 13:54 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, 13 Jan 2012, Russell King - ARM Linux wrote:

> 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

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 00/20] arch_idle() cleanup and mach/system.h removal
  2012-01-13 13:54   ` Nicolas Pitre
@ 2012-01-13 14:07     ` Russell King - ARM Linux
  2012-01-13 19:31       ` Nicolas Pitre
  2012-01-21  3:20       ` Nicolas Pitre
  0 siblings, 2 replies; 49+ messages in thread
From: Russell King - ARM Linux @ 2012-01-13 14:07 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Jan 13, 2012 at 08:54:58AM -0500, Nicolas Pitre wrote:
> On Fri, 13 Jan 2012, Russell King - ARM Linux wrote:
> 
> > 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.

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 00/20] arch_idle() cleanup and mach/system.h removal
  2012-01-13 14:07     ` Russell King - ARM Linux
@ 2012-01-13 19:31       ` Nicolas Pitre
  2012-01-21  3:20       ` Nicolas Pitre
  1 sibling, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2012-01-13 19:31 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, 13 Jan 2012, Russell King - ARM Linux wrote:

> On Fri, Jan 13, 2012 at 08:54:58AM -0500, Nicolas Pitre wrote:
> > On Fri, 13 Jan 2012, Russell King - ARM Linux wrote:
> > 
> > > 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.

Sure.


Nicolas

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 00/20] arch_idle() cleanup and mach/system.h removal
  2012-01-13 14:07     ` Russell King - ARM Linux
  2012-01-13 19:31       ` Nicolas Pitre
@ 2012-01-21  3:20       ` Nicolas Pitre
  1 sibling, 0 replies; 49+ messages in thread
From: Nicolas Pitre @ 2012-01-21  3:20 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, 13 Jan 2012, Russell King - ARM Linux wrote:

> On Fri, Jan 13, 2012 at 08:54:58AM -0500, Nicolas Pitre wrote:
> > On Fri, 13 Jan 2012, Russell King - ARM Linux wrote:
> > 
> > > 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.
> 

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

^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2012-01-21  3:20 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-19  9:47 [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Nicolas Pitre
2011-12-19  9:47 ` [PATCH 01/20] ARM: clean up idle handlers Nicolas Pitre
2011-12-19 19:07   ` Tony Lindgren
2011-12-19 19:43     ` Nicolas Pitre
2011-12-20  0:41   ` Stephen Warren
2011-12-25  1:42   ` Shawn Guo
2011-12-25  1:48     ` Shawn Guo
2012-01-03  3:34       ` Nicolas Pitre
2011-12-19  9:47 ` [PATCH 02/20] ARM: mach-s5pv210: use standard arch_idle() Nicolas Pitre
2011-12-19  9:47 ` [PATCH 03/20] ARM: mach-s5pc100: " Nicolas Pitre
2011-12-19  9:47 ` [PATCH 04/20] ARM: mach-exynos: " Nicolas Pitre
2011-12-19  9:47 ` [PATCH 05/20] ARM: mach-at91: move special idle code out of line Nicolas Pitre
2011-12-19  9:47 ` [PATCH 06/20] ARM: mach-clps711x: " Nicolas Pitre
2011-12-19  9:47 ` [PATCH 07/20] ARM: mach-ebsa110: " Nicolas Pitre
2011-12-19  9:47 ` [PATCH 08/20] ARM: mach-gemini: " Nicolas Pitre
2011-12-19 17:55   ` Tony Lindgren
2011-12-19  9:47 ` [PATCH 09/20] ARM: mach-h720x: " Nicolas Pitre
2011-12-19  9:47 ` [PATCH 10/20] ARM: s3c24xx: move special idle code to " Nicolas Pitre
2011-12-19  9:47 ` [PATCH 11/20] ARM: plat-mxc: hook special idle handlers to arm_pm_idle Nicolas Pitre
2011-12-25  1:53   ` Shawn Guo
2012-01-03  3:32     ` Nicolas Pitre
2011-12-19  9:47 ` [PATCH 12/20] ARM: mach-msm: " Nicolas Pitre
2011-12-19 17:56   ` Tony Lindgren
2011-12-19 18:07     ` Nicolas Pitre
2011-12-19 23:21   ` David Brown
2011-12-19  9:47 ` [PATCH 13/20] ARM: mach-ixp23xx: properly disable CPU idle call Nicolas Pitre
2011-12-19  9:47 ` [PATCH 14/20] ARM: mach-ixp4xx: " Nicolas Pitre
2011-12-19  9:47 ` [PATCH 15/20] ARM: mach-shark: " Nicolas Pitre
2011-12-19  9:47 ` [PATCH 16/20] ARM: mach-w90x900: " Nicolas Pitre
2011-12-19  9:47 ` [PATCH 17/20] ARM: mach-s3c64xx: " Nicolas Pitre
2011-12-20 15:03   ` Mark Brown
2011-12-20 18:54     ` Nicolas Pitre
2011-12-20 23:36       ` Mark Brown
2011-12-19  9:47 ` [PATCH 18/20] ARM: mach-tegra: " Nicolas Pitre
2011-12-19  9:47 ` [PATCH 19/20] ARM: substitute arch_idle() Nicolas Pitre
2011-12-19 19:08   ` Tony Lindgren
2011-12-19  9:47 ` [PATCH 20/20] ARM: big removal of now unused arch_reset() Nicolas Pitre
2011-12-19 18:15   ` H Hartley Sweeten
2011-12-19 18:21     ` Nicolas Pitre
2011-12-19 19:08   ` Tony Lindgren
2011-12-19 23:22   ` David Brown
2011-12-24 23:22   ` Linus Walleij
2011-12-19 18:57 ` [PATCH 00/20] arch_idle() cleanup and mach/system.h removal Jamie Iles
2011-12-19 19:25   ` Nicolas Pitre
2012-01-13 10:43 ` Russell King - ARM Linux
2012-01-13 13:54   ` Nicolas Pitre
2012-01-13 14:07     ` Russell King - ARM Linux
2012-01-13 19:31       ` Nicolas Pitre
2012-01-21  3:20       ` Nicolas Pitre

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.