diff options
author | Daniel Lezcano <daniel.lezcano@linaro.org> | 2013-04-17 13:32:57 +0000 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-04-22 00:35:53 +0200 |
commit | 38a94f4169e03494cbf850919b4b0a7e53e84bfd (patch) | |
tree | ec8574a75cf249c0a38749369d6720dda7898f62 /arch/sh/kernel/cpu/shmobile/cpuidle.c | |
parent | 0a4f841e9c473be84a1ed0c14f65058c29238ce1 (diff) | |
download | op-kernel-dev-38a94f4169e03494cbf850919b4b0a7e53e84bfd.zip op-kernel-dev-38a94f4169e03494cbf850919b4b0a7e53e84bfd.tar.gz |
SH: cpuidle: check error code at init
Registering the driver, or the device, can fail, let's check the return code
and return the error code to the PM layer.
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'arch/sh/kernel/cpu/shmobile/cpuidle.c')
-rw-r--r-- | arch/sh/kernel/cpu/shmobile/cpuidle.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/sh/kernel/cpu/shmobile/cpuidle.c b/arch/sh/kernel/cpu/shmobile/cpuidle.c index aae3468..ea6ab02 100644 --- a/arch/sh/kernel/cpu/shmobile/cpuidle.c +++ b/arch/sh/kernel/cpu/shmobile/cpuidle.c @@ -91,14 +91,19 @@ static struct cpuidle_driver cpuidle_driver = { .state_count = 3, }; -void sh_mobile_setup_cpuidle(void) +int __init sh_mobile_setup_cpuidle(void) { + int ret; + if (sh_mobile_sleep_supported & SUSP_SH_SF) cpuidle_driver.states[1].disabled = false; if (sh_mobile_sleep_supported & SUSP_SH_STANDBY) cpuidle_driver.states[2].disabled = false; - if (!cpuidle_register_driver(&cpuidle_driver)) - cpuidle_register_device(&cpuidle_dev); + ret = cpuidle_register_driver(&cpuidle_driver); + if (ret) + return ret; + + return cpuidle_register_device(&cpuidle_dev); } |