aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-vexpress/cpuidle-tc2.c
diff options
context:
space:
mode:
authorJon Medhurst <tixy@linaro.org>2012-07-25 15:13:46 +0100
committerJon Medhurst <tixy@linaro.org>2013-07-01 11:05:12 +0100
commite7fd319fd055450dce5ff4f07fa2012f103e9413 (patch)
tree521a6500e098a564c975c649acec35084f981624 /arch/arm/mach-vexpress/cpuidle-tc2.c
parent88d444dfb9e5776c0234e37eeea5bf1a37f8a71f (diff)
ARM: vexpress: Make cpuidle check for presence of SPC driver
The cpuidle code requires SPC hardware, so check for its presence before initialising. This enables the cpuidle code to safely exist in kernels run on hardware without SPC support. Signed-off-by: Jon Medhurst <tixy@linaro.org>
Diffstat (limited to 'arch/arm/mach-vexpress/cpuidle-tc2.c')
-rw-r--r--arch/arm/mach-vexpress/cpuidle-tc2.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/mach-vexpress/cpuidle-tc2.c b/arch/arm/mach-vexpress/cpuidle-tc2.c
index de66243a7ef..3b73d4a5dc5 100644
--- a/arch/arm/mach-vexpress/cpuidle-tc2.c
+++ b/arch/arm/mach-vexpress/cpuidle-tc2.c
@@ -221,6 +221,11 @@ int __init tc2_idle_init(void)
struct dentry *idle_debug, *file_debug;
struct cpuidle_driver *drv = &tc2_idle_driver;
+ if (!vexpress_spc_check_loaded()) {
+ pr_info("TC2 CPUidle not registered because no SPC found\n");
+ return -ENODEV;
+ }
+
drv->state_count = (sizeof(tc2_cpuidle_set) /
sizeof(struct cpuidle_state));