From: Jon Medhurst Date: Wed, 25 Jul 2012 14:13:46 +0000 (+0100) Subject: ARM: vexpress: Make cpuidle check for presence of SPC driver X-Git-Tag: firefly_0821_release~3680^2~236^2^2~2^2~14 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e7fd319fd055450dce5ff4f07fa2012f103e9413;p=firefly-linux-kernel-4.4.55.git 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 --- diff --git a/arch/arm/mach-vexpress/cpuidle-tc2.c b/arch/arm/mach-vexpress/cpuidle-tc2.c index de66243a7ef3..3b73d4a5dc5f 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));