aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/cpu/shmobile/cpuidle.c
diff options
context:
space:
mode:
authorDaniel Lezcano <daniel.lezcano@linaro.org>2013-04-17 13:32:57 +0000
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-04-22 00:35:53 +0200
commit38a94f4169e03494cbf850919b4b0a7e53e84bfd (patch)
treeec8574a75cf249c0a38749369d6720dda7898f62 /arch/sh/kernel/cpu/shmobile/cpuidle.c
parentSH: cpuidle: initialize the driver's states directly (diff)
downloadlinux-dev-38a94f4169e03494cbf850919b4b0a7e53e84bfd.tar.xz
linux-dev-38a94f4169e03494cbf850919b4b0a7e53e84bfd.zip
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.c11
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 aae346811da4..ea6ab0278490 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);
}