diff mbox

cpuidle: fix ARCH_NEEDS_CPU_IDLE_COUPLED dependency warning

Message ID 1370626856-2876-1-git-send-email-daniel.lezcano@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Lezcano June 7, 2013, 5:40 p.m. UTC
Before the commit d6f346f2d2bf511c2c59176121a6e42ce60173a0, the
ARCH_NEEDS_CPU_IDLE_COUPLED option was wrongly not depending on the CPU_IDLE
and the Kconfig for OMAP / TEGRA was not checking this dependency when setting
the option.

With this patch, the ARCH_NEEDS_CPU_IDLE_COUPLED has been moved under the
CPU_IDLE option. The dependency has been fixed in the relevant arch's Kconfig.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 arch/arm/mach-omap2/Kconfig |    2 +-
 arch/arm/mach-tegra/Kconfig |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Santosh Shilimkar June 7, 2013, 5:50 p.m. UTC | #1
Looping Colin,

On Friday 07 June 2013 01:40 PM, Daniel Lezcano wrote:
> Before the commit d6f346f2d2bf511c2c59176121a6e42ce60173a0, the
> ARCH_NEEDS_CPU_IDLE_COUPLED option was wrongly not depending on the CPU_IDLE
> and the Kconfig for OMAP / TEGRA was not checking this dependency when setting
> the option.
> 
> With this patch, the ARCH_NEEDS_CPU_IDLE_COUPLED has been moved under the
> CPU_IDLE option. The dependency has been fixed in the relevant arch's Kconfig.
> 
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
>  arch/arm/mach-omap2/Kconfig |    2 +-
>  arch/arm/mach-tegra/Kconfig |    2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
> index f49cd51..831e89e 100644
> --- a/arch/arm/mach-omap2/Kconfig
> +++ b/arch/arm/mach-omap2/Kconfig
> @@ -83,7 +83,7 @@ config ARCH_OMAP4
>  	depends on ARCH_OMAP2PLUS
>  	depends on ARCH_MULTI_V7
>  	select ARCH_HAS_OPP
> -	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
> +	select ARCH_NEEDS_CPU_IDLE_COUPLED if (SMP && CPU_IDLE)
I remember Colin mentioning about above dependency is taken care
already in design [1]

Regards,
Santosh

[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/092080.html
Arnd Bergmann June 7, 2013, 7:21 p.m. UTC | #2
On Friday 07 June 2013, Santosh Shilimkar wrote:
> > diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
> > index f49cd51..831e89e 100644
> > --- a/arch/arm/mach-omap2/Kconfig
> > +++ b/arch/arm/mach-omap2/Kconfig
> > @@ -83,7 +83,7 @@ config ARCH_OMAP4
> >       depends on ARCH_OMAP2PLUS
> >       depends on ARCH_MULTI_V7
> >       select ARCH_HAS_OPP
> > -     select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
> > +     select ARCH_NEEDS_CPU_IDLE_COUPLED if (SMP && CPU_IDLE)
>
> I remember Colin mentioning about above dependency is taken care
> already in design [1]

It's a matter of how it gets represented in Kconfig. Right now 
the ARCH_NEEDS_CPU_IDLE_COUPLED symbol has a dependency on CPU_IDLE,
so we cannot select it if CPU_IDLE is not set (or get a build time
warning).

I originally suggested removing the dependency, but Daniel preferred
to leave it there as an explicit dependency so it is required to
do this change instead.

	Arnd
Arnd Bergmann June 7, 2013, 7:22 p.m. UTC | #3
On Friday 07 June 2013, Daniel Lezcano wrote:
> Before the commit d6f346f2d2bf511c2c59176121a6e42ce60173a0, the
> ARCH_NEEDS_CPU_IDLE_COUPLED option was wrongly not depending on the CPU_IDLE
> and the Kconfig for OMAP / TEGRA was not checking this dependency when setting
> the option.
> 
> With this patch, the ARCH_NEEDS_CPU_IDLE_COUPLED has been moved under the
> CPU_IDLE option. The dependency has been fixed in the relevant arch's Kconfig.
> 
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>

Acked-by: Arnd Bergmann <arnd@arndb.de>
Santosh Shilimkar June 7, 2013, 11:21 p.m. UTC | #4
On Friday 07 June 2013 03:21 PM, Arnd Bergmann wrote:
> On Friday 07 June 2013, Santosh Shilimkar wrote:
>>> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
>>> index f49cd51..831e89e 100644
>>> --- a/arch/arm/mach-omap2/Kconfig
>>> +++ b/arch/arm/mach-omap2/Kconfig
>>> @@ -83,7 +83,7 @@ config ARCH_OMAP4
>>>       depends on ARCH_OMAP2PLUS
>>>       depends on ARCH_MULTI_V7
>>>       select ARCH_HAS_OPP
>>> -     select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
>>> +     select ARCH_NEEDS_CPU_IDLE_COUPLED if (SMP && CPU_IDLE)
>>
>> I remember Colin mentioning about above dependency is taken care
>> already in design [1]
> 
> It's a matter of how it gets represented in Kconfig. Right now 
> the ARCH_NEEDS_CPU_IDLE_COUPLED symbol has a dependency on CPU_IDLE,
> so we cannot select it if CPU_IDLE is not set (or get a build time
> warning).
> 
> I originally suggested removing the dependency, but Daniel preferred
> to leave it there as an explicit dependency so it is required to
> do this change instead.
> 
I see. Thanks for clarifying.

Regards,
Santosh
Colin Cross June 10, 2013, 12:38 a.m. UTC | #5
On Fri, Jun 7, 2013 at 9:21 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Friday 07 June 2013, Santosh Shilimkar wrote:
> > > diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
> > > index f49cd51..831e89e 100644
> > > --- a/arch/arm/mach-omap2/Kconfig
> > > +++ b/arch/arm/mach-omap2/Kconfig
> > > @@ -83,7 +83,7 @@ config ARCH_OMAP4
> > >       depends on ARCH_OMAP2PLUS
> > >       depends on ARCH_MULTI_V7
> > >       select ARCH_HAS_OPP
> > > -     select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
> > > +     select ARCH_NEEDS_CPU_IDLE_COUPLED if (SMP && CPU_IDLE)
> >
> > I remember Colin mentioning about above dependency is taken care
> > already in design [1]
>
> It's a matter of how it gets represented in Kconfig. Right now
> the ARCH_NEEDS_CPU_IDLE_COUPLED symbol has a dependency on CPU_IDLE,
> so we cannot select it if CPU_IDLE is not set (or get a build time
> warning).
>
> I originally suggested removing the dependency, but Daniel preferred
> to leave it there as an explicit dependency so it is required to
> do this change instead.

ARCH_NEEDS_CPU_IDLE_COUPLED should never have been moved inside "if
CPU_IDLE".  It was designed to be outside the CPU_IDLE dependency so
archs could select it without having to know about its dependencies.
Just move it back outside if CPU_IDLE in drivers/cpuidle/Kconfig and
you won't have to mess with every arch that uses it.  If CPU_IDLE=n
none if it will get compiled, so there is no need for the extra
dependency.
Daniel Lezcano June 10, 2013, 9:29 a.m. UTC | #6
On 06/10/2013 02:38 AM, Colin Cross wrote:
> On Fri, Jun 7, 2013 at 9:21 AM, Arnd Bergmann <arnd@arndb.de> wrote:
>>
>> On Friday 07 June 2013, Santosh Shilimkar wrote:
>>>> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
>>>> index f49cd51..831e89e 100644
>>>> --- a/arch/arm/mach-omap2/Kconfig
>>>> +++ b/arch/arm/mach-omap2/Kconfig
>>>> @@ -83,7 +83,7 @@ config ARCH_OMAP4
>>>>       depends on ARCH_OMAP2PLUS
>>>>       depends on ARCH_MULTI_V7
>>>>       select ARCH_HAS_OPP
>>>> -     select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
>>>> +     select ARCH_NEEDS_CPU_IDLE_COUPLED if (SMP && CPU_IDLE)
>>>
>>> I remember Colin mentioning about above dependency is taken care
>>> already in design [1]
>>
>> It's a matter of how it gets represented in Kconfig. Right now
>> the ARCH_NEEDS_CPU_IDLE_COUPLED symbol has a dependency on CPU_IDLE,
>> so we cannot select it if CPU_IDLE is not set (or get a build time
>> warning).
>>
>> I originally suggested removing the dependency, but Daniel preferred
>> to leave it there as an explicit dependency so it is required to
>> do this change instead.
> 
> ARCH_NEEDS_CPU_IDLE_COUPLED should never have been moved inside "if
> CPU_IDLE".  It was designed to be outside the CPU_IDLE dependency so
> archs could select it without having to know about its dependencies.
> Just move it back outside if CPU_IDLE in drivers/cpuidle/Kconfig and
> you won't have to mess with every arch that uses it.  If CPU_IDLE=n
> none if it will get compiled, so there is no need for the extra
> dependency.

I don't really like implicit dependencies and IMO showing them in the
Kconfig makes the life easier for someone who wants to understand what
gets compiled or not when reading the code. Even if that means to modify
a couple of Kconfig.

It is a preference and thus I don't have a strong opinion on that, so if
nobody is against I will resend a patch moving this option out of the
CPU_IDLE dep.

Thanks
  -- Daniel
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index f49cd51..831e89e 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -83,7 +83,7 @@  config ARCH_OMAP4
 	depends on ARCH_OMAP2PLUS
 	depends on ARCH_MULTI_V7
 	select ARCH_HAS_OPP
-	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
+	select ARCH_NEEDS_CPU_IDLE_COUPLED if (SMP && CPU_IDLE)
 	select ARM_CPU_SUSPEND if PM
 	select ARM_ERRATA_720789
 	select ARM_GIC
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 84d72fc..04c6221 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -23,7 +23,7 @@  menu "NVIDIA Tegra options"
 
 config ARCH_TEGRA_2x_SOC
 	bool "Enable support for Tegra20 family"
-	select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
+	select ARCH_NEEDS_CPU_IDLE_COUPLED if (SMP && CPU_IDLE)
 	select ARM_ERRATA_720789
 	select ARM_ERRATA_754327 if SMP
 	select ARM_ERRATA_764369 if SMP