linux/drivers/cpuidle
Leo Yan 7943bfaeb6 ARM: cpuidle: Refactor rollback operations if init fails
If init fails, we need execute two levels rollback operations: the first
level is for the failed CPU rollback operations, the second level is to
iterate all succeeded CPUs to cancel their registration; currently the
code uses one function to finish these two levels rollback operations.

This commit is to refactor rollback operations, so it adds a new
function arm_idle_init_cpu() to encapsulate one specified CPU driver
registration and rollback the first level operations; and use function
arm_idle_init() to iterate all CPUs and finish the second level's
rollback operations.

Suggested-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2017-10-14 01:01:11 +02:00
..
governors cpuidle: Eliminate the CPUIDLE_DRIVER_STATE_START symbol 2017-08-30 03:05:29 +02:00
coupled.c smp: Avoid using two cache lines for struct call_single_data 2017-08-29 15:14:38 +02:00
cpuidle-arm.c ARM: cpuidle: Refactor rollback operations if init fails 2017-10-14 01:01:11 +02:00
cpuidle-at91.c drivers/cpuidle: Convert non-modular drivers to use builtin_platform_driver 2015-06-16 14:12:38 -04:00
cpuidle-big_little.c ARM: MCPM: remove residency argument from mcpm_cpu_suspend() 2015-05-06 11:47:10 -04:00
cpuidle-calxeda.c ARM: migrate to common PSCI client code 2015-08-03 15:38:39 +01:00
cpuidle-clps711x.c drivers/cpuidle: make cpuidle-clps711x.c explicitly non-modular 2015-12-15 00:22:21 +01:00
cpuidle-cps.c MIPS: Unify checks for sibling CPUs 2017-08-30 00:57:27 +02:00
cpuidle-exynos.c drivers/cpuidle: make cpuidle-exynos.c explicitly non-modular 2015-12-15 00:22:22 +01:00
cpuidle-kirkwood.c ARM: cpuidle: Remove duplicate header inclusion 2015-03-23 18:03:11 +01:00
cpuidle-mvebu-v7.c cpuidle: mvebu: disable the bind/unbind attributes and use builtin_platform_driver 2015-10-23 12:40:48 +02:00
cpuidle-powernv.c powerpc/powernv/idle: Disable LOSE_FULL_CONTEXT states when stop-api fails 2017-08-08 20:21:23 +10:00
cpuidle-pseries.c cpuidle: powerpc: no memory barrier after break from idle 2017-06-28 13:08:12 +10:00
cpuidle-ux500.c drivers/cpuidle: make cpuidle-ux500.c explicitly non-modular 2015-12-15 00:22:22 +01:00
cpuidle-zynq.c drivers/cpuidle: Convert non-modular drivers to use builtin_platform_driver 2015-06-16 14:12:38 -04:00
cpuidle.c cpuidle: fix broadcast control when broadcast can not be entered 2017-09-28 02:18:07 +02:00
cpuidle.h cpuidle/coupled: Add sanity check for safe_state_index 2015-09-03 03:05:47 +02:00
driver.c cpuidle: Make drivers initialize polling state 2017-08-30 03:06:33 +02:00
dt_idle_states.c Merge branch 'pm-sleep' 2017-09-04 00:06:02 +02:00
dt_idle_states.h
governor.c cpuidle: governors: Remove remaining old module code 2016-10-21 14:49:51 +02:00
Kconfig cpuidle: Don't enable all governors by default 2016-01-15 22:39:58 +01:00
Kconfig.arm ARM: cpuidle: Support asymmetric idle definition 2017-06-24 01:51:00 +02:00
Kconfig.mips cpuidle: cpuidle-cps: Enable use with MIPSr6 CPUs. 2016-10-04 16:13:57 +02:00
Kconfig.powerpc
Makefile cpuidle: Move polling state initialization code to separate file 2017-08-30 03:06:27 +02:00
poll_state.c cpuidle: Make drivers initialize polling state 2017-08-30 03:06:33 +02:00
sysfs.c cpuidle: Validate cpu_dev in cpuidle_add_sysfs() 2017-03-21 22:26:37 +01:00