mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 21:51:40 +00:00
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>
This commit is contained in:
parent
0a4f841e9c
commit
38a94f4169
@ -14,9 +14,9 @@ struct swsusp_arch_regs {
|
||||
void sh_mobile_call_standby(unsigned long mode);
|
||||
|
||||
#ifdef CONFIG_CPU_IDLE
|
||||
void sh_mobile_setup_cpuidle(void);
|
||||
int sh_mobile_setup_cpuidle(void);
|
||||
#else
|
||||
static inline void sh_mobile_setup_cpuidle(void) {}
|
||||
static inline int sh_mobile_setup_cpuidle(void) { return 0; }
|
||||
#endif
|
||||
|
||||
/* notifier chains for pre/post sleep hooks */
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -150,8 +150,7 @@ static const struct platform_suspend_ops sh_pm_ops = {
|
||||
static int __init sh_pm_init(void)
|
||||
{
|
||||
suspend_set_ops(&sh_pm_ops);
|
||||
sh_mobile_setup_cpuidle();
|
||||
return 0;
|
||||
return sh_mobile_setup_cpuidle();
|
||||
}
|
||||
|
||||
late_initcall(sh_pm_init);
|
||||
|
Loading…
Reference in New Issue
Block a user