* [PATCH] cpuidle: big.LITTLE: add MCPM dependency
@ 2014-07-14 11:23 Arnd Bergmann
2014-07-14 15:18 ` Nicolas Pitre
2014-07-14 18:44 ` Daniel Lezcano
0 siblings, 2 replies; 4+ messages in thread
From: Arnd Bergmann @ 2014-07-14 11:23 UTC (permalink / raw)
To: linux-arm-kernel
662322fcb6d ("cpuidle: big.LITTLE: Add ARCH_EXYNOS entry in config")
made it possible for the big-little cpuidle driver to run on exynos,
which may or may not include MCPM support at compile time, so we
run into a link error when it is disabled:
drivers/built-in.o: In function `bl_enter_powerdown':
:(.text+0x1889a0): undefined reference to `mcpm_cpu_powered_up'
drivers/built-in.o: In function `bl_powerdown_finisher':
:(.text+0x1889e8): undefined reference to `mcpm_set_entry_vector'
:(.text+0x1889ec): undefined reference to `mcpm_cpu_suspend'
This adds an explicit dependency to CONFIG_MCPM to avoid that
case.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Chander Kashyap <chander.kashyap@linaro.org>
Cc: Tomasz Figa <t.figa@samsung.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
---
I believe the broken commit is only present in the samsung/for-next
tree (through v3.17-next/cpuidle-exynos), so it should be fixed there.
On a side note, I wonder if we should have platform dependencies at
all, or just the MCPM dependency by itself.
diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
index 2f6b33ea6e08..459b7c91407a 100644
--- a/drivers/cpuidle/Kconfig.arm
+++ b/drivers/cpuidle/Kconfig.arm
@@ -10,6 +10,7 @@ config ARM_ARMADA_370_XP_CPUIDLE
config ARM_BIG_LITTLE_CPUIDLE
bool "Support for ARM big.LITTLE processors"
depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS
+ depends on MCPM
select ARM_CPU_SUSPEND
select CPU_IDLE_MULTIPLE_DRIVERS
help
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] cpuidle: big.LITTLE: add MCPM dependency
2014-07-14 11:23 [PATCH] cpuidle: big.LITTLE: add MCPM dependency Arnd Bergmann
@ 2014-07-14 15:18 ` Nicolas Pitre
2014-07-14 18:44 ` Daniel Lezcano
1 sibling, 0 replies; 4+ messages in thread
From: Nicolas Pitre @ 2014-07-14 15:18 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, 14 Jul 2014, Arnd Bergmann wrote:
> 662322fcb6d ("cpuidle: big.LITTLE: Add ARCH_EXYNOS entry in config")
> made it possible for the big-little cpuidle driver to run on exynos,
> which may or may not include MCPM support at compile time, so we
> run into a link error when it is disabled:
>
> drivers/built-in.o: In function `bl_enter_powerdown':
> :(.text+0x1889a0): undefined reference to `mcpm_cpu_powered_up'
> drivers/built-in.o: In function `bl_powerdown_finisher':
> :(.text+0x1889e8): undefined reference to `mcpm_set_entry_vector'
> :(.text+0x1889ec): undefined reference to `mcpm_cpu_suspend'
>
> This adds an explicit dependency to CONFIG_MCPM to avoid that
> case.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: Chander Kashyap <chander.kashyap@linaro.org>
> Cc: Tomasz Figa <t.figa@samsung.com>
> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
> I believe the broken commit is only present in the samsung/for-next
> tree (through v3.17-next/cpuidle-exynos), so it should be fixed there.
>
> On a side note, I wonder if we should have platform dependencies at
> all, or just the MCPM dependency by itself.
This was discussed in some other thread already but I'm too lazy to dig
a reference to it.
Only a dependency on MCPM alone is needed here. And then:
Acked-by: Nicolas Pitre <nico@linaro.org>
>
> diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
> index 2f6b33ea6e08..459b7c91407a 100644
> --- a/drivers/cpuidle/Kconfig.arm
> +++ b/drivers/cpuidle/Kconfig.arm
> @@ -10,6 +10,7 @@ config ARM_ARMADA_370_XP_CPUIDLE
> config ARM_BIG_LITTLE_CPUIDLE
> bool "Support for ARM big.LITTLE processors"
> depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS
> + depends on MCPM
> select ARM_CPU_SUSPEND
> select CPU_IDLE_MULTIPLE_DRIVERS
> help
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] cpuidle: big.LITTLE: add MCPM dependency
2014-07-14 11:23 [PATCH] cpuidle: big.LITTLE: add MCPM dependency Arnd Bergmann
2014-07-14 15:18 ` Nicolas Pitre
@ 2014-07-14 18:44 ` Daniel Lezcano
2014-07-14 18:55 ` Arnd Bergmann
1 sibling, 1 reply; 4+ messages in thread
From: Daniel Lezcano @ 2014-07-14 18:44 UTC (permalink / raw)
To: linux-arm-kernel
On 07/14/2014 01:23 PM, Arnd Bergmann wrote:
> 662322fcb6d ("cpuidle: big.LITTLE: Add ARCH_EXYNOS entry in config")
> made it possible for the big-little cpuidle driver to run on exynos,
> which may or may not include MCPM support at compile time, so we
> run into a link error when it is disabled:
>
> drivers/built-in.o: In function `bl_enter_powerdown':
> :(.text+0x1889a0): undefined reference to `mcpm_cpu_powered_up'
> drivers/built-in.o: In function `bl_powerdown_finisher':
> :(.text+0x1889e8): undefined reference to `mcpm_set_entry_vector'
> :(.text+0x1889ec): undefined reference to `mcpm_cpu_suspend'
>
> This adds an explicit dependency to CONFIG_MCPM to avoid that
> case.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> Cc: Chander Kashyap <chander.kashyap@linaro.org>
> Cc: Tomasz Figa <t.figa@samsung.com>
> Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
> ---
> I believe the broken commit is only present in the samsung/for-next
> tree (through v3.17-next/cpuidle-exynos), so it should be fixed there.
>
> On a side note, I wonder if we should have platform dependencies at
> all, or just the MCPM dependency by itself.
> diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
> index 2f6b33ea6e08..459b7c91407a 100644
> --- a/drivers/cpuidle/Kconfig.arm
> +++ b/drivers/cpuidle/Kconfig.arm
> @@ -10,6 +10,7 @@ config ARM_ARMADA_370_XP_CPUIDLE
> config ARM_BIG_LITTLE_CPUIDLE
> bool "Support for ARM big.LITTLE processors"
> depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS
> + depends on MCPM
Why do we want to depend on MCPM ? If I want to enable the cpuidle
driver, the Kconfig should select the dependencies instead of letting
the user to figure out what dependency is missing in order to enable the
cpuidle option, no ?
+ select MCPM
> select ARM_CPU_SUSPEND
> select CPU_IDLE_MULTIPLE_DRIVERS
> help
>
--
<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
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] cpuidle: big.LITTLE: add MCPM dependency
2014-07-14 18:44 ` Daniel Lezcano
@ 2014-07-14 18:55 ` Arnd Bergmann
0 siblings, 0 replies; 4+ messages in thread
From: Arnd Bergmann @ 2014-07-14 18:55 UTC (permalink / raw)
To: linux-arm-kernel
On Monday 14 July 2014 20:44:50 Daniel Lezcano wrote:
> > --- a/drivers/cpuidle/Kconfig.arm
> > +++ b/drivers/cpuidle/Kconfig.arm
> > @@ -10,6 +10,7 @@ config ARM_ARMADA_370_XP_CPUIDLE
> > config ARM_BIG_LITTLE_CPUIDLE
> > bool "Support for ARM big.LITTLE processors"
> > depends on ARCH_VEXPRESS_TC2_PM || ARCH_EXYNOS
> > + depends on MCPM
>
> Why do we want to depend on MCPM ? If I want to enable the cpuidle
> driver, the Kconfig should select the dependencies instead of letting
> the user to figure out what dependency is missing in order to enable the
> cpuidle option, no ?
>
> + select MCPM
>
MCPM is a user-selectable option, which doesn't mix well with 'select'.
If you want to use 'select' here, better also change
bool "Multi-Cluster Power Management"
to just
bool
in the ARM global Kconfig. The normal way to deal with these dependencies
though is to have platforms 'select' the features they allow and have
device drivers 'depends on' the same symbol.
Arnd
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-07-14 18:55 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-14 11:23 [PATCH] cpuidle: big.LITTLE: add MCPM dependency Arnd Bergmann
2014-07-14 15:18 ` Nicolas Pitre
2014-07-14 18:44 ` Daniel Lezcano
2014-07-14 18:55 ` Arnd Bergmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox