162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_cimenu "CPU Idle" 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciconfig CPU_IDLE 562306a36Sopenharmony_ci bool "CPU idle PM support" 662306a36Sopenharmony_ci default y if ACPI || PPC_PSERIES 762306a36Sopenharmony_ci select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE) 862306a36Sopenharmony_ci select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_GOV_TEO 962306a36Sopenharmony_ci help 1062306a36Sopenharmony_ci CPU idle is a generic framework for supporting software-controlled 1162306a36Sopenharmony_ci idle processor power management. It includes modular cross-platform 1262306a36Sopenharmony_ci governors that can be swapped during runtime. 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci If you're using an ACPI-enabled platform, you should say Y here. 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciif CPU_IDLE 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciconfig CPU_IDLE_MULTIPLE_DRIVERS 1962306a36Sopenharmony_ci bool 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciconfig CPU_IDLE_GOV_LADDER 2262306a36Sopenharmony_ci bool "Ladder governor (for periodic timer tick)" 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciconfig CPU_IDLE_GOV_MENU 2562306a36Sopenharmony_ci bool "Menu governor (for tickless system)" 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciconfig CPU_IDLE_GOV_TEO 2862306a36Sopenharmony_ci bool "Timer events oriented (TEO) governor (for tickless systems)" 2962306a36Sopenharmony_ci help 3062306a36Sopenharmony_ci This governor implements a simplified idle state selection method 3162306a36Sopenharmony_ci focused on timer events and does not do any interactivity boosting. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci Some workloads benefit from using it and it generally should be safe 3462306a36Sopenharmony_ci to use. Say Y here if you are not happy with the alternatives. 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ciconfig CPU_IDLE_GOV_HALTPOLL 3762306a36Sopenharmony_ci bool "Haltpoll governor (for virtualized systems)" 3862306a36Sopenharmony_ci depends on KVM_GUEST 3962306a36Sopenharmony_ci help 4062306a36Sopenharmony_ci This governor implements haltpoll idle state selection, to be 4162306a36Sopenharmony_ci used in conjunction with the haltpoll cpuidle driver, allowing 4262306a36Sopenharmony_ci for polling for a certain amount of time before entering idle 4362306a36Sopenharmony_ci state. 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci Some virtualized workloads benefit from using it. 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ciconfig DT_IDLE_STATES 4862306a36Sopenharmony_ci bool 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ciconfig DT_IDLE_GENPD 5162306a36Sopenharmony_ci depends on PM_GENERIC_DOMAINS_OF 5262306a36Sopenharmony_ci bool 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_cimenu "ARM CPU Idle Drivers" 5562306a36Sopenharmony_cidepends on ARM || ARM64 5662306a36Sopenharmony_cisource "drivers/cpuidle/Kconfig.arm" 5762306a36Sopenharmony_ciendmenu 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_cimenu "MIPS CPU Idle Drivers" 6062306a36Sopenharmony_cidepends on MIPS 6162306a36Sopenharmony_cisource "drivers/cpuidle/Kconfig.mips" 6262306a36Sopenharmony_ciendmenu 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_cimenu "POWERPC CPU Idle Drivers" 6562306a36Sopenharmony_cidepends on PPC 6662306a36Sopenharmony_cisource "drivers/cpuidle/Kconfig.powerpc" 6762306a36Sopenharmony_ciendmenu 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_cimenu "RISC-V CPU Idle Drivers" 7062306a36Sopenharmony_cidepends on RISCV 7162306a36Sopenharmony_cisource "drivers/cpuidle/Kconfig.riscv" 7262306a36Sopenharmony_ciendmenu 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ciconfig HALTPOLL_CPUIDLE 7562306a36Sopenharmony_ci tristate "Halt poll cpuidle driver" 7662306a36Sopenharmony_ci depends on X86 && KVM_GUEST 7762306a36Sopenharmony_ci select CPU_IDLE_GOV_HALTPOLL 7862306a36Sopenharmony_ci default y 7962306a36Sopenharmony_ci help 8062306a36Sopenharmony_ci This option enables halt poll cpuidle driver, which allows to poll 8162306a36Sopenharmony_ci before halting in the guest (more efficient than polling in the 8262306a36Sopenharmony_ci host via halt_poll_ns for some scenarios). 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ciendif 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ciconfig ARCH_NEEDS_CPU_IDLE_COUPLED 8762306a36Sopenharmony_ci def_bool n 8862306a36Sopenharmony_ciendmenu 89