Skip to contentSkip to conversation

ARM: move cpuidle drivers to drivers/cpuidle/

PATCH New Bartlomiej Zolnierkiewicz 9 participants 21 messages Jun 26, 2013 – Jul 22, 2013

Subsystems (11)
lore
Share & tools
lore
#0 lore raw

cover ARM: move cpuidle drivers to drivers/cpuidle/

Hi,

This patchset moves ARM cpuidle drivers to drivers/cpuidle/ to make code match new driver placement rules (per commit a8e39c3 "cpuidle: add maintainer entry").

[ Please note that movement of Samsung EXYNOS cpuidle driver is handled
in separate patchset since it needs some other changes applied first. ]

Patches are based on linux-next (next-20130624) and are compile tested only. If agreed they all should probably go together through one tree (linux-pm or arm-soc) since they all modify drivers/cpuidle/Makefile.

PS It seems that majority of cpuidle drivers is not used by default (CONFIG_CPU_IDLE is not turned on in corresponding defconfigs). The only exceptions are shmobile (kota2_defconfig) and tegra (tegra_defconfig). This is probably also something that needs updating.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Bartlomiej Zolnierkiewicz (8):
ARM: at91: move cpuidle driver to drivers/cpuidle/
ARM: davinci: move cpuidle driver to drivers/cpuidle/
ARM: imx: move cpuidle drivers to drivers/cpuidle/
ARM: OMAP: move cpuidle drivers to drivers/cpuidle/
ARM: S3C64XX: move cpuidle driver to drivers/cpuidle/
ARM: shmobile: move cpuidle driver to drivers/cpuidle/
ARM: tegra: move cpuidle drivers to drivers/cpuidle/
ARM: ux500: move cpuidle drivers to drivers/cpuidle/

 arch/arm/mach-at91/Makefile            |   1 -
 arch/arm/mach-at91/cpuidle.c           |  68 -------
 arch/arm/mach-davinci/Makefile         |   1 -
 arch/arm/mach-davinci/cpuidle.c        | 105 ----------
 arch/arm/mach-imx/Makefile             |   5 -
 arch/arm/mach-imx/cpuidle-imx5.c       |  37 ----
 arch/arm/mach-imx/cpuidle-imx6q.c      |  75 -------
 arch/arm/mach-omap2/Makefile           |   5 -
 arch/arm/mach-omap2/cpuidle34xx.c      | 344 ---------------------------------
 arch/arm/mach-omap2/cpuidle44xx.c      | 217 ---------------------
 arch/arm/mach-s3c64xx/Makefile         |   1 -
 arch/arm/mach-s3c64xx/cpuidle.c        |  63 ------
 arch/arm/mach-shmobile/Makefile        |   1 -
 arch/arm/mach-shmobile/cpuidle.c       |  37 ----
 arch/arm/mach-tegra/Makefile           |   9 -
 arch/arm/mach-tegra/cpuidle-tegra114.c |  35 ----
 arch/arm/mach-tegra/cpuidle-tegra20.c  | 217 ---------------------
 arch/arm/mach-tegra/cpuidle-tegra30.c  | 149 --------------
 arch/arm/mach-ux500/Makefile           |   1 -
 arch/arm/mach-ux500/cpuidle.c          | 128 ------------
 drivers/cpuidle/Makefile               |  42 ++++
 drivers/cpuidle/cpuidle-at91.c         |  68 +++++++
 drivers/cpuidle/cpuidle-davinci.c      | 104 ++++++++++
 drivers/cpuidle/cpuidle-imx5.c         |  37 ++++
 drivers/cpuidle/cpuidle-imx6q.c        |  74 +++++++
 drivers/cpuidle/cpuidle-omap34xx.c     | 342 ++++++++++++++++++++++++++++++++
 drivers/cpuidle/cpuidle-omap44xx.c     | 216 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-s3c64xx.c      |  62 ++++++
 drivers/cpuidle/cpuidle-shmobile.c     |  37 ++++
 drivers/cpuidle/cpuidle-tegra114.c     |  35 ++++
 drivers/cpuidle/cpuidle-tegra20.c      | 217 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-tegra30.c      | 149 ++++++++++++++
 drivers/cpuidle/cpuidle-ux500.c        | 128 ++++++++++++
 33 files changed, 1511 insertions(+), 1499 deletions(-)
 delete mode 100644 arch/arm/mach-at91/cpuidle.c
 delete mode 100644 arch/arm/mach-davinci/cpuidle.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx5.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx6q.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle34xx.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle44xx.c
 delete mode 100644 arch/arm/mach-s3c64xx/cpuidle.c
 delete mode 100644 arch/arm/mach-shmobile/cpuidle.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra114.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra20.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra30.c
 delete mode 100644 arch/arm/mach-ux500/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-at91.c
 create mode 100644 drivers/cpuidle/cpuidle-davinci.c
 create mode 100644 drivers/cpuidle/cpuidle-imx5.c
 create mode 100644 drivers/cpuidle/cpuidle-imx6q.c
 create mode 100644 drivers/cpuidle/cpuidle-omap34xx.c
 create mode 100644 drivers/cpuidle/cpuidle-omap44xx.c
 create mode 100644 drivers/cpuidle/cpuidle-s3c64xx.c
 create mode 100644 drivers/cpuidle/cpuidle-shmobile.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra114.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra20.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra30.c
 create mode 100644 drivers/cpuidle/cpuidle-ux500.c
Signature · 1 line
1.8.2.3
#1 lore raw

PATCH 1/8 ARM: at91: move cpuidle driver to drivers/cpuidle/

Compile tested only.

Cc Andrew Victor <[email protected]>
Cc Nicolas Ferre <[email protected]>
Cc Jean-Christophe Plagniol-Villard <[email protected]>
Cc Daniel Lezcano <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
---
 arch/arm/mach-at91/Makefile    |  1 -
 arch/arm/mach-at91/cpuidle.c   | 68 ------------------------------------------
 drivers/cpuidle/Makefile       |  3 ++
 drivers/cpuidle/cpuidle-at91.c | 68 ++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 71 insertions(+), 69 deletions(-)
 delete mode 100644 arch/arm/mach-at91/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-at91.c
arch/arm/mach-at91/Makefile +0 -1
index 3b0a953..c1b7370 100644
@@ -98,7 +98,6 @@ obj-y				+= leds.o
 # Power Management
 obj-$(CONFIG_PM)		+= pm.o
 obj-$(CONFIG_AT91_SLOW_CLOCK)	+= pm_slowclock.o
-obj-$(CONFIG_CPU_IDLE)	+= cpuidle.o
 
 ifeq ($(CONFIG_PM_DEBUG),y)
 CFLAGS_pm.o += -DDEBUG
arch/arm/mach-at91/cpuidle.c deleted +0 -68

68 lines not on this page · raw message

drivers/cpuidle/Makefile +3 -0
index 8767a7b..9dd4091 100644
@@ -5,6 +5,9 @@
 obj-y += cpuidle.o driver.o governor.o sysfs.o governors/
 obj-$(CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED) += coupled.o
 
+ifeq ($(CONFIG_ARCH_AT91),y)
+	obj-y += cpuidle-at91.o
+endif
 obj-$(CONFIG_CPU_IDLE_CALXEDA) += cpuidle-calxeda.o
 obj-$(CONFIG_ARCH_KIRKWOOD) += cpuidle-kirkwood.o
 obj-$(CONFIG_CPU_IDLE_ZYNQ) += cpuidle-zynq.o
drivers/cpuidle/cpuidle-at91.c new file +68 -0

68 lines not on this page · raw message

Signature · 1 line
1.8.2.3
#2 lore raw

PATCH 2/8 ARM: davinci: move cpuidle driver to drivers/cpuidle/

In reply to Bartlomiej Zolnierkiewicz

Compile tested only.

Cc Sekhar Nori <[email protected]>
Cc Kevin Hilman <[email protected]>
Cc Daniel Lezcano <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
---
 arch/arm/mach-davinci/Makefile    |   1 -
 arch/arm/mach-davinci/cpuidle.c   | 105 --------------------------------------
 drivers/cpuidle/Makefile          |   3 ++
 drivers/cpuidle/cpuidle-davinci.c | 104 +++++++++++++++++++++++++++++++++++++
 4 files changed, 107 insertions(+), 106 deletions(-)
 delete mode 100644 arch/arm/mach-davinci/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-davinci.c
arch/arm/mach-davinci/Makefile +0 -1
index 63997a1..76712e2 100644
@@ -37,6 +37,5 @@ obj-$(CONFIG_MACH_MITYOMAPL138)		+= board-mityomapl138.o
 obj-$(CONFIG_MACH_OMAPL138_HAWKBOARD)	+= board-omapl138-hawk.o
 
 # Power Management
-obj-$(CONFIG_CPU_IDLE)			+= cpuidle.o
 obj-$(CONFIG_SUSPEND)			+= pm.o sleep.o
 obj-$(CONFIG_HAVE_CLK)			+= pm_domain.o
arch/arm/mach-davinci/cpuidle.c deleted +0 -105

105 lines not on this page · raw message

drivers/cpuidle/Makefile +3 -0
index 9dd4091..3bbb828 100644
@@ -9,5 +9,8 @@ ifeq ($(CONFIG_ARCH_AT91),y)
 	obj-y += cpuidle-at91.o
 endif
 obj-$(CONFIG_CPU_IDLE_CALXEDA) += cpuidle-calxeda.o
+ifeq ($(CONFIG_ARCH_DAVINCI),y)
+	obj-y += cpuidle-davinci.o
+endif
 obj-$(CONFIG_ARCH_KIRKWOOD) += cpuidle-kirkwood.o
 obj-$(CONFIG_CPU_IDLE_ZYNQ) += cpuidle-zynq.o
drivers/cpuidle/cpuidle-davinci.c new file +104 -0

104 lines not on this page · raw message

Signature · 1 line
1.8.2.3
#3 lore raw

PATCH 3/8 ARM: imx: move cpuidle drivers to drivers/cpuidle/

In reply to Bartlomiej Zolnierkiewicz

While at it:
- remove needless "cpuidle.h" include from cpuidle-imx6q.c
- fix whitespace issue in cpuidle-imx6q.c

Compile tested only.

Cc Sascha Hauer <[email protected]>
Cc Shawn Guo <[email protected]>
Cc Daniel Lezcano <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
---
 arch/arm/mach-imx/Makefile        |  5 ---
 arch/arm/mach-imx/cpuidle-imx5.c  | 37 -------------------
 arch/arm/mach-imx/cpuidle-imx6q.c | 75 ---------------------------------------
 drivers/cpuidle/Makefile          |  8 +++++
 drivers/cpuidle/cpuidle-imx5.c    | 37 +++++++++++++++++++
 drivers/cpuidle/cpuidle-imx6q.c   | 74 ++++++++++++++++++++++++++++++++++++++
 6 files changed, 119 insertions(+), 117 deletions(-)
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx5.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx6q.c
 create mode 100644 drivers/cpuidle/cpuidle-imx5.c
 create mode 100644 drivers/cpuidle/cpuidle-imx6q.c
arch/arm/mach-imx/Makefile +0 -5
index e20f22d..4affcbb 100644
@@ -26,11 +26,6 @@ obj-$(CONFIG_MXC_AVIC) += avic.o
 obj-$(CONFIG_MXC_USE_EPIT) += epit.o
 obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o
 
-ifeq ($(CONFIG_CPU_IDLE),y)
-obj-$(CONFIG_SOC_IMX5) += cpuidle-imx5.o
-obj-$(CONFIG_SOC_IMX6Q) += cpuidle-imx6q.o
-endif
-
 ifdef CONFIG_SND_IMX_SOC
 obj-y += ssi-fiq.o
 obj-y += ssi-fiq-ksym.o
arch/arm/mach-imx/cpuidle-imx5.c deleted +0 -37
deleted file mode 100644
index 5a47e3c..0000000
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2012 Freescale 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.
- */
-
-#include <linux/cpuidle.h>
-#include <linux/module.h>
-#include <asm/system_misc.h>
-
-static int imx5_cpuidle_enter(struct cpuidle_device *dev,
-			      struct cpuidle_driver *drv, int index)
-{
-	arm_pm_idle();
-	return index;
-}
-
-static struct cpuidle_driver imx5_cpuidle_driver = {
-	.name             = "imx5_cpuidle",
-	.owner            = THIS_MODULE,
-	.states[0] = {
-		.enter            = imx5_cpuidle_enter,
-		.exit_latency     = 2,
-		.target_residency = 1,
-		.flags            = CPUIDLE_FLAG_TIME_VALID,
-		.name             = "IMX5 SRPG",
-		.desc             = "CPU state retained,powered off",
-	},
-	.state_count = 1,
-};
-
-int __init imx5_cpuidle_init(void)
-{
-	return cpuidle_register(&imx5_cpuidle_driver, NULL);
-}
arch/arm/mach-imx/cpuidle-imx6q.c deleted +0 -75

75 lines not on this page · raw message

drivers/cpuidle/Makefile +8 -0
index 3bbb828..9bacf85 100644
@@ -13,4 +13,12 @@ ifeq ($(CONFIG_ARCH_DAVINCI),y)
 	obj-y += cpuidle-davinci.o
 endif
 obj-$(CONFIG_ARCH_KIRKWOOD) += cpuidle-kirkwood.o
+ifeq ($(CONFIG_ARCH_MXC),y)
+	ifeq ($(CONFIG_SOC_IMX5),y)
+		obj-y += cpuidle-imx5.o
+	endif
+	ifeq ($(CONFIG_SOC_IMX6Q),y)
+		obj-y += cpuidle-imx6q.o
+	endif
+endif
 obj-$(CONFIG_CPU_IDLE_ZYNQ) += cpuidle-zynq.o
drivers/cpuidle/cpuidle-imx5.c new file +37 -0
new file mode 100644
index 0000000..5a47e3c
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2012 Freescale 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.
+ */
+
+#include <linux/cpuidle.h>
+#include <linux/module.h>
+#include <asm/system_misc.h>
+
+static int imx5_cpuidle_enter(struct cpuidle_device *dev,
+			      struct cpuidle_driver *drv, int index)
+{
+	arm_pm_idle();
+	return index;
+}
+
+static struct cpuidle_driver imx5_cpuidle_driver = {
+	.name             = "imx5_cpuidle",
+	.owner            = THIS_MODULE,
+	.states[0] = {
+		.enter            = imx5_cpuidle_enter,
+		.exit_latency     = 2,
+		.target_residency = 1,
+		.flags            = CPUIDLE_FLAG_TIME_VALID,
+		.name             = "IMX5 SRPG",
+		.desc             = "CPU state retained,powered off",
+	},
+	.state_count = 1,
+};
+
+int __init imx5_cpuidle_init(void)
+{
+	return cpuidle_register(&imx5_cpuidle_driver, NULL);
+}
drivers/cpuidle/cpuidle-imx6q.c new file +74 -0

74 lines not on this page · raw message

Signature · 1 line
1.8.2.3
#4 lore raw

PATCH 4/8 ARM: OMAP: move cpuidle drivers to drivers/cpuidle/

In reply to Bartlomiej Zolnierkiewicz

While at it:
- remove file path from comment
- fix whitespace issues

Compile tested only.

Cc Tony Lindgren <[email protected]>
Cc Daniel Lezcano <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
---
 arch/arm/mach-omap2/Makefile       |   5 -
 arch/arm/mach-omap2/cpuidle34xx.c  | 344 -------------------------------------
 arch/arm/mach-omap2/cpuidle44xx.c  | 217 -----------------------
 drivers/cpuidle/Makefile           |  10 ++
 drivers/cpuidle/cpuidle-omap34xx.c | 342 ++++++++++++++++++++++++++++++++++++
 drivers/cpuidle/cpuidle-omap44xx.c | 216 +++++++++++++++++++++++
 6 files changed, 568 insertions(+), 566 deletions(-)
 delete mode 100644 arch/arm/mach-omap2/cpuidle34xx.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle44xx.c
 create mode 100644 drivers/cpuidle/cpuidle-omap34xx.c
 create mode 100644 drivers/cpuidle/cpuidle-omap44xx.c
arch/arm/mach-omap2/Makefile +0 -5
index 0520dc4..b80b086 100644
@@ -102,11 +102,6 @@ endif
 
 endif
 
-ifeq ($(CONFIG_CPU_IDLE),y)
-obj-$(CONFIG_ARCH_OMAP3)                += cpuidle34xx.o
-obj-$(CONFIG_ARCH_OMAP4)                += cpuidle44xx.o
-endif
-
 # PRCM
 obj-y					+= prm_common.o cm_common.o
 obj-$(CONFIG_ARCH_OMAP2)		+= prm2xxx_3xxx.o prm2xxx.o cm2xxx.o
arch/arm/mach-omap2/cpuidle34xx.c deleted +0 -344

344 lines not on this page · raw message

arch/arm/mach-omap2/cpuidle44xx.c deleted +0 -217

217 lines not on this page · raw message

drivers/cpuidle/Makefile +10 -0
index 9bacf85..6436c67 100644
@@ -21,4 +21,14 @@ ifeq ($(CONFIG_ARCH_MXC),y)
 		obj-y += cpuidle-imx6q.o
 	endif
 endif
+ifeq ($(CONFIG_ARCH_OMAP3),y)
+	ccflags-y += -I$(srctree)/arch/arm/plat-omap/include
+	ccflags-y += -I$(srctree)/arch/arm/mach-omap2/include
+	obj-y += cpuidle-omap34xx.o
+endif
+ifeq ($(CONFIG_ARCH_OMAP4),y)
+	ccflags-y += -I$(srctree)/arch/arm/plat-omap/include
+	ccflags-y += -I$(srctree)/arch/arm/mach-omap2/include
+	obj-y += cpuidle-omap44xx.o
+endif
 obj-$(CONFIG_CPU_IDLE_ZYNQ) += cpuidle-zynq.o
drivers/cpuidle/cpuidle-omap34xx.c new file +342 -0

342 lines not on this page · raw message

drivers/cpuidle/cpuidle-omap44xx.c new file +216 -0

216 lines not on this page · raw message

Signature · 1 line
1.8.2.3
maintainer
#5 lore raw

PATCH 4/8 ARM: OMAP: move cpuidle drivers to drivers/cpuidle/

Quoted 5 lines · Bartlomiej Zolnierkiewicz

While at it:
- remove file path from comment
- fix whitespace issues

Compile tested only.

...

Quoted 27 lines
drivers/cpuidle/cpuidle-omap34xx.c new file +24 -0
@@ -0,0 +1,342 @@
+/*
+ * OMAP3 CPU IDLE Routines
+ *
+ * Copyright (C) 2008 Texas Instruments, Inc.
+ * Rajendra Nayak <[email protected]>
+ *
+ * Copyright (C) 2007 Texas Instruments, Inc.
+ * Karthik Dasu <[email protected]>
+ *
+ * Copyright (C) 2006 Nokia Corporation
+ * Tony Lindgren <[email protected]>
+ *
+ * Copyright (C) 2005 Texas Instruments, Inc.
+ * Richard Woodruff <[email protected]>
+ *
+ * Based on pm.c for omap2
+ *
+ * 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.
+ */
+
+#include <linux/sched.h>
+#include <linux/cpuidle.h>

drivers/cpuidle/cpuidle-omap34xx.c line 34

Quoted 10 lines
drivers/cpuidle/cpuidle-omap34xx.c new file +10 -0
+#include <linux/export.h>
+#include <linux/cpu_pm.h>
+#include <asm/cpuidle.h>
+
+#include "../../arch/arm/mach-omap2/powerdomain.h"
+#include "../../arch/arm/mach-omap2/clockdomain.h"
+
+#include "../../arch/arm/mach-omap2/pm.h"
+#include "../../arch/arm/mach-omap2/control.h"
+#include "../../arch/arm/mach-omap2/common.h"

Do we really want to do includes like this from drivers? Presumably these will go away with DT, but still.

Kevin, any comments?

Regards,

Tony

#6 lore raw

PATCH 4/8 ARM: OMAP: move cpuidle drivers to drivers/cpuidle/

Quoted 49 lines · Tony Lindgren
Quoted 5 lines · Bartlomiej Zolnierkiewicz

While at it:
- remove file path from comment
- fix whitespace issues

Compile tested only.

...

Quoted 27 lines
drivers/cpuidle/cpuidle-omap34xx.c new file +24 -0
@@ -0,0 +1,342 @@
+/*
+ * OMAP3 CPU IDLE Routines
+ *
+ * Copyright (C) 2008 Texas Instruments, Inc.
+ * Rajendra Nayak <[email protected]>
+ *
+ * Copyright (C) 2007 Texas Instruments, Inc.
+ * Karthik Dasu <[email protected]>
+ *
+ * Copyright (C) 2006 Nokia Corporation
+ * Tony Lindgren <[email protected]>
+ *
+ * Copyright (C) 2005 Texas Instruments, Inc.
+ * Richard Woodruff <[email protected]>
+ *
+ * Based on pm.c for omap2
+ *
+ * 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.
+ */
+
+#include <linux/sched.h>
+#include <linux/cpuidle.h>

drivers/cpuidle/cpuidle-omap34xx.c line 34

Quoted 10 lines
drivers/cpuidle/cpuidle-omap34xx.c new file +10 -0
+#include <linux/export.h>
+#include <linux/cpu_pm.h>
+#include <asm/cpuidle.h>
+
+#include "../../arch/arm/mach-omap2/powerdomain.h"
+#include "../../arch/arm/mach-omap2/clockdomain.h"
+
+#include "../../arch/arm/mach-omap2/pm.h"
+#include "../../arch/arm/mach-omap2/control.h"
+#include "../../arch/arm/mach-omap2/common.h"

Do we really want to do includes like this from drivers? Presumably these will go away with DT, but still.

Quoted 1 line

Kevin, any comments?

NACK

We need proper interfaces to platform-specific code before moving.

Kevin

#7 lore raw

PATCH 4/8 ARM: OMAP: move cpuidle drivers to drivers/cpuidle/

In reply to Bartlomiej Zolnierkiewicz

(You have missed few CC's)

+Kevin, Tero, Rajendra

Quoted 24 lines · Bartlomiej Zolnierkiewicz

While at it:
- remove file path from comment
- fix whitespace issues

Compile tested only.

Cc Tony Lindgren <[email protected]>
Cc Daniel Lezcano <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
---
 arch/arm/mach-omap2/Makefile       |   5 -
 arch/arm/mach-omap2/cpuidle34xx.c  | 344 -------------------------------------
 arch/arm/mach-omap2/cpuidle44xx.c  | 217 -----------------------
 drivers/cpuidle/Makefile           |  10 ++
 drivers/cpuidle/cpuidle-omap34xx.c | 342 ++++++++++++++++++++++++++++++++++++
 drivers/cpuidle/cpuidle-omap44xx.c | 216 +++++++++++++++++++++++
 6 files changed, 568 insertions(+), 566 deletions(-)
 delete mode 100644 arch/arm/mach-omap2/cpuidle34xx.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle44xx.c
 create mode 100644 drivers/cpuidle/cpuidle-omap34xx.c
 create mode 100644 drivers/cpuidle/cpuidle-omap44xx.c

[..]

Quoted 21 lines
drivers/cpuidle/cpuidle-omap44xx.c new file +15 -0
new file mode 100644
index 0000000..86b8a51
@@ -0,0 +1,216 @@
+/*
+ * OMAP4+ CPU idle Routines
+ *
+ * Copyright (C) 2011-2013 Texas Instruments, Inc.
+ * Santosh Shilimkar <[email protected]>
+ * Rajendra Nayak <[email protected]>
+ *
+ * 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.
+ */
+
+#include <linux/sched.h>
+#include <linux/cpuidle.h>
+#include <linux/cpu_pm.h>

drivers/cpuidle/cpuidle-omap44xx.c line 25

Quoted 10 lines
drivers/cpuidle/cpuidle-omap44xx.c new file +10 -0
+#include <linux/export.h>
+
+#include <asm/cpuidle.h>
+#include <asm/proc-fns.h>
+
+#include "../../arch/arm/mach-omap2/common.h"
+#include "../../arch/arm/mach-omap2/pm.h"
+#include "../../arch/arm/mach-omap2/prm.h"
+#include "../../arch/arm/mach-omap2/clockdomain.h"
+

We have discussed it already on the list in past. The movement was pending exactly for above dependencies.

I let Kevin take a call but moving drivers with
such dependency with platform code is just not
right.

Regards,
Santosh

#8 lore raw

PATCH 5/8 ARM: S3C64XX: move cpuidle driver to drivers/cpuidle/

In reply to Bartlomiej Zolnierkiewicz

While at it:
- remove file path from comment

Compile tested only.

Cc Ben Dooks <[email protected]>
Cc Kukjin Kim <[email protected]>
Cc Daniel Lezcano <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
---
 arch/arm/mach-s3c64xx/Makefile    |  1 -
 arch/arm/mach-s3c64xx/cpuidle.c   | 63 ---------------------------------------
 drivers/cpuidle/Makefile          |  3 ++
 drivers/cpuidle/cpuidle-s3c64xx.c | 62 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 65 insertions(+), 64 deletions(-)
 delete mode 100644 arch/arm/mach-s3c64xx/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-s3c64xx.c
arch/arm/mach-s3c64xx/Makefile +0 -1
index 31d0c91..e7a3ee7 100644
@@ -22,7 +22,6 @@ obj-$(CONFIG_CPU_S3C6410)	+= s3c6410.o
 # PM
 
 obj-$(CONFIG_PM)		+= pm.o irq-pm.o sleep.o
-obj-$(CONFIG_CPU_IDLE)		+= cpuidle.o
 
 # DMA support
 
arch/arm/mach-s3c64xx/cpuidle.c deleted +0 -63

63 lines not on this page · raw message

drivers/cpuidle/Makefile +3 -0
index 6436c67..eed221e 100644
@@ -31,4 +31,7 @@ ifeq ($(CONFIG_ARCH_OMAP4),y)
 	ccflags-y += -I$(srctree)/arch/arm/mach-omap2/include
 	obj-y += cpuidle-omap44xx.o
 endif
+ifeq ($(CONFIG_ARCH_S3C64XX),y)
+	obj-y += cpuidle-s3c64xx.o
+endif
 obj-$(CONFIG_CPU_IDLE_ZYNQ) += cpuidle-zynq.o
drivers/cpuidle/cpuidle-s3c64xx.c new file +62 -0

62 lines not on this page · raw message

Signature · 1 line
1.8.2.3
#9 lore raw

PATCH 5/8 ARM: S3C64XX: move cpuidle driver to drivers/cpuidle/

Quoted 1 line · Kukjin Kim

Re-sending due to e-mail client problem :-(

Quoted 7 lines
Quoted 6 lines · Bartlomiej Zolnierkiewicz

While at it:
- remove file path from comment

Compile tested only.

Quoted 9 lines
Quoted 9 lines
Cc Ben Dooks <[email protected]>
Cc Kukjin Kim <[email protected]>
Cc Daniel Lezcano <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
---
 arch/arm/mach-s3c64xx/Makefile    |  1 -
 arch/arm/mach-s3c64xx/cpuidle.c   | 63

---------------------------------

Quoted 102 lines

--

Quoted 8 lines

----

 drivers/cpuidle/Makefile          |  3 ++
 drivers/cpuidle/cpuidle-s3c64xx.c | 62
++++++++++++++++++++++++++++++++++++++
 4 files changed, 65 insertions(+), 64 deletions(-)
 delete mode 100644 arch/arm/mach-s3c64xx/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-s3c64xx.c

Please see below with using '-M'.

--------8<-------------------------------8<--------
obj-$(CONFIG_PM) += pm.o irq-pm.o sleep.o

arch/arm/mach-s3c64xx/Makefile +0 -1
-obj-$(CONFIG_CPU_IDLE)		+= cpuidle.o
 
 # DMA support
drivers/cpuidle/cpuidle- renamed from arch/arm/mach-s3c64xx/cpuidle.c +0 -0

s3c64xx.c
similarity index 92%
rename from arch/arm/mach-s3c64xx/cpuidle.c
rename to drivers/cpuidle/cpuidle-s3c64xx.c
index 3c8ab07..c18d075 100644

drivers/cpuidle/cpuidle-s3c64xx.c renamed from arch/arm/mach-s3c64xx/cpuidle.c +3 -5
@@ -1,5 +1,4 @@
-/* linux/arch/arm/mach-s3c64xx/cpuidle.c
- *
+/*
  * Copyright (c) 2011 Wolfson Microelectronics, plc
  * Copyright (c) 2011 Samsung Electronics Co., Ltd.
  *		http://www.samsung.com
@@ -20,8 +19,8 @@
 
 #include <mach/map.h>
 
-#include "regs-sys.h"
-#include "regs-syscon-power.h"
+#include "../../arch/arm/mach-s3c64xx/regs-sys.h"
+#include "../../arch/arm/mach-s3c64xx/regs-syscon-power.h"
 
 static int s3c64xx_enter_idle(struct cpuidle_device *dev,
 			      struct cpuidle_driver *drv,
--------8<-------------------------------8<--------

Would be helpful to check which codes have been changed...

Need to sort out above inclusions...

Quoted 19 lines
arch/arm/mach- renamed from arch/arm/mach-s3c64xx/Makefile +0 -0

s3c64xx/Makefile
index 31d0c91..e7a3ee7 100644

arch/arm/mach-s3c64xx/Makefile +0 -1
@@ -22,7 +22,6 @@ obj-$(CONFIG_CPU_S3C6410)	+= s3c6410.o
 # PM
 
 obj-$(CONFIG_PM)		+= pm.o irq-pm.o sleep.o
-obj-$(CONFIG_CPU_IDLE)		+= cpuidle.o
 
 # DMA support
 
arch/arm/mach- renamed from arch/arm/mach-s3c64xx/cpuidle.c +0 -0

s3c64xx/cpuidle.c
deleted file mode 100644
index 3c8ab07..0000000

arch/arm/mach-s3c64xx/cpuidle.c deleted +0 -0

[...]

drivers/cpuidle/Makefile ifeq ($(CONFIG_ARCH_OMAP4),y) · line 36

Quoted 11 lines
drivers/cpuidle/Makefile +3 -0
index 6436c67..eed221e 100644
@@ -31,4 +31,7 @@ ifeq ($(CONFIG_ARCH_OMAP4),y)
 	ccflags-y += -I$(srctree)/arch/arm/mach-omap2/include
 	obj-y += cpuidle-omap44xx.o
 endif
+ifeq ($(CONFIG_ARCH_S3C64XX),y)
+	obj-y += cpuidle-s3c64xx.o
+endif

I think, adding CONFIG_CPU_IDLE_S3C64XX like others, Calexeda, Zynq is better...?

Review

Quoted 2 lines
drivers/cpuidle/Makefile +0 -0
 obj-$(CONFIG_CPU_IDLE_ZYNQ) += cpuidle-zynq.o
(quoted diff) +0 -0

b/drivers/cpuidle/cpuidle-

Quoted 5 lines

s3c64xx.c
new file mode 100644
index 0000000..c18d075

drivers/cpuidle/cpuidle-s3c64xx.c new file +0 -0

[...]

Quoted 2 lines

--
1.8.2.3

Thanks,
Kukjin

#10 lore raw

PATCH 6/8 ARM: shmobile: move cpuidle driver to drivers/cpuidle/

In reply to Bartlomiej Zolnierkiewicz

While at it:
- replace <asm/io.h> by <linux/io.h> one

Compile tested only.

Cc Simon Horman <[email protected]>
Cc Magnus Damm <[email protected]>
Cc Daniel Lezcano <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
---
 arch/arm/mach-shmobile/Makefile    |  1 -
 arch/arm/mach-shmobile/cpuidle.c   | 37 -------------------------------------
 drivers/cpuidle/Makefile           |  3 +++
 drivers/cpuidle/cpuidle-shmobile.c | 37 +++++++++++++++++++++++++++++++++++++
 4 files changed, 40 insertions(+), 38 deletions(-)
 delete mode 100644 arch/arm/mach-shmobile/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-shmobile.c
arch/arm/mach-shmobile/Makefile +0 -1
index 6165a51..cc84ef2 100644
@@ -27,7 +27,6 @@ obj-$(CONFIG_ARCH_R8A7740)	+= entry-intc.o
 
 # PM objects
 obj-$(CONFIG_SUSPEND)		+= suspend.o
-obj-$(CONFIG_CPU_IDLE)		+= cpuidle.o
 obj-$(CONFIG_ARCH_SHMOBILE)	+= pm-rmobile.o
 obj-$(CONFIG_ARCH_SH7372)	+= pm-sh7372.o sleep-sh7372.o
 obj-$(CONFIG_ARCH_R8A7740)	+= pm-r8a7740.o
arch/arm/mach-shmobile/cpuidle.c deleted +0 -37
deleted file mode 100644
index 0afeb5c..0000000
@@ -1,37 +0,0 @@
-/*
- * CPUIdle support code for SH-Mobile ARM
- *
- *  Copyright (C) 2011 Magnus Damm
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-
-#include <linux/pm.h>
-#include <linux/cpuidle.h>
-#include <linux/suspend.h>
-#include <linux/module.h>
-#include <linux/err.h>
-#include <asm/cpuidle.h>
-#include <asm/io.h>
-
-static struct cpuidle_driver shmobile_cpuidle_default_driver = {
-	.name			= "shmobile_cpuidle",
-	.owner			= THIS_MODULE,
-	.states[0]		= ARM_CPUIDLE_WFI_STATE,
-	.safe_state_index	= 0, /* C1 */
-	.state_count		= 1,
-};
-
-static struct cpuidle_driver *cpuidle_drv = &shmobile_cpuidle_default_driver;
-
-void __init shmobile_cpuidle_set_driver(struct cpuidle_driver *drv)
-{
-	cpuidle_drv = drv;
-}
-
-int __init shmobile_cpuidle_init(void)
-{
-	return cpuidle_register(cpuidle_drv, NULL);
-}
drivers/cpuidle/Makefile +3 -0
index eed221e..758d0d9 100644
@@ -34,4 +34,7 @@ endif
 ifeq ($(CONFIG_ARCH_S3C64XX),y)
 	obj-y += cpuidle-s3c64xx.o
 endif
+ifeq ($(CONFIG_ARCH_SHMOBILE),y)
+	obj-y += cpuidle-shmobile.o
+endif
 obj-$(CONFIG_CPU_IDLE_ZYNQ) += cpuidle-zynq.o
drivers/cpuidle/cpuidle-shmobile.c new file +37 -0
new file mode 100644
index 0000000..5cea47e
@@ -0,0 +1,37 @@
+/*
+ * CPUIdle support code for SH-Mobile ARM
+ *
+ *  Copyright (C) 2011 Magnus Damm
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+
+#include <linux/pm.h>
+#include <linux/cpuidle.h>
+#include <linux/suspend.h>
+#include <linux/module.h>
+#include <linux/err.h>
+#include <linux/io.h>
+#include <asm/cpuidle.h>
+
+static struct cpuidle_driver shmobile_cpuidle_default_driver = {
+	.name			= "shmobile_cpuidle",
+	.owner			= THIS_MODULE,
+	.states[0]		= ARM_CPUIDLE_WFI_STATE,
+	.safe_state_index	= 0, /* C1 */
+	.state_count		= 1,
+};
+
+static struct cpuidle_driver *cpuidle_drv = &shmobile_cpuidle_default_driver;
+
+void __init shmobile_cpuidle_set_driver(struct cpuidle_driver *drv)
+{
+	cpuidle_drv = drv;
+}
+
+int __init shmobile_cpuidle_init(void)
+{
+	return cpuidle_register(cpuidle_drv, NULL);
+}
Signature · 1 line
1.8.2.3
#11 lore raw

PATCH 7/8 ARM: tegra: move cpuidle drivers to drivers/cpuidle/

In reply to Bartlomiej Zolnierkiewicz

Compile tested only.

Cc Stephen Warren <[email protected]>
Cc Daniel Lezcano <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
---
 arch/arm/mach-tegra/Makefile           |   9 --
 arch/arm/mach-tegra/cpuidle-tegra114.c |  35 ------
 arch/arm/mach-tegra/cpuidle-tegra20.c  | 217 ---------------------------------
 arch/arm/mach-tegra/cpuidle-tegra30.c  | 149 ----------------------
 drivers/cpuidle/Makefile               |   9 ++
 drivers/cpuidle/cpuidle-tegra114.c     |  35 ++++++
 drivers/cpuidle/cpuidle-tegra20.c      | 217 +++++++++++++++++++++++++++++++++
 drivers/cpuidle/cpuidle-tegra30.c      | 149 ++++++++++++++++++++++
 8 files changed, 410 insertions(+), 410 deletions(-)
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra114.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra20.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra30.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra114.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra20.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra30.c
arch/arm/mach-tegra/Makefile +0 -9
index 98b184e..7b33f82 100644
@@ -17,23 +17,14 @@ obj-$(CONFIG_CPU_IDLE)			+= cpuidle.o
 obj-$(CONFIG_ARCH_TEGRA_2x_SOC)		+= tegra20_speedo.o
 obj-$(CONFIG_ARCH_TEGRA_2x_SOC)		+= tegra2_emc.o
 obj-$(CONFIG_ARCH_TEGRA_2x_SOC)		+= sleep-tegra20.o
-ifeq ($(CONFIG_CPU_IDLE),y)
-obj-$(CONFIG_ARCH_TEGRA_2x_SOC)		+= cpuidle-tegra20.o
-endif
 obj-$(CONFIG_ARCH_TEGRA_3x_SOC)		+= tegra30_speedo.o
 obj-$(CONFIG_ARCH_TEGRA_3x_SOC)		+= sleep-tegra30.o
-ifeq ($(CONFIG_CPU_IDLE),y)
-obj-$(CONFIG_ARCH_TEGRA_3x_SOC)		+= cpuidle-tegra30.o
-endif
 obj-$(CONFIG_SMP)			+= platsmp.o headsmp.o
 obj-$(CONFIG_HOTPLUG_CPU)               += hotplug.o
 obj-$(CONFIG_TEGRA_PCI)			+= pcie.o
 
 obj-$(CONFIG_ARCH_TEGRA_114_SOC)	+= tegra114_speedo.o
 obj-$(CONFIG_ARCH_TEGRA_114_SOC)	+= sleep-tegra30.o
-ifeq ($(CONFIG_CPU_IDLE),y)
-obj-$(CONFIG_ARCH_TEGRA_114_SOC)	+= cpuidle-tegra114.o
-endif
 
 obj-$(CONFIG_ARCH_TEGRA_2x_SOC)		+= board-harmony-pcie.o
 
arch/arm/mach-tegra/cpuidle-tegra114.c deleted +0 -35
deleted file mode 100644
index 1d1c602..0000000
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2013, NVIDIA Corporation. All rights reserved.
- *
- * 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/>.
- */
-
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/cpuidle.h>
-
-#include <asm/cpuidle.h>
-
-static struct cpuidle_driver tegra_idle_driver = {
-	.name = "tegra_idle",
-	.owner = THIS_MODULE,
-	.state_count = 1,
-	.states = {
-		[0] = ARM_CPUIDLE_WFI_STATE_PWR(600),
-	},
-};
-
-int __init tegra114_cpuidle_init(void)
-{
-	return cpuidle_register(&tegra_idle_driver, NULL);
-}
arch/arm/mach-tegra/cpuidle-tegra20.c deleted +0 -217

217 lines not on this page · raw message

arch/arm/mach-tegra/cpuidle-tegra30.c deleted +0 -149

149 lines not on this page · raw message

drivers/cpuidle/Makefile +9 -0
index 758d0d9..953771f 100644
@@ -37,4 +37,13 @@ endif
 ifeq ($(CONFIG_ARCH_SHMOBILE),y)
 	obj-y += cpuidle-shmobile.o
 endif
+ifeq ($(CONFIG_ARCH_TEGRA_2x_SOC),y)
+	obj-y += cpuidle-tegra20.o
+endif
+ifeq ($(CONFIG_ARCH_TEGRA_3x_SOC),y)
+	obj-y += cpuidle-tegra30.o
+endif
+ifeq ($(CONFIG_ARCH_TEGRA_114_SOC),y)
+	obj-y += cpuidle-tegra114.o
+endif
 obj-$(CONFIG_CPU_IDLE_ZYNQ) += cpuidle-zynq.o
drivers/cpuidle/cpuidle-tegra114.c new file +35 -0
new file mode 100644
index 0000000..1d1c602
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2013, NVIDIA Corporation. All rights reserved.
+ *
+ * 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/>.
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/cpuidle.h>
+
+#include <asm/cpuidle.h>
+
+static struct cpuidle_driver tegra_idle_driver = {
+	.name = "tegra_idle",
+	.owner = THIS_MODULE,
+	.state_count = 1,
+	.states = {
+		[0] = ARM_CPUIDLE_WFI_STATE_PWR(600),
+	},
+};
+
+int __init tegra114_cpuidle_init(void)
+{
+	return cpuidle_register(&tegra_idle_driver, NULL);
+}
drivers/cpuidle/cpuidle-tegra20.c new file +217 -0

217 lines not on this page · raw message

drivers/cpuidle/cpuidle-tegra30.c new file +149 -0

149 lines not on this page · raw message

Signature · 1 line
1.8.2.3
#12 lore raw

PATCH 7/8 ARM: tegra: move cpuidle drivers to drivers/cpuidle/

Quoted 1 line · Bartlomiej Zolnierkiewicz

Compile tested only.

That's not a good patch description; it's more something that should be below the --- line.

This would be a lot easier to review if "-M" had been passed to "git format-patch" so that the move was actually represented as a move in the patch.

This patch would need to move at least part of arch/arm/mach-tegra/cpuidle.h to some common location, since core code that's left in arch/arm/mach-tegra ends up calling functions in the moved files to initialize the cpuidle driver.

You should probably move arch/arm/mach-tegra/cpuidle.c too.

Does it make sense to introduce a new Kconfig option into drivers/cpuidle/Kconfig, so that cpuidle-tegra*.c isn't compiled if ARCH_TEGRA is enabled, but rather if something more like CPU_IDLE_TEGRA is enabled?

#13 lore raw

PATCH 8/8 ARM: ux500: move cpuidle drivers to drivers/cpuidle/

In reply to Bartlomiej Zolnierkiewicz

Compile tested only.

Cc Srinidhi Kasagar <[email protected]>
Cc Linus Walleij <[email protected]>
Cc Daniel Lezcano <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
---
 arch/arm/mach-ux500/Makefile    |   1 -
 arch/arm/mach-ux500/cpuidle.c   | 128 ----------------------------------------
 drivers/cpuidle/Makefile        |   3 +
 drivers/cpuidle/cpuidle-ux500.c | 128 ++++++++++++++++++++++++++++++++++++++++
 4 files changed, 131 insertions(+), 129 deletions(-)
 delete mode 100644 arch/arm/mach-ux500/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-ux500.c
arch/arm/mach-ux500/Makefile +0 -1
index bf9b6be..fe1f3e2 100644
@@ -4,7 +4,6 @@
 
 obj-y				:= cpu.o devices.o devices-common.o \
 				   id.o usb.o timer.o pm.o
-obj-$(CONFIG_CPU_IDLE)          += cpuidle.o
 obj-$(CONFIG_CACHE_L2X0)	+= cache-l2x0.o
 obj-$(CONFIG_UX500_SOC_DB8500)	+= cpu-db8500.o devices-db8500.o
 obj-$(CONFIG_MACH_MOP500)	+= board-mop500.o board-mop500-sdi.o \
arch/arm/mach-ux500/cpuidle.c deleted +0 -128

128 lines not on this page · raw message

drivers/cpuidle/Makefile +3 -0
index 953771f..941ed0b 100644
@@ -46,4 +46,7 @@ endif
 ifeq ($(CONFIG_ARCH_TEGRA_114_SOC),y)
 	obj-y += cpuidle-tegra114.o
 endif
+ifeq ($(CONFIG_ARCH_U8500),y)
+	obj-y += cpuidle-ux500.o
+endif
 obj-$(CONFIG_CPU_IDLE_ZYNQ) += cpuidle-zynq.o
drivers/cpuidle/cpuidle-ux500.c new file +128 -0

128 lines not on this page · raw message

Signature · 1 line
1.8.2.3
#14 lore raw

PATCH 8/8 ARM: ux500: move cpuidle drivers to drivers/cpuidle/

On Wed, Jun 26, 2013 at 12:15 PM, Bartlomiej Zolnierkiewicz <[email protected]> wrote:

--- a/arch/arm/mach-ux500/cpuidle
-#include "db8500-regs.h"
-#include "id.h"

Quoted 1 line

+++ b/drivers/cpuidle/cpuidle-ux500.c

(...)

drivers/cpuidle/cpuidle-ux500.c line 24

Quoted 2 lines
drivers/cpuidle/cpuidle-ux500.c new file +2 -0
+#include "../../arch/arm/mach-ux500/db8500-regs.h"
+#include "../../arch/arm/mach-ux500/id.h"

Well that was creative. NACK.

If you want to move the driver you need to come up with proper interfaces making the move clean, not just move the files and make them compile somewhere else I think.

Yours,
Linus Walleij

#15 lore raw

PATCH 8/8 ARM: ux500: move cpuidle drivers to drivers/cpuidle/

Quoted 8 lines · Linus Walleij

On Wed, Jun 26, 2013 at 12:15 PM, Bartlomiej Zolnierkiewicz <[email protected]> wrote:

--- a/arch/arm/mach-ux500/cpuidle

arch/arm/mach-ux500/cpuidle.c deleted +0 -2
-#include "db8500-regs.h"
-#include "id.h"
Quoted 1 line

+++ b/drivers/cpuidle/cpuidle-ux500.c

(...)

Quoted 8 lines

drivers/cpuidle/cpuidle-ux500.c line 24

Quoted 2 lines
drivers/cpuidle/cpuidle-ux500.c new file +2 -0
+#include "../../arch/arm/mach-ux500/db8500-regs.h"
+#include "../../arch/arm/mach-ux500/id.h"

Well that was creative. NACK.

If you want to move the driver you need to come up with proper interfaces making the move clean, not just move the files and make them compile somewhere else I think.

Seconded. Moving the code into drivers/cpuidle/ doesn't actually turn it into a proper driver. If we cannot find a way to make these look like drivers, we shouldn't move them.

Arnd

#16 lore raw

cover ARM: move cpuidle drivers to drivers/cpuidle/

In reply to Bartlomiej Zolnierkiewicz
Quoted 5 lines · Bartlomiej Zolnierkiewicz

Hi,

This patchset moves ARM cpuidle drivers to drivers/cpuidle/ to make code match new driver placement rules (per commit a8e39c3 "cpuidle: add maintainer entry").

I second this initiative but as stated in a previous email, a bit of code cleanup, consolidation and encapsulation should be done before.

Again, from my POV, it is worth to do that but we have to split the pm code from the driver.

Please review some patches I sent recently to split this code and comment them. Otherwise, we will collide on this work.

All the patches sent [1] was to unify the code to make the drivers as unified as possible to converge to the same code pattern and to facilitate the factoring out.

Thanks
-- Daniel

[1]
https://git.kernel.org/cgit/linux/kernel/git/rafael/linux-pm.git/log/?h=linux-next&qt=author&q=daniel.lezcano%40linaro.org

Quoted 88 lines

[ Please note that movement of Samsung EXYNOS cpuidle driver is handled
in separate patchset since it needs some other changes applied first. ]

Patches are based on linux-next (next-20130624) and are compile tested only. If agreed they all should probably go together through one tree (linux-pm or arm-soc) since they all modify drivers/cpuidle/Makefile.

PS It seems that majority of cpuidle drivers is not used by default (CONFIG_CPU_IDLE is not turned on in corresponding defconfigs). The only exceptions are shmobile (kota2_defconfig) and tegra (tegra_defconfig). This is probably also something that needs updating.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Bartlomiej Zolnierkiewicz (8):
ARM: at91: move cpuidle driver to drivers/cpuidle/
ARM: davinci: move cpuidle driver to drivers/cpuidle/
ARM: imx: move cpuidle drivers to drivers/cpuidle/
ARM: OMAP: move cpuidle drivers to drivers/cpuidle/
ARM: S3C64XX: move cpuidle driver to drivers/cpuidle/
ARM: shmobile: move cpuidle driver to drivers/cpuidle/
ARM: tegra: move cpuidle drivers to drivers/cpuidle/
ARM: ux500: move cpuidle drivers to drivers/cpuidle/

 arch/arm/mach-at91/Makefile            |   1 -
 arch/arm/mach-at91/cpuidle.c           |  68 -------
 arch/arm/mach-davinci/Makefile         |   1 -
 arch/arm/mach-davinci/cpuidle.c        | 105 ----------
 arch/arm/mach-imx/Makefile             |   5 -
 arch/arm/mach-imx/cpuidle-imx5.c       |  37 ----
 arch/arm/mach-imx/cpuidle-imx6q.c      |  75 -------
 arch/arm/mach-omap2/Makefile           |   5 -
 arch/arm/mach-omap2/cpuidle34xx.c      | 344 ---------------------------------
 arch/arm/mach-omap2/cpuidle44xx.c      | 217 ---------------------
 arch/arm/mach-s3c64xx/Makefile         |   1 -
 arch/arm/mach-s3c64xx/cpuidle.c        |  63 ------
 arch/arm/mach-shmobile/Makefile        |   1 -
 arch/arm/mach-shmobile/cpuidle.c       |  37 ----
 arch/arm/mach-tegra/Makefile           |   9 -
 arch/arm/mach-tegra/cpuidle-tegra114.c |  35 ----
 arch/arm/mach-tegra/cpuidle-tegra20.c  | 217 ---------------------
 arch/arm/mach-tegra/cpuidle-tegra30.c  | 149 --------------
 arch/arm/mach-ux500/Makefile           |   1 -
 arch/arm/mach-ux500/cpuidle.c          | 128 ------------
 drivers/cpuidle/Makefile               |  42 ++++
 drivers/cpuidle/cpuidle-at91.c         |  68 +++++++
 drivers/cpuidle/cpuidle-davinci.c      | 104 ++++++++++
 drivers/cpuidle/cpuidle-imx5.c         |  37 ++++
 drivers/cpuidle/cpuidle-imx6q.c        |  74 +++++++
 drivers/cpuidle/cpuidle-omap34xx.c     | 342 ++++++++++++++++++++++++++++++++
 drivers/cpuidle/cpuidle-omap44xx.c     | 216 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-s3c64xx.c      |  62 ++++++
 drivers/cpuidle/cpuidle-shmobile.c     |  37 ++++
 drivers/cpuidle/cpuidle-tegra114.c     |  35 ++++
 drivers/cpuidle/cpuidle-tegra20.c      | 217 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-tegra30.c      | 149 ++++++++++++++
 drivers/cpuidle/cpuidle-ux500.c        | 128 ++++++++++++
 33 files changed, 1511 insertions(+), 1499 deletions(-)
 delete mode 100644 arch/arm/mach-at91/cpuidle.c
 delete mode 100644 arch/arm/mach-davinci/cpuidle.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx5.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx6q.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle34xx.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle44xx.c
 delete mode 100644 arch/arm/mach-s3c64xx/cpuidle.c
 delete mode 100644 arch/arm/mach-shmobile/cpuidle.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra114.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra20.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra30.c
 delete mode 100644 arch/arm/mach-ux500/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-at91.c
 create mode 100644 drivers/cpuidle/cpuidle-davinci.c
 create mode 100644 drivers/cpuidle/cpuidle-imx5.c
 create mode 100644 drivers/cpuidle/cpuidle-imx6q.c
 create mode 100644 drivers/cpuidle/cpuidle-omap34xx.c
 create mode 100644 drivers/cpuidle/cpuidle-omap44xx.c
 create mode 100644 drivers/cpuidle/cpuidle-s3c64xx.c
 create mode 100644 drivers/cpuidle/cpuidle-shmobile.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra114.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra20.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra30.c
 create mode 100644 drivers/cpuidle/cpuidle-ux500.c
Signature · 5 lines
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
#17 lore raw

cover ARM: move cpuidle drivers to drivers/cpuidle/

Hi,

Quoted 7 lines · Daniel Lezcano
Quoted 5 lines · Bartlomiej Zolnierkiewicz

Hi,

This patchset moves ARM cpuidle drivers to drivers/cpuidle/ to make code match new driver placement rules (per commit a8e39c3 "cpuidle: add maintainer entry").

Quoted 5 lines

I second this initiative but as stated in a previous email, a bit of code cleanup, consolidation and encapsulation should be done before.

Again, from my POV, it is worth to do that but we have to split the pm code from the driver.

OK, I'll look into separating the pm code from the drivers. However it seems that patch #2 (for davinci) can be applied as it is.

Quoted 6 lines

Please review some patches I sent recently to split this code and comment them. Otherwise, we will collide on this work.

All the patches sent [1] was to unify the code to make the drivers as unified as possible to converge to the same code pattern and to facilitate the factoring out.

I've looked at the patches ([1] and at91 ones) and they look fine to me.

I don't think that there is currently a risk of colliding on this work (except at91 case) as your patches (except at91 ones) are already merged in upstream or linux-next branch of linux-pm tree (which is included in linux-next tree which I based my patches on). I'm subscribed to linux-pm mailing list now but please cc: me on your future ARM cpuidle changes (thanks!).

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Quoted 93 lines

Thanks
-- Daniel

[1]
https://git.kernel.org/cgit/linux/kernel/git/rafael/linux-pm.git/log/?h=linux-next&qt=author&q=daniel.lezcano%40linaro.org

Quoted 87 lines

[ Please note that movement of Samsung EXYNOS cpuidle driver is handled
in separate patchset since it needs some other changes applied first. ]

Patches are based on linux-next (next-20130624) and are compile tested only. If agreed they all should probably go together through one tree (linux-pm or arm-soc) since they all modify drivers/cpuidle/Makefile.

PS It seems that majority of cpuidle drivers is not used by default (CONFIG_CPU_IDLE is not turned on in corresponding defconfigs). The only exceptions are shmobile (kota2_defconfig) and tegra (tegra_defconfig). This is probably also something that needs updating.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Bartlomiej Zolnierkiewicz (8):
ARM: at91: move cpuidle driver to drivers/cpuidle/
ARM: davinci: move cpuidle driver to drivers/cpuidle/
ARM: imx: move cpuidle drivers to drivers/cpuidle/
ARM: OMAP: move cpuidle drivers to drivers/cpuidle/
ARM: S3C64XX: move cpuidle driver to drivers/cpuidle/
ARM: shmobile: move cpuidle driver to drivers/cpuidle/
ARM: tegra: move cpuidle drivers to drivers/cpuidle/
ARM: ux500: move cpuidle drivers to drivers/cpuidle/

 arch/arm/mach-at91/Makefile            |   1 -
 arch/arm/mach-at91/cpuidle.c           |  68 -------
 arch/arm/mach-davinci/Makefile         |   1 -
 arch/arm/mach-davinci/cpuidle.c        | 105 ----------
 arch/arm/mach-imx/Makefile             |   5 -
 arch/arm/mach-imx/cpuidle-imx5.c       |  37 ----
 arch/arm/mach-imx/cpuidle-imx6q.c      |  75 -------
 arch/arm/mach-omap2/Makefile           |   5 -
 arch/arm/mach-omap2/cpuidle34xx.c      | 344 ---------------------------------
 arch/arm/mach-omap2/cpuidle44xx.c      | 217 ---------------------
 arch/arm/mach-s3c64xx/Makefile         |   1 -
 arch/arm/mach-s3c64xx/cpuidle.c        |  63 ------
 arch/arm/mach-shmobile/Makefile        |   1 -
 arch/arm/mach-shmobile/cpuidle.c       |  37 ----
 arch/arm/mach-tegra/Makefile           |   9 -
 arch/arm/mach-tegra/cpuidle-tegra114.c |  35 ----
 arch/arm/mach-tegra/cpuidle-tegra20.c  | 217 ---------------------
 arch/arm/mach-tegra/cpuidle-tegra30.c  | 149 --------------
 arch/arm/mach-ux500/Makefile           |   1 -
 arch/arm/mach-ux500/cpuidle.c          | 128 ------------
 drivers/cpuidle/Makefile               |  42 ++++
 drivers/cpuidle/cpuidle-at91.c         |  68 +++++++
 drivers/cpuidle/cpuidle-davinci.c      | 104 ++++++++++
 drivers/cpuidle/cpuidle-imx5.c         |  37 ++++
 drivers/cpuidle/cpuidle-imx6q.c        |  74 +++++++
 drivers/cpuidle/cpuidle-omap34xx.c     | 342 ++++++++++++++++++++++++++++++++
 drivers/cpuidle/cpuidle-omap44xx.c     | 216 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-s3c64xx.c      |  62 ++++++
 drivers/cpuidle/cpuidle-shmobile.c     |  37 ++++
 drivers/cpuidle/cpuidle-tegra114.c     |  35 ++++
 drivers/cpuidle/cpuidle-tegra20.c      | 217 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-tegra30.c      | 149 ++++++++++++++
 drivers/cpuidle/cpuidle-ux500.c        | 128 ++++++++++++
 33 files changed, 1511 insertions(+), 1499 deletions(-)
 delete mode 100644 arch/arm/mach-at91/cpuidle.c
 delete mode 100644 arch/arm/mach-davinci/cpuidle.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx5.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx6q.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle34xx.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle44xx.c
 delete mode 100644 arch/arm/mach-s3c64xx/cpuidle.c
 delete mode 100644 arch/arm/mach-shmobile/cpuidle.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra114.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra20.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra30.c
 delete mode 100644 arch/arm/mach-ux500/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-at91.c
 create mode 100644 drivers/cpuidle/cpuidle-davinci.c
 create mode 100644 drivers/cpuidle/cpuidle-imx5.c
 create mode 100644 drivers/cpuidle/cpuidle-imx6q.c
 create mode 100644 drivers/cpuidle/cpuidle-omap34xx.c
 create mode 100644 drivers/cpuidle/cpuidle-omap44xx.c
 create mode 100644 drivers/cpuidle/cpuidle-s3c64xx.c
 create mode 100644 drivers/cpuidle/cpuidle-shmobile.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra114.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra20.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra30.c
 create mode 100644 drivers/cpuidle/cpuidle-ux500.c
#18 lore raw

cover ARM: move cpuidle drivers to drivers/cpuidle/

Quoted 11 lines · Bartlomiej Zolnierkiewicz

Hi,

Quoted 7 lines · Daniel Lezcano
Quoted 5 lines · Bartlomiej Zolnierkiewicz

Hi,

This patchset moves ARM cpuidle drivers to drivers/cpuidle/ to make code match new driver placement rules (per commit a8e39c3 "cpuidle: add maintainer entry").

Quoted 8 lines
Quoted 5 lines

I second this initiative but as stated in a previous email, a bit of code cleanup, consolidation and encapsulation should be done before.

Again, from my POV, it is worth to do that but we have to split the pm code from the driver.

OK, I'll look into separating the pm code from the drivers. However it seems that patch #2 (for davinci) can be applied as it is.

No it can't. It still has #include <mach/...>

Please have a look at the thread:

http://comments.gmane.org/gmane.linux.ports.arm.kernel/146651

Quoted 7 lines
Quoted 6 lines

Please review some patches I sent recently to split this code and comment them. Otherwise, we will collide on this work.

All the patches sent [1] was to unify the code to make the drivers as unified as possible to converge to the same code pattern and to facilitate the factoring out.

Quoted 7 lines

I've looked at the patches ([1] and at91 ones) and they look fine to me. I don't think that there is currently a risk of colliding on this work (except at91 case) as your patches (except at91 ones) are already merged in upstream or linux-next branch of linux-pm tree (which is included in linux-next tree which I based my patches on). I'm subscribed to linux-pm mailing list now but please cc: me on your future ARM cpuidle changes (thanks!).

We are working on cleaning up the different drivers to have a *common code pattern* in order to factor it out, split the code into pm code and driver code, move the drivers to the drivers/cpuidle directory and finally create a single arm driver [1][2][3].

You are sending patches to move the drivers directly to the drivers/cpuidle directory. I did that 1,5 years ago and I was told it is not the way to go [4].

As you can see this is a WIP.

So I am insisting: that would be better if you sync up with us and check what is the WIP and, if you are willing to, give us a hand instead of doing your way.

May I suggest you fix up the exynos cpuidle driver first ? :)

Thanks
-- Daniel

[1]
https://blueprints.launchpad.net/linaro-power-kernel/+spec/cpuidle-consolidate-arm-drivers

[2]
http://summit.linuxplumbersconf.org/lpc-2012/meeting/31/lpc2012-ref-cpu-idle-cluster-management/

[3] https://e.lca-13.zerista.com/event/member/72362

[4] http://comments.gmane.org/gmane.linux.ports.arm.kernel/146651

Quoted 100 lines

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Quoted 93 lines

Thanks
-- Daniel

[1]
https://git.kernel.org/cgit/linux/kernel/git/rafael/linux-pm.git/log/?h=linux-next&qt=author&q=daniel.lezcano%40linaro.org

Quoted 87 lines

[ Please note that movement of Samsung EXYNOS cpuidle driver is handled
in separate patchset since it needs some other changes applied first. ]

Patches are based on linux-next (next-20130624) and are compile tested only. If agreed they all should probably go together through one tree (linux-pm or arm-soc) since they all modify drivers/cpuidle/Makefile.

PS It seems that majority of cpuidle drivers is not used by default (CONFIG_CPU_IDLE is not turned on in corresponding defconfigs). The only exceptions are shmobile (kota2_defconfig) and tegra (tegra_defconfig). This is probably also something that needs updating.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Bartlomiej Zolnierkiewicz (8):
ARM: at91: move cpuidle driver to drivers/cpuidle/
ARM: davinci: move cpuidle driver to drivers/cpuidle/
ARM: imx: move cpuidle drivers to drivers/cpuidle/
ARM: OMAP: move cpuidle drivers to drivers/cpuidle/
ARM: S3C64XX: move cpuidle driver to drivers/cpuidle/
ARM: shmobile: move cpuidle driver to drivers/cpuidle/
ARM: tegra: move cpuidle drivers to drivers/cpuidle/
ARM: ux500: move cpuidle drivers to drivers/cpuidle/

 arch/arm/mach-at91/Makefile            |   1 -
 arch/arm/mach-at91/cpuidle.c           |  68 -------
 arch/arm/mach-davinci/Makefile         |   1 -
 arch/arm/mach-davinci/cpuidle.c        | 105 ----------
 arch/arm/mach-imx/Makefile             |   5 -
 arch/arm/mach-imx/cpuidle-imx5.c       |  37 ----
 arch/arm/mach-imx/cpuidle-imx6q.c      |  75 -------
 arch/arm/mach-omap2/Makefile           |   5 -
 arch/arm/mach-omap2/cpuidle34xx.c      | 344 ---------------------------------
 arch/arm/mach-omap2/cpuidle44xx.c      | 217 ---------------------
 arch/arm/mach-s3c64xx/Makefile         |   1 -
 arch/arm/mach-s3c64xx/cpuidle.c        |  63 ------
 arch/arm/mach-shmobile/Makefile        |   1 -
 arch/arm/mach-shmobile/cpuidle.c       |  37 ----
 arch/arm/mach-tegra/Makefile           |   9 -
 arch/arm/mach-tegra/cpuidle-tegra114.c |  35 ----
 arch/arm/mach-tegra/cpuidle-tegra20.c  | 217 ---------------------
 arch/arm/mach-tegra/cpuidle-tegra30.c  | 149 --------------
 arch/arm/mach-ux500/Makefile           |   1 -
 arch/arm/mach-ux500/cpuidle.c          | 128 ------------
 drivers/cpuidle/Makefile               |  42 ++++
 drivers/cpuidle/cpuidle-at91.c         |  68 +++++++
 drivers/cpuidle/cpuidle-davinci.c      | 104 ++++++++++
 drivers/cpuidle/cpuidle-imx5.c         |  37 ++++
 drivers/cpuidle/cpuidle-imx6q.c        |  74 +++++++
 drivers/cpuidle/cpuidle-omap34xx.c     | 342 ++++++++++++++++++++++++++++++++
 drivers/cpuidle/cpuidle-omap44xx.c     | 216 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-s3c64xx.c      |  62 ++++++
 drivers/cpuidle/cpuidle-shmobile.c     |  37 ++++
 drivers/cpuidle/cpuidle-tegra114.c     |  35 ++++
 drivers/cpuidle/cpuidle-tegra20.c      | 217 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-tegra30.c      | 149 ++++++++++++++
 drivers/cpuidle/cpuidle-ux500.c        | 128 ++++++++++++
 33 files changed, 1511 insertions(+), 1499 deletions(-)
 delete mode 100644 arch/arm/mach-at91/cpuidle.c
 delete mode 100644 arch/arm/mach-davinci/cpuidle.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx5.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx6q.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle34xx.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle44xx.c
 delete mode 100644 arch/arm/mach-s3c64xx/cpuidle.c
 delete mode 100644 arch/arm/mach-shmobile/cpuidle.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra114.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra20.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra30.c
 delete mode 100644 arch/arm/mach-ux500/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-at91.c
 create mode 100644 drivers/cpuidle/cpuidle-davinci.c
 create mode 100644 drivers/cpuidle/cpuidle-imx5.c
 create mode 100644 drivers/cpuidle/cpuidle-imx6q.c
 create mode 100644 drivers/cpuidle/cpuidle-omap34xx.c
 create mode 100644 drivers/cpuidle/cpuidle-omap44xx.c
 create mode 100644 drivers/cpuidle/cpuidle-s3c64xx.c
 create mode 100644 drivers/cpuidle/cpuidle-shmobile.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra114.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra20.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra30.c
 create mode 100644 drivers/cpuidle/cpuidle-ux500.c
Signature · 5 lines
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
#19 lore raw

cover ARM: move cpuidle drivers to drivers/cpuidle/

Quoted 18 lines · Daniel Lezcano
Quoted 17 lines · Bartlomiej Zolnierkiewicz

Hi,

Quoted 12 lines · Daniel Lezcano
Quoted 5 lines · Bartlomiej Zolnierkiewicz

Hi,

This patchset moves ARM cpuidle drivers to drivers/cpuidle/ to make code match new driver placement rules (per commit a8e39c3 "cpuidle: add maintainer entry").

I second this initiative but as stated in a previous email, a bit of code cleanup, consolidation and encapsulation should be done before.

Again, from my POV, it is worth to do that but we have to split the pm code from the driver.

Quoted 8 lines
Quoted 2 lines

OK, I'll look into separating the pm code from the drivers. However it seems that patch #2 (for davinci) can be applied as it is.

No it can't. It still has #include <mach/...>

Please have a look at the thread:

http://comments.gmane.org/gmane.linux.ports.arm.kernel/146651

OK, I see.

On davinci:

* <mach/cpuidle.h> contains only struct davinci_cpuidle_config declaration (pointer to this structure instance is passed as platform data to davinci cpuidle driver) so it seems that moving it to <linux/platform_data/cpuidle-davinci.h> would be sufficient?

* <mach/ddr2.h> contains only few definitions used by davinci cpuidle driver and arch/arm/mach-davinci/sleep.S so wouldn't it be OK to just move the header to <linux/davinci_ddr2.h>?

If agreed I'll prepare appropriate patches later.

Quoted 15 lines
Quoted 7 lines
Quoted 6 lines

Please review some patches I sent recently to split this code and comment them. Otherwise, we will collide on this work.

All the patches sent [1] was to unify the code to make the drivers as unified as possible to converge to the same code pattern and to facilitate the factoring out.

Quoted 7 lines

I've looked at the patches ([1] and at91 ones) and they look fine to me. I don't think that there is currently a risk of colliding on this work (except at91 case) as your patches (except at91 ones) are already merged in upstream or linux-next branch of linux-pm tree (which is included in linux-next tree which I based my patches on). I'm subscribed to linux-pm mailing list now but please cc: me on your future ARM cpuidle changes (thanks!).

Quoted 4 lines

We are working on cleaning up the different drivers to have a *common code pattern* in order to factor it out, split the code into pm code and driver code, move the drivers to the drivers/cpuidle directory and finally create a single arm driver [1][2][3].

Interesting, I wasn't aware of the single arm driver goal..

Quoted 9 lines

You are sending patches to move the drivers directly to the drivers/cpuidle directory. I did that 1,5 years ago and I was told it is not the way to go [4].

As you can see this is a WIP.

So I am insisting: that would be better if you sync up with us and check what is the WIP and, if you are willing to, give us a hand instead of doing your way.

OK.

Quoted 1 line

May I suggest you fix up the exynos cpuidle driver first ? :)

Sure.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Quoted 113 lines

Thanks
-- Daniel

[1]
https://blueprints.launchpad.net/linaro-power-kernel/+spec/cpuidle-consolidate-arm-drivers

[2]
http://summit.linuxplumbersconf.org/lpc-2012/meeting/31/lpc2012-ref-cpu-idle-cluster-management/

[3] https://e.lca-13.zerista.com/event/member/72362

[4] http://comments.gmane.org/gmane.linux.ports.arm.kernel/146651

Quoted 99 lines

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Quoted 93 lines

Thanks
-- Daniel

[1]
https://git.kernel.org/cgit/linux/kernel/git/rafael/linux-pm.git/log/?h=linux-next&qt=author&q=daniel.lezcano%40linaro.org

Quoted 87 lines

[ Please note that movement of Samsung EXYNOS cpuidle driver is handled
in separate patchset since it needs some other changes applied first. ]

Patches are based on linux-next (next-20130624) and are compile tested only. If agreed they all should probably go together through one tree (linux-pm or arm-soc) since they all modify drivers/cpuidle/Makefile.

PS It seems that majority of cpuidle drivers is not used by default (CONFIG_CPU_IDLE is not turned on in corresponding defconfigs). The only exceptions are shmobile (kota2_defconfig) and tegra (tegra_defconfig). This is probably also something that needs updating.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Bartlomiej Zolnierkiewicz (8):
ARM: at91: move cpuidle driver to drivers/cpuidle/
ARM: davinci: move cpuidle driver to drivers/cpuidle/
ARM: imx: move cpuidle drivers to drivers/cpuidle/
ARM: OMAP: move cpuidle drivers to drivers/cpuidle/
ARM: S3C64XX: move cpuidle driver to drivers/cpuidle/
ARM: shmobile: move cpuidle driver to drivers/cpuidle/
ARM: tegra: move cpuidle drivers to drivers/cpuidle/
ARM: ux500: move cpuidle drivers to drivers/cpuidle/

 arch/arm/mach-at91/Makefile            |   1 -
 arch/arm/mach-at91/cpuidle.c           |  68 -------
 arch/arm/mach-davinci/Makefile         |   1 -
 arch/arm/mach-davinci/cpuidle.c        | 105 ----------
 arch/arm/mach-imx/Makefile             |   5 -
 arch/arm/mach-imx/cpuidle-imx5.c       |  37 ----
 arch/arm/mach-imx/cpuidle-imx6q.c      |  75 -------
 arch/arm/mach-omap2/Makefile           |   5 -
 arch/arm/mach-omap2/cpuidle34xx.c      | 344 ---------------------------------
 arch/arm/mach-omap2/cpuidle44xx.c      | 217 ---------------------
 arch/arm/mach-s3c64xx/Makefile         |   1 -
 arch/arm/mach-s3c64xx/cpuidle.c        |  63 ------
 arch/arm/mach-shmobile/Makefile        |   1 -
 arch/arm/mach-shmobile/cpuidle.c       |  37 ----
 arch/arm/mach-tegra/Makefile           |   9 -
 arch/arm/mach-tegra/cpuidle-tegra114.c |  35 ----
 arch/arm/mach-tegra/cpuidle-tegra20.c  | 217 ---------------------
 arch/arm/mach-tegra/cpuidle-tegra30.c  | 149 --------------
 arch/arm/mach-ux500/Makefile           |   1 -
 arch/arm/mach-ux500/cpuidle.c          | 128 ------------
 drivers/cpuidle/Makefile               |  42 ++++
 drivers/cpuidle/cpuidle-at91.c         |  68 +++++++
 drivers/cpuidle/cpuidle-davinci.c      | 104 ++++++++++
 drivers/cpuidle/cpuidle-imx5.c         |  37 ++++
 drivers/cpuidle/cpuidle-imx6q.c        |  74 +++++++
 drivers/cpuidle/cpuidle-omap34xx.c     | 342 ++++++++++++++++++++++++++++++++
 drivers/cpuidle/cpuidle-omap44xx.c     | 216 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-s3c64xx.c      |  62 ++++++
 drivers/cpuidle/cpuidle-shmobile.c     |  37 ++++
 drivers/cpuidle/cpuidle-tegra114.c     |  35 ++++
 drivers/cpuidle/cpuidle-tegra20.c      | 217 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-tegra30.c      | 149 ++++++++++++++
 drivers/cpuidle/cpuidle-ux500.c        | 128 ++++++++++++
 33 files changed, 1511 insertions(+), 1499 deletions(-)
 delete mode 100644 arch/arm/mach-at91/cpuidle.c
 delete mode 100644 arch/arm/mach-davinci/cpuidle.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx5.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx6q.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle34xx.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle44xx.c
 delete mode 100644 arch/arm/mach-s3c64xx/cpuidle.c
 delete mode 100644 arch/arm/mach-shmobile/cpuidle.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra114.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra20.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra30.c
 delete mode 100644 arch/arm/mach-ux500/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-at91.c
 create mode 100644 drivers/cpuidle/cpuidle-davinci.c
 create mode 100644 drivers/cpuidle/cpuidle-imx5.c
 create mode 100644 drivers/cpuidle/cpuidle-imx6q.c
 create mode 100644 drivers/cpuidle/cpuidle-omap34xx.c
 create mode 100644 drivers/cpuidle/cpuidle-omap44xx.c
 create mode 100644 drivers/cpuidle/cpuidle-s3c64xx.c
 create mode 100644 drivers/cpuidle/cpuidle-shmobile.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra114.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra20.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra30.c
 create mode 100644 drivers/cpuidle/cpuidle-ux500.c
#20 lore raw

cover ARM: move cpuidle drivers to drivers/cpuidle/

Quoted 38 lines · Bartlomiej Zolnierkiewicz
Quoted 18 lines · Daniel Lezcano
Quoted 17 lines · Bartlomiej Zolnierkiewicz

Hi,

Quoted 12 lines · Daniel Lezcano
Quoted 5 lines · Bartlomiej Zolnierkiewicz

Hi,

This patchset moves ARM cpuidle drivers to drivers/cpuidle/ to make code match new driver placement rules (per commit a8e39c3 "cpuidle: add maintainer entry").

I second this initiative but as stated in a previous email, a bit of code cleanup, consolidation and encapsulation should be done before.

Again, from my POV, it is worth to do that but we have to split the pm code from the driver.

Quoted 8 lines
Quoted 2 lines

OK, I'll look into separating the pm code from the drivers. However it seems that patch #2 (for davinci) can be applied as it is.

No it can't. It still has #include <mach/...>

Please have a look at the thread:

http://comments.gmane.org/gmane.linux.ports.arm.kernel/146651

OK, I see.

On davinci:

* <mach/cpuidle.h> contains only struct davinci_cpuidle_config declaration (pointer to this structure instance is passed as platform data to davinci cpuidle driver) so it seems that moving it to <linux/platform_data/cpuidle-davinci.h> would be sufficient?

Quoted 5 lines

* <mach/ddr2.h> contains only few definitions used by davinci cpuidle driver and arch/arm/mach-davinci/sleep.S so wouldn't it be OK to just move the header to <linux/davinci_ddr2.h>?

If agreed I'll prepare appropriate patches later.

Let me handle this driver with at91. I am consolidating the code around the RAM self refresh.

Quoted 158 lines
Quoted 15 lines
Quoted 7 lines
Quoted 6 lines

Please review some patches I sent recently to split this code and comment them. Otherwise, we will collide on this work.

All the patches sent [1] was to unify the code to make the drivers as unified as possible to converge to the same code pattern and to facilitate the factoring out.

Quoted 7 lines

I've looked at the patches ([1] and at91 ones) and they look fine to me. I don't think that there is currently a risk of colliding on this work (except at91 case) as your patches (except at91 ones) are already merged in upstream or linux-next branch of linux-pm tree (which is included in linux-next tree which I based my patches on). I'm subscribed to linux-pm mailing list now but please cc: me on your future ARM cpuidle changes (thanks!).

Quoted 4 lines

We are working on cleaning up the different drivers to have a *common code pattern* in order to factor it out, split the code into pm code and driver code, move the drivers to the drivers/cpuidle directory and finally create a single arm driver [1][2][3].

Interesting, I wasn't aware of the single arm driver goal..

Quoted 9 lines

You are sending patches to move the drivers directly to the drivers/cpuidle directory. I did that 1,5 years ago and I was told it is not the way to go [4].

As you can see this is a WIP.

So I am insisting: that would be better if you sync up with us and check what is the WIP and, if you are willing to, give us a hand instead of doing your way.

OK.

Quoted 1 line

May I suggest you fix up the exynos cpuidle driver first ? :)

Sure.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Quoted 113 lines

Thanks
-- Daniel

[1]
https://blueprints.launchpad.net/linaro-power-kernel/+spec/cpuidle-consolidate-arm-drivers

[2]
http://summit.linuxplumbersconf.org/lpc-2012/meeting/31/lpc2012-ref-cpu-idle-cluster-management/

[3] https://e.lca-13.zerista.com/event/member/72362

[4] http://comments.gmane.org/gmane.linux.ports.arm.kernel/146651

Quoted 99 lines

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Quoted 93 lines

Thanks
-- Daniel

[1]
https://git.kernel.org/cgit/linux/kernel/git/rafael/linux-pm.git/log/?h=linux-next&qt=author&q=daniel.lezcano%40linaro.org

Quoted 87 lines

[ Please note that movement of Samsung EXYNOS cpuidle driver is handled
in separate patchset since it needs some other changes applied first. ]

Patches are based on linux-next (next-20130624) and are compile tested only. If agreed they all should probably go together through one tree (linux-pm or arm-soc) since they all modify drivers/cpuidle/Makefile.

PS It seems that majority of cpuidle drivers is not used by default (CONFIG_CPU_IDLE is not turned on in corresponding defconfigs). The only exceptions are shmobile (kota2_defconfig) and tegra (tegra_defconfig). This is probably also something that needs updating.

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

Bartlomiej Zolnierkiewicz (8):
ARM: at91: move cpuidle driver to drivers/cpuidle/
ARM: davinci: move cpuidle driver to drivers/cpuidle/
ARM: imx: move cpuidle drivers to drivers/cpuidle/
ARM: OMAP: move cpuidle drivers to drivers/cpuidle/
ARM: S3C64XX: move cpuidle driver to drivers/cpuidle/
ARM: shmobile: move cpuidle driver to drivers/cpuidle/
ARM: tegra: move cpuidle drivers to drivers/cpuidle/
ARM: ux500: move cpuidle drivers to drivers/cpuidle/

 arch/arm/mach-at91/Makefile            |   1 -
 arch/arm/mach-at91/cpuidle.c           |  68 -------
 arch/arm/mach-davinci/Makefile         |   1 -
 arch/arm/mach-davinci/cpuidle.c        | 105 ----------
 arch/arm/mach-imx/Makefile             |   5 -
 arch/arm/mach-imx/cpuidle-imx5.c       |  37 ----
 arch/arm/mach-imx/cpuidle-imx6q.c      |  75 -------
 arch/arm/mach-omap2/Makefile           |   5 -
 arch/arm/mach-omap2/cpuidle34xx.c      | 344 ---------------------------------
 arch/arm/mach-omap2/cpuidle44xx.c      | 217 ---------------------
 arch/arm/mach-s3c64xx/Makefile         |   1 -
 arch/arm/mach-s3c64xx/cpuidle.c        |  63 ------
 arch/arm/mach-shmobile/Makefile        |   1 -
 arch/arm/mach-shmobile/cpuidle.c       |  37 ----
 arch/arm/mach-tegra/Makefile           |   9 -
 arch/arm/mach-tegra/cpuidle-tegra114.c |  35 ----
 arch/arm/mach-tegra/cpuidle-tegra20.c  | 217 ---------------------
 arch/arm/mach-tegra/cpuidle-tegra30.c  | 149 --------------
 arch/arm/mach-ux500/Makefile           |   1 -
 arch/arm/mach-ux500/cpuidle.c          | 128 ------------
 drivers/cpuidle/Makefile               |  42 ++++
 drivers/cpuidle/cpuidle-at91.c         |  68 +++++++
 drivers/cpuidle/cpuidle-davinci.c      | 104 ++++++++++
 drivers/cpuidle/cpuidle-imx5.c         |  37 ++++
 drivers/cpuidle/cpuidle-imx6q.c        |  74 +++++++
 drivers/cpuidle/cpuidle-omap34xx.c     | 342 ++++++++++++++++++++++++++++++++
 drivers/cpuidle/cpuidle-omap44xx.c     | 216 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-s3c64xx.c      |  62 ++++++
 drivers/cpuidle/cpuidle-shmobile.c     |  37 ++++
 drivers/cpuidle/cpuidle-tegra114.c     |  35 ++++
 drivers/cpuidle/cpuidle-tegra20.c      | 217 +++++++++++++++++++++
 drivers/cpuidle/cpuidle-tegra30.c      | 149 ++++++++++++++
 drivers/cpuidle/cpuidle-ux500.c        | 128 ++++++++++++
 33 files changed, 1511 insertions(+), 1499 deletions(-)
 delete mode 100644 arch/arm/mach-at91/cpuidle.c
 delete mode 100644 arch/arm/mach-davinci/cpuidle.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx5.c
 delete mode 100644 arch/arm/mach-imx/cpuidle-imx6q.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle34xx.c
 delete mode 100644 arch/arm/mach-omap2/cpuidle44xx.c
 delete mode 100644 arch/arm/mach-s3c64xx/cpuidle.c
 delete mode 100644 arch/arm/mach-shmobile/cpuidle.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra114.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra20.c
 delete mode 100644 arch/arm/mach-tegra/cpuidle-tegra30.c
 delete mode 100644 arch/arm/mach-ux500/cpuidle.c
 create mode 100644 drivers/cpuidle/cpuidle-at91.c
 create mode 100644 drivers/cpuidle/cpuidle-davinci.c
 create mode 100644 drivers/cpuidle/cpuidle-imx5.c
 create mode 100644 drivers/cpuidle/cpuidle-imx6q.c
 create mode 100644 drivers/cpuidle/cpuidle-omap34xx.c
 create mode 100644 drivers/cpuidle/cpuidle-omap44xx.c
 create mode 100644 drivers/cpuidle/cpuidle-s3c64xx.c
 create mode 100644 drivers/cpuidle/cpuidle-shmobile.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra114.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra20.c
 create mode 100644 drivers/cpuidle/cpuidle-tegra30.c
 create mode 100644 drivers/cpuidle/cpuidle-ux500.c
Signature · 5 lines
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog