ARM: move cpuidle drivers to drivers/cpuidle/
Subsystems (11)
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
PATCH 1/8 ARM: at91: move cpuidle driver to drivers/cpuidle/
Compile tested only.
--- 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
@@ -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
@@ -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
PATCH 2/8 ARM: davinci: move cpuidle driver to drivers/cpuidle/
In reply to Bartlomiej ZolnierkiewiczCompile tested only.
--- 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
@@ -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
@@ -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
PATCH 3/8 ARM: imx: move cpuidle drivers to drivers/cpuidle/
In reply to Bartlomiej ZolnierkiewiczWhile at it:
- remove needless "cpuidle.h" include from cpuidle-imx6q.c
- fix whitespace issue in cpuidle-imx6q.c
Compile tested only.
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH 4/8 ARM: OMAP: move cpuidle drivers to drivers/cpuidle/
In reply to Bartlomiej ZolnierkiewiczWhile at it:
- remove file path from comment
- fix whitespace issues
Compile tested only.
--- 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
@@ -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
@@ -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
Tony Lindgren
maintainerPATCH 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 issuesCompile 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
Kevin Hilman
NAKPATCH 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 issuesCompile 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
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 issuesCompile tested only.
Cc Tony Lindgren <[email protected]>Cc Daniel Lezcano <[email protected]>Cc "Rafael J. Wysocki" <[email protected]>Signed-off-by Kyungmin Park <[email protected]>Signed-off-by Bartlomiej Zolnierkiewicz <[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@@ -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
PATCH 5/8 ARM: S3C64XX: move cpuidle driver to drivers/cpuidle/
In reply to Bartlomiej ZolnierkiewiczWhile at it:
- remove file path from comment
Compile tested only.
--- 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
@@ -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
@@ -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
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 commentCompile 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]>Signed-off-by Kyungmin Park <[email protected]>Signed-off-by Bartlomiej Zolnierkiewicz <[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.cPlease see below with using '-M'.
--------8<-------------------------------8<--------
obj-$(CONFIG_PM) += pm.o irq-pm.o sleep.oarch/arm/mach-s3c64xx/Makefile +0
-1-obj-$(CONFIG_CPU_IDLE) += cpuidle.o # DMA supportdrivers/cpuidle/cpuidle- renamed from arch/arm/mach-s3c64xx/cpuidle.c +0
-0
s3c64xx.c
similarity index 92%
rename fromarch/arm/mach-s3c64xx/cpuidle.c
rename todrivers/cpuidle/cpuidle-s3c64xx.c
index 3c8ab07..c18d075 100644drivers/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
-0s3c64xx/Makefile
index 31d0c91..e7a3ee7 100644arch/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 supportarch/arm/mach- renamed from arch/arm/mach-s3c64xx/cpuidle.c +0
-0
s3c64xx/cpuidle.c
deleted file mode 100644
index 3c8ab07..0000000arch/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@@ -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 +endifI think, adding
CONFIG_CPU_IDLE_S3C64XXlike others, Calexeda, Zynq is better...?Review
Quoted 2 lines
drivers/cpuidle/Makefile +0
-0obj-$(CONFIG_CPU_IDLE_ZYNQ) += cpuidle-zynq.o(quoted diff) +0
-0b/drivers/cpuidle/cpuidle-
Quoted 5 lines
s3c64xx.c
new file mode 100644
index 0000000..c18d075drivers/cpuidle/cpuidle-s3c64xx.c new file +0
-0[...]
Quoted 2 lines
--
1.8.2.3Thanks,
Kukjin
PATCH 6/8 ARM: shmobile: move cpuidle driver to drivers/cpuidle/
In reply to Bartlomiej ZolnierkiewiczWhile at it:
- replace <asm/io.h> by <linux/io.h> one
Compile tested only.
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH 7/8 ARM: tegra: move cpuidle drivers to drivers/cpuidle/
In reply to Bartlomiej ZolnierkiewiczCompile tested only.
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
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?
PATCH 8/8 ARM: ux500: move cpuidle drivers to drivers/cpuidle/
In reply to Bartlomiej ZolnierkiewiczCompile tested only.
--- 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
@@ -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
@@ -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
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
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
cover ARM: move cpuidle drivers to drivers/cpuidle/
In reply to Bartlomiej ZolnierkiewiczQuoted 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
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_IDLEis 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 ElectronicsBartlomiej Zolnierkiewicz (8):
ARM: at91: move cpuidle driver todrivers/cpuidle/
ARM: davinci: move cpuidle driver todrivers/cpuidle/
ARM: imx: move cpuidle drivers todrivers/cpuidle/
ARM: OMAP: move cpuidle drivers todrivers/cpuidle/
ARM: S3C64XX: move cpuidle driver todrivers/cpuidle/
ARM: shmobile: move cpuidle driver todrivers/cpuidle/
ARM: tegra: move cpuidle drivers todrivers/cpuidle/
ARM: ux500: move cpuidle drivers todrivers/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
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
-- DanielQuoted 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_IDLEis 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 ElectronicsBartlomiej Zolnierkiewicz (8):
ARM: at91: move cpuidle driver todrivers/cpuidle/
ARM: davinci: move cpuidle driver todrivers/cpuidle/
ARM: imx: move cpuidle drivers todrivers/cpuidle/
ARM: OMAP: move cpuidle drivers todrivers/cpuidle/
ARM: S3C64XX: move cpuidle driver todrivers/cpuidle/
ARM: shmobile: move cpuidle driver todrivers/cpuidle/
ARM: tegra: move cpuidle drivers todrivers/cpuidle/
ARM: ux500: move cpuidle drivers todrivers/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
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 ElectronicsQuoted 93 lines
Thanks
-- DanielQuoted 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_IDLEis 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 ElectronicsBartlomiej Zolnierkiewicz (8):
ARM: at91: move cpuidle driver todrivers/cpuidle/
ARM: davinci: move cpuidle driver todrivers/cpuidle/
ARM: imx: move cpuidle drivers todrivers/cpuidle/
ARM: OMAP: move cpuidle drivers todrivers/cpuidle/
ARM: S3C64XX: move cpuidle driver todrivers/cpuidle/
ARM: shmobile: move cpuidle driver todrivers/cpuidle/
ARM: tegra: move cpuidle drivers todrivers/cpuidle/
ARM: ux500: move cpuidle drivers todrivers/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
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/cpuidledirectory 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/cpuidledirectory. 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 ElectronicsQuoted 93 lines
Thanks
-- DanielQuoted 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_IDLEis 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 ElectronicsBartlomiej Zolnierkiewicz (8):
ARM: at91: move cpuidle driver todrivers/cpuidle/
ARM: davinci: move cpuidle driver todrivers/cpuidle/
ARM: imx: move cpuidle drivers todrivers/cpuidle/
ARM: OMAP: move cpuidle drivers todrivers/cpuidle/
ARM: S3C64XX: move cpuidle driver todrivers/cpuidle/
ARM: shmobile: move cpuidle driver todrivers/cpuidle/
ARM: tegra: move cpuidle drivers todrivers/cpuidle/
ARM: ux500: move cpuidle drivers todrivers/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
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 structdavinci_cpuidle_configdeclaration (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 andarch/arm/mach-davinci/sleep.Sso 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/cpuidledirectory 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/cpuidledirectory. 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 ElectronicsQuoted 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 ElectronicsQuoted 93 lines
Thanks
-- DanielQuoted 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_IDLEis 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 ElectronicsBartlomiej Zolnierkiewicz (8):
ARM: at91: move cpuidle driver todrivers/cpuidle/
ARM: davinci: move cpuidle driver todrivers/cpuidle/
ARM: imx: move cpuidle drivers todrivers/cpuidle/
ARM: OMAP: move cpuidle drivers todrivers/cpuidle/
ARM: S3C64XX: move cpuidle driver todrivers/cpuidle/
ARM: shmobile: move cpuidle driver todrivers/cpuidle/
ARM: tegra: move cpuidle drivers todrivers/cpuidle/
ARM: ux500: move cpuidle drivers todrivers/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