diff options
author | Arnd Bergmann <arnd@arndb.de> | 2015-02-27 14:31:51 -0500 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2015-12-01 15:50:24 -0500 |
commit | a0e157afd0c3ecb2e953eb41da04da2bf0e3d6c3 (patch) | |
tree | 7e6b92d70621cfd3771753012a0905da0c1051d7 /arch/arm/mach-s3c64xx/cpuidle.c | |
parent | 0f20e456bd0542b7bf8cae8f553142405a8ab430 (diff) |
ARM: s3c64xx: prepare initcalls for multiplatform
In a multiplatform kernel, each initcall is run regardless
of the platform it is meant for, so it must not attempt to
access SoC-specific registers.
This adds 'if (soc_is_s3c64xx)' to all initcalls that are
specific to the s3c64xx platform, to prevent them from breaking
other platforms once we can build them into a combined kernel.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Diffstat (limited to 'arch/arm/mach-s3c64xx/cpuidle.c')
-rw-r--r-- | arch/arm/mach-s3c64xx/cpuidle.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-s3c64xx/cpuidle.c b/arch/arm/mach-s3c64xx/cpuidle.c index 93aa8cb70195..5322db51150e 100644 --- a/arch/arm/mach-s3c64xx/cpuidle.c +++ b/arch/arm/mach-s3c64xx/cpuidle.c | |||
@@ -18,6 +18,7 @@ | |||
18 | 18 | ||
19 | #include <asm/cpuidle.h> | 19 | #include <asm/cpuidle.h> |
20 | 20 | ||
21 | #include <plat/cpu.h> | ||
21 | #include <mach/map.h> | 22 | #include <mach/map.h> |
22 | 23 | ||
23 | #include "regs-sys.h" | 24 | #include "regs-sys.h" |
@@ -57,6 +58,8 @@ static struct cpuidle_driver s3c64xx_cpuidle_driver = { | |||
57 | 58 | ||
58 | static int __init s3c64xx_init_cpuidle(void) | 59 | static int __init s3c64xx_init_cpuidle(void) |
59 | { | 60 | { |
60 | return cpuidle_register(&s3c64xx_cpuidle_driver, NULL); | 61 | if (soc_is_s3c64xx()) |
62 | return cpuidle_register(&s3c64xx_cpuidle_driver, NULL); | ||
63 | return 0; | ||
61 | } | 64 | } |
62 | device_initcall(s3c64xx_init_cpuidle); | 65 | device_initcall(s3c64xx_init_cpuidle); |