All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: "rjw@rjwysocki.net" <rjw@rjwysocki.net>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Catalin Marinas <Catalin.Marinas@arm.com>,
	"robherring2@gmail.com" <robherring2@gmail.com>,
	"arnd@arndb.de" <arnd@arndb.de>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"lina.iyer@linaro.org" <lina.iyer@linaro.org>,
	"sboyd@codeaurora.org" <sboyd@codeaurora.org>
Subject: Re: [PATCH V3 6/8] ARM: cpuidle: Enable the ARM64 driver for both ARM32/ARM64
Date: Sat, 21 Mar 2015 20:20:33 +0000	[thread overview]
Message-ID: <20150321202033.GB22354@red-moon> (raw)
In-Reply-To: <1426851841-2072-7-git-send-email-daniel.lezcano@linaro.org>

On Fri, Mar 20, 2015 at 11:43:59AM +0000, Daniel Lezcano wrote:
> ARM32 and ARM64 have the same DT definitions and the same approaches.
> 
> The generic ARM cpuidle driver can be put in common for those two
> architectures.
> 
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> Acked-by: Kevin Hilman <khilman@linaro.org>
> Acked-by: Rob Herring <robherring2@gmail.com>
> ---
>  drivers/cpuidle/Kconfig                            |  7 +------
>  drivers/cpuidle/Kconfig.arm                        | 12 +++++++++++-
>  drivers/cpuidle/Kconfig.arm64                      | 13 -------------
>  drivers/cpuidle/Makefile                           |  5 +----
>  drivers/cpuidle/{cpuidle-arm64.c => cpuidle-arm.c} |  0
>  5 files changed, 13 insertions(+), 24 deletions(-)
>  delete mode 100644 drivers/cpuidle/Kconfig.arm64
>  rename drivers/cpuidle/{cpuidle-arm64.c => cpuidle-arm.c} (100%)
> 
> diff --git a/drivers/cpuidle/Kconfig b/drivers/cpuidle/Kconfig
> index c5029c1..8c7930b 100644
> --- a/drivers/cpuidle/Kconfig
> +++ b/drivers/cpuidle/Kconfig
> @@ -29,15 +29,10 @@ config DT_IDLE_STATES
>  	bool
>  
>  menu "ARM CPU Idle Drivers"
> -depends on ARM
> +depends on ARM || ARM64
>  source "drivers/cpuidle/Kconfig.arm"

Risk here is pulling in arm drivers on arm64, maybe it is better to
add a guard in Kconfig.arm to prevent pulling in ARM drivers (on ARM64)
instead of just doing that for Exynos.

>  endmenu
>  
> -menu "ARM64 CPU Idle Drivers"
> -depends on ARM64
> -source "drivers/cpuidle/Kconfig.arm64"
> -endmenu
> -
>  menu "MIPS CPU Idle Drivers"
>  depends on MIPS
>  source "drivers/cpuidle/Kconfig.mips"
> diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
> index 8e07c94..1f067bd 100644
> --- a/drivers/cpuidle/Kconfig.arm
> +++ b/drivers/cpuidle/Kconfig.arm
> @@ -14,6 +14,16 @@ config ARM_BIG_LITTLE_CPUIDLE
>  	  define different C-states for little and big cores through the
>  	  multiple CPU idle drivers infrastructure.
>  
> +config ARM_CPUIDLE

You have to update the arm64 defconfig.

> +	bool "Generic ARM/ARM64 CPU idle Driver"
> +	select DT_IDLE_STATES
> +	help
> +	  Select this to enable generic cpuidle driver for ARM.
> +	  It provides a generic idle driver whose idle states are configured
> +	  at run-time through DT nodes. The CPUidle suspend backend is
> +	  initialized by calling the CPU operations init idle hook
> +	  provided by architecture code.
> +
>  config ARM_CLPS711X_CPUIDLE
>  	bool "CPU Idle Driver for CLPS711X processors"
>  	depends on ARCH_CLPS711X || COMPILE_TEST

This for instance gets pulled in on allmodconfig on arm64, which is
not useful and possibly noxious.

> @@ -54,7 +64,7 @@ config ARM_AT91_CPUIDLE
>  
>  config ARM_EXYNOS_CPUIDLE
>  	bool "Cpu Idle Driver for the Exynos processors"
> -	depends on ARCH_EXYNOS
> +	depends on ARCH_EXYNOS && !ARM64

I would add a guard for all ARM drivers to prevent pulling them in
on ARM64.

With the above changes:

Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

>  	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
>  	help
>  	  Select this to enable cpuidle for Exynos processors
> diff --git a/drivers/cpuidle/Kconfig.arm64 b/drivers/cpuidle/Kconfig.arm64
> deleted file mode 100644
> index 6effb36..0000000
> --- a/drivers/cpuidle/Kconfig.arm64
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -#
> -# ARM64 CPU Idle drivers
> -#
> -
> -config ARM64_CPUIDLE
> -	bool "Generic ARM64 CPU idle Driver"
> -	select DT_IDLE_STATES
> -	help
> -	  Select this to enable generic cpuidle driver for ARM64.
> -	  It provides a generic idle driver whose idle states are configured
> -	  at run-time through DT nodes. The CPUidle suspend backend is
> -	  initialized by calling the CPU operations init idle hook
> -	  provided by architecture code.
> diff --git a/drivers/cpuidle/Makefile b/drivers/cpuidle/Makefile
> index 4d177b9..3ba81b1 100644
> --- a/drivers/cpuidle/Makefile
> +++ b/drivers/cpuidle/Makefile
> @@ -17,16 +17,13 @@ obj-$(CONFIG_ARM_ZYNQ_CPUIDLE)		+= cpuidle-zynq.o
>  obj-$(CONFIG_ARM_U8500_CPUIDLE)         += cpuidle-ux500.o
>  obj-$(CONFIG_ARM_AT91_CPUIDLE)          += cpuidle-at91.o
>  obj-$(CONFIG_ARM_EXYNOS_CPUIDLE)        += cpuidle-exynos.o
> +obj-$(CONFIG_ARM_CPUIDLE)		+= cpuidle-arm.o
>  
>  ###############################################################################
>  # MIPS drivers
>  obj-$(CONFIG_MIPS_CPS_CPUIDLE)		+= cpuidle-cps.o
>  
>  ###############################################################################
> -# ARM64 drivers
> -obj-$(CONFIG_ARM64_CPUIDLE)		+= cpuidle-arm64.o
> -
> -###############################################################################
>  # POWERPC drivers
>  obj-$(CONFIG_PSERIES_CPUIDLE)		+= cpuidle-pseries.o
>  obj-$(CONFIG_POWERNV_CPUIDLE)		+= cpuidle-powernv.o
> diff --git a/drivers/cpuidle/cpuidle-arm64.c b/drivers/cpuidle/cpuidle-arm.c
> similarity index 100%
> rename from drivers/cpuidle/cpuidle-arm64.c
> rename to drivers/cpuidle/cpuidle-arm.c
> -- 
> 1.9.1
> 
> 

WARNING: multiple messages have this Message-ID (diff)
From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V3 6/8] ARM: cpuidle: Enable the ARM64 driver for both ARM32/ARM64
Date: Sat, 21 Mar 2015 20:20:33 +0000	[thread overview]
Message-ID: <20150321202033.GB22354@red-moon> (raw)
In-Reply-To: <1426851841-2072-7-git-send-email-daniel.lezcano@linaro.org>

On Fri, Mar 20, 2015 at 11:43:59AM +0000, Daniel Lezcano wrote:
> ARM32 and ARM64 have the same DT definitions and the same approaches.
> 
> The generic ARM cpuidle driver can be put in common for those two
> architectures.
> 
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> Acked-by: Kevin Hilman <khilman@linaro.org>
> Acked-by: Rob Herring <robherring2@gmail.com>
> ---
>  drivers/cpuidle/Kconfig                            |  7 +------
>  drivers/cpuidle/Kconfig.arm                        | 12 +++++++++++-
>  drivers/cpuidle/Kconfig.arm64                      | 13 -------------
>  drivers/cpuidle/Makefile                           |  5 +----
>  drivers/cpuidle/{cpuidle-arm64.c => cpuidle-arm.c} |  0
>  5 files changed, 13 insertions(+), 24 deletions(-)
>  delete mode 100644 drivers/cpuidle/Kconfig.arm64
>  rename drivers/cpuidle/{cpuidle-arm64.c => cpuidle-arm.c} (100%)
> 
> diff --git a/drivers/cpuidle/Kconfig b/drivers/cpuidle/Kconfig
> index c5029c1..8c7930b 100644
> --- a/drivers/cpuidle/Kconfig
> +++ b/drivers/cpuidle/Kconfig
> @@ -29,15 +29,10 @@ config DT_IDLE_STATES
>  	bool
>  
>  menu "ARM CPU Idle Drivers"
> -depends on ARM
> +depends on ARM || ARM64
>  source "drivers/cpuidle/Kconfig.arm"

Risk here is pulling in arm drivers on arm64, maybe it is better to
add a guard in Kconfig.arm to prevent pulling in ARM drivers (on ARM64)
instead of just doing that for Exynos.

>  endmenu
>  
> -menu "ARM64 CPU Idle Drivers"
> -depends on ARM64
> -source "drivers/cpuidle/Kconfig.arm64"
> -endmenu
> -
>  menu "MIPS CPU Idle Drivers"
>  depends on MIPS
>  source "drivers/cpuidle/Kconfig.mips"
> diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
> index 8e07c94..1f067bd 100644
> --- a/drivers/cpuidle/Kconfig.arm
> +++ b/drivers/cpuidle/Kconfig.arm
> @@ -14,6 +14,16 @@ config ARM_BIG_LITTLE_CPUIDLE
>  	  define different C-states for little and big cores through the
>  	  multiple CPU idle drivers infrastructure.
>  
> +config ARM_CPUIDLE

You have to update the arm64 defconfig.

> +	bool "Generic ARM/ARM64 CPU idle Driver"
> +	select DT_IDLE_STATES
> +	help
> +	  Select this to enable generic cpuidle driver for ARM.
> +	  It provides a generic idle driver whose idle states are configured
> +	  at run-time through DT nodes. The CPUidle suspend backend is
> +	  initialized by calling the CPU operations init idle hook
> +	  provided by architecture code.
> +
>  config ARM_CLPS711X_CPUIDLE
>  	bool "CPU Idle Driver for CLPS711X processors"
>  	depends on ARCH_CLPS711X || COMPILE_TEST

This for instance gets pulled in on allmodconfig on arm64, which is
not useful and possibly noxious.

> @@ -54,7 +64,7 @@ config ARM_AT91_CPUIDLE
>  
>  config ARM_EXYNOS_CPUIDLE
>  	bool "Cpu Idle Driver for the Exynos processors"
> -	depends on ARCH_EXYNOS
> +	depends on ARCH_EXYNOS && !ARM64

I would add a guard for all ARM drivers to prevent pulling them in
on ARM64.

With the above changes:

Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

>  	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
>  	help
>  	  Select this to enable cpuidle for Exynos processors
> diff --git a/drivers/cpuidle/Kconfig.arm64 b/drivers/cpuidle/Kconfig.arm64
> deleted file mode 100644
> index 6effb36..0000000
> --- a/drivers/cpuidle/Kconfig.arm64
> +++ /dev/null
> @@ -1,13 +0,0 @@
> -#
> -# ARM64 CPU Idle drivers
> -#
> -
> -config ARM64_CPUIDLE
> -	bool "Generic ARM64 CPU idle Driver"
> -	select DT_IDLE_STATES
> -	help
> -	  Select this to enable generic cpuidle driver for ARM64.
> -	  It provides a generic idle driver whose idle states are configured
> -	  at run-time through DT nodes. The CPUidle suspend backend is
> -	  initialized by calling the CPU operations init idle hook
> -	  provided by architecture code.
> diff --git a/drivers/cpuidle/Makefile b/drivers/cpuidle/Makefile
> index 4d177b9..3ba81b1 100644
> --- a/drivers/cpuidle/Makefile
> +++ b/drivers/cpuidle/Makefile
> @@ -17,16 +17,13 @@ obj-$(CONFIG_ARM_ZYNQ_CPUIDLE)		+= cpuidle-zynq.o
>  obj-$(CONFIG_ARM_U8500_CPUIDLE)         += cpuidle-ux500.o
>  obj-$(CONFIG_ARM_AT91_CPUIDLE)          += cpuidle-at91.o
>  obj-$(CONFIG_ARM_EXYNOS_CPUIDLE)        += cpuidle-exynos.o
> +obj-$(CONFIG_ARM_CPUIDLE)		+= cpuidle-arm.o
>  
>  ###############################################################################
>  # MIPS drivers
>  obj-$(CONFIG_MIPS_CPS_CPUIDLE)		+= cpuidle-cps.o
>  
>  ###############################################################################
> -# ARM64 drivers
> -obj-$(CONFIG_ARM64_CPUIDLE)		+= cpuidle-arm64.o
> -
> -###############################################################################
>  # POWERPC drivers
>  obj-$(CONFIG_PSERIES_CPUIDLE)		+= cpuidle-pseries.o
>  obj-$(CONFIG_POWERNV_CPUIDLE)		+= cpuidle-powernv.o
> diff --git a/drivers/cpuidle/cpuidle-arm64.c b/drivers/cpuidle/cpuidle-arm.c
> similarity index 100%
> rename from drivers/cpuidle/cpuidle-arm64.c
> rename to drivers/cpuidle/cpuidle-arm.c
> -- 
> 1.9.1
> 
> 

  reply	other threads:[~2015-03-21 20:20 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-20 11:43 [PATCH V3 0/8] ARM: cpuidle: Unify the ARM64/ARM DT approach Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
2015-03-20 11:43 ` Daniel Lezcano
2015-03-20 11:43 ` [PATCH V3 1/8] ARM: cpuidle: Remove duplicate header inclusion Daniel Lezcano
2015-03-20 11:43   ` Daniel Lezcano
2015-03-20 11:43   ` Daniel Lezcano
2015-03-20 11:43 ` [PATCH V3 2/8] ARM: cpuidle: Add a cpuidle ops structure to be used for DT Daniel Lezcano
2015-03-20 11:43   ` Daniel Lezcano
2015-03-25 21:34   ` Stephen Boyd
2015-03-25 21:34     ` Stephen Boyd
2015-03-20 11:43 ` [PATCH V3 3/8] ARM64: cpuidle: Replace cpu_suspend by the common ARM/ARM64 function Daniel Lezcano
2015-03-20 11:43   ` Daniel Lezcano
2015-03-20 11:43 ` [PATCH V3 4/8] ARM64: cpuidle: Rename cpu_init_idle to a common function name Daniel Lezcano
2015-03-20 11:43   ` Daniel Lezcano
2015-03-21 20:24   ` Lorenzo Pieralisi
2015-03-21 20:24     ` Lorenzo Pieralisi
2015-03-21 20:24     ` Lorenzo Pieralisi
2015-03-20 11:43 ` [PATCH V3 5/8] ARM64: cpuidle: Remove arm64 reference Daniel Lezcano
2015-03-20 11:43   ` Daniel Lezcano
2015-03-21 20:21   ` Lorenzo Pieralisi
2015-03-21 20:21     ` Lorenzo Pieralisi
2015-03-21 20:21     ` Lorenzo Pieralisi
2015-03-20 11:43 ` [PATCH V3 6/8] ARM: cpuidle: Enable the ARM64 driver for both ARM32/ARM64 Daniel Lezcano
2015-03-20 11:43   ` Daniel Lezcano
2015-03-20 11:43   ` Daniel Lezcano
2015-03-21 20:20   ` Lorenzo Pieralisi [this message]
2015-03-21 20:20     ` Lorenzo Pieralisi
2015-03-21 20:20     ` Lorenzo Pieralisi
2015-03-20 11:44 ` [PATCH V3 7/8] ARM: cpuidle: Register per cpuidle device Daniel Lezcano
2015-03-20 11:44   ` Daniel Lezcano
2015-03-21 20:35   ` Lorenzo Pieralisi
2015-03-21 20:35     ` Lorenzo Pieralisi
2015-03-21 20:35     ` Lorenzo Pieralisi
2015-03-23 14:42     ` Daniel Lezcano
2015-03-23 14:42       ` Daniel Lezcano
2015-03-23 14:42       ` Daniel Lezcano
2015-03-23 15:41     ` Daniel Lezcano
2015-03-23 15:41       ` Daniel Lezcano
2015-03-23 15:41       ` Daniel Lezcano
2015-03-23 16:25       ` Lorenzo Pieralisi
2015-03-23 16:25         ` Lorenzo Pieralisi
2015-03-23 16:25         ` Lorenzo Pieralisi
2015-03-23 16:50         ` [PATCH V4] " Daniel Lezcano
2015-03-23 16:50           ` Daniel Lezcano
2015-03-23 22:58           ` Lorenzo Pieralisi
2015-03-23 22:58             ` Lorenzo Pieralisi
2015-03-23 22:58             ` Lorenzo Pieralisi
2015-03-24  9:54             ` [PATCH V5 1/2] " Daniel Lezcano
2015-03-24  9:54               ` Daniel Lezcano
2015-03-24  9:54               ` [PATCH 2/2] ARM: cpuidle: Document the code Daniel Lezcano
2015-03-24  9:54                 ` Daniel Lezcano
2015-03-24 18:51                 ` Lorenzo Pieralisi
2015-03-24 18:51                   ` Lorenzo Pieralisi
2015-03-24 18:51                   ` Lorenzo Pieralisi
2015-03-24 19:04                   ` Lorenzo Pieralisi
2015-03-24 19:04                     ` Lorenzo Pieralisi
2015-03-24 19:04                     ` Lorenzo Pieralisi
2015-03-25  7:03                   ` Daniel Lezcano
2015-03-25  7:03                     ` Daniel Lezcano
2015-03-25  7:03                     ` Daniel Lezcano
2015-03-24 18:10               ` [PATCH V5 1/2] ARM: cpuidle: Register per cpuidle device Lorenzo Pieralisi
2015-03-24 18:10                 ` Lorenzo Pieralisi
2015-03-24 18:10                 ` Lorenzo Pieralisi
2015-03-20 11:44 ` [PATCH V3 8/8] ARM: cpuidle: Change function name to be consistent with x86 Daniel Lezcano
2015-03-20 11:44   ` Daniel Lezcano
2015-03-21 20:09   ` Lorenzo Pieralisi
2015-03-21 20:09     ` Lorenzo Pieralisi
2015-03-21 20:09     ` Lorenzo Pieralisi
2015-03-20 18:31 ` [PATCH V3 0/8] ARM: cpuidle: Unify the ARM64/ARM DT approach Lorenzo Pieralisi
2015-03-20 18:31   ` Lorenzo Pieralisi
2015-03-20 18:31   ` Lorenzo Pieralisi
2015-03-20 18:39   ` Daniel Lezcano
2015-03-20 18:39     ` Daniel Lezcano
2015-03-20 18:39     ` Daniel Lezcano
2015-03-21 20:51 ` Lorenzo Pieralisi
2015-03-21 20:51   ` Lorenzo Pieralisi
2015-03-21 20:51   ` Lorenzo Pieralisi
2015-03-23 15:27 ` Lorenzo Pieralisi
2015-03-23 15:27   ` Lorenzo Pieralisi
2015-03-23 15:27   ` Lorenzo Pieralisi
2015-03-23 15:31   ` Daniel Lezcano
2015-03-23 15:31     ` Daniel Lezcano
2015-03-23 15:31     ` Daniel Lezcano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150321202033.GB22354@red-moon \
    --to=lorenzo.pieralisi@arm.com \
    --cc=Catalin.Marinas@arm.com \
    --cc=arnd@arndb.de \
    --cc=daniel.lezcano@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=lina.iyer@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=robherring2@gmail.com \
    --cc=sboyd@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.