Lines Matching +full:idle +full:- +full:state +full:- +full:name
1 // SPDX-License-Identifier: GPL-2.0-only
3 * OMAP4+ CPU idle Routines
5 * Copyright (C) 2011-2013 Texas Instruments, Inc.
76 * omap_enter_idle_[simple/coupled] - OMAP4PLUS cpuidle entry functions
79 * @index: the index of state to be entered
82 * specified low power state selected by the governor.
83 * Returns the amount of time spent in the low power state.
101 cx->mpu_state_vote++; in omap_enter_idle_smp()
102 if (cx->mpu_state_vote == num_online_cpus()) { in omap_enter_idle_smp()
103 pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state); in omap_enter_idle_smp()
104 omap_set_pwrdm_state(mpu_pd, cx->mpu_state); in omap_enter_idle_smp()
108 omap4_enter_lowpower(dev->cpu, cx->cpu_state, true); in omap_enter_idle_smp()
111 if (cx->mpu_state_vote == num_online_cpus()) in omap_enter_idle_smp()
113 cx->mpu_state_vote--; in omap_enter_idle_smp()
128 * CPU0 has to wait and stay ON until CPU1 is OFF state. in omap_enter_idle_coupled()
133 if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) { in omap_enter_idle_coupled()
138 * CPU1 could have already entered & exited idle in omap_enter_idle_coupled()
150 mpuss_can_lose_context = (cx->mpu_state == PWRDM_POWER_RET) && in omap_enter_idle_coupled()
151 (cx->mpu_logic_state == PWRDM_POWER_OFF); in omap_enter_idle_coupled()
156 /* Enter broadcast mode for one-shot timers */ in omap_enter_idle_coupled()
160 * Call idle CPU PM enter notifier chain so that in omap_enter_idle_coupled()
167 if (dev->cpu == 0) { in omap_enter_idle_coupled()
168 pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state); in omap_enter_idle_coupled()
169 omap_set_pwrdm_state(mpu_pd, cx->mpu_state); in omap_enter_idle_coupled()
172 * Call idle CPU cluster PM enter notifier chain in omap_enter_idle_coupled()
180 pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state); in omap_enter_idle_coupled()
181 omap_set_pwrdm_state(mpu_pd, cx->mpu_state); in omap_enter_idle_coupled()
187 omap4_enter_lowpower(dev->cpu, cx->cpu_state, true); in omap_enter_idle_coupled()
188 cpu_done[dev->cpu] = true; in omap_enter_idle_coupled()
191 if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) { in omap_enter_idle_coupled()
212 * Call idle CPU cluster PM exit notifier chain in omap_enter_idle_coupled()
215 if (dev->cpu == 0 && mpuss_can_lose_context) in omap_enter_idle_coupled()
219 * Call idle CPU PM exit notifier chain to restore in omap_enter_idle_coupled()
229 cpu_done[dev->cpu] = false; in omap_enter_idle_coupled()
235 .name = "omap4_idle",
239 /* C1 - CPU0 ON + CPU1 ON + MPU ON */
243 .name = "C1",
247 /* C2 - CPU0 OFF + CPU1 OFF + MPU CSWR */
253 .name = "C2",
257 /* C3 - CPU0 OFF + CPU1 OFF + MPU OSWR */
263 .name = "C3",
272 .name = "omap5_idle",
276 /* C1 - CPU0 ON + CPU1 ON + MPU ON */
280 .name = "C1",
284 /* C2 - CPU0 RET + CPU1 RET + MPU CSWR */
290 .name = "C2",
301 * omap4_idle_init - Init routine for OMAP4+ idle
322 return -ENODEV; in omap4_idle_init()
327 return -ENODEV; in omap4_idle_init()