cpuidle: big.LITTLE: add MCPM dependency
Subsystems (2)
PATCH 1/1 cpuidle: big.LITTLE: add MCPM dependency
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.
---
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.
drivers/cpuidle/Kconfig.arm +1 -0
@@ -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
PATCH 1/1 cpuidle: big.LITTLE: add MCPM dependency
Quoted 18 lines · Arnd Bergmann
662322fcb6d("cpuidle: big.LITTLE: AddARCH_EXYNOSentry 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 tomcpm_cpu_powered_up' drivers/built-in.o: In functionbl_powerdown_finisher':
:(.text+0x1889e8): undefined reference tomcpm_set_entry_vector' :(.text+0x1889ec): undefined reference tomcpm_cpu_suspend'This adds an explicit dependency to
CONFIG_MCPMto avoid that case.Signed-off-by Arnd Bergmann <[email protected]>Cc Chander Kashyap <[email protected]>Cc Tomasz Figa <[email protected]>Cc Daniel Lezcano <[email protected]>
Quoted 6 lines
---
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:
Quoted 21 lines
drivers/cpuidle/Kconfig.arm +1
-0@@ -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
PATCH 1/1 cpuidle: big.LITTLE: add MCPM dependency
In reply to Arnd BergmannQuoted 29 lines · Arnd Bergmann
662322fcb6d("cpuidle: big.LITTLE: AddARCH_EXYNOSentry 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 tomcpm_cpu_powered_up' drivers/built-in.o: In functionbl_powerdown_finisher':
:(.text+0x1889e8): undefined reference tomcpm_set_entry_vector' :(.text+0x1889ec): undefined reference tomcpm_cpu_suspend'This adds an explicit dependency to
CONFIG_MCPMto avoid that case.Signed-off-by Arnd Bergmann <[email protected]>Cc Chander Kashyap <[email protected]>Cc Tomasz Figa <[email protected]>Cc Daniel Lezcano <[email protected]>---
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.
drivers/cpuidle/Kconfig.arm +0
-0
drivers/cpuidle/Kconfig.arm config ARM_ARMADA_370_XP_CPUIDLE · line 13
Quoted 4 lines
drivers/cpuidle/Kconfig.arm +1
-0@@ -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
Quoted 4 lines
drivers/cpuidle/Kconfig.arm +0
-0select ARM_CPU_SUSPEND select CPU_IDLE_MULTIPLE_DRIVERS help
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
PATCH 1/1 cpuidle: big.LITTLE: add MCPM dependency
Quoted 13 lines · On Monday 14 July 2014 20:44:50 Daniel Lezcano wrote:
drivers/cpuidle/Kconfig.arm config ARM_ARMADA_370_XP_CPUIDLE · line 13
Quoted 7 lines
drivers/cpuidle/Kconfig.arm +1
-0@@ -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 MCPMWhy do we want to depend on MCPM ? If I want to enable the cpuidle driver, the
Kconfigshould select the dependencies instead of letting the user to figure out what dependency is missing in order to enable the cpuidle option, no ?
Quoted 2 lines
+ 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