18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_cimenu "CPU Idle" 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciconfig CPU_IDLE 58c2ecf20Sopenharmony_ci bool "CPU idle PM support" 68c2ecf20Sopenharmony_ci default y if ACPI || PPC_PSERIES 78c2ecf20Sopenharmony_ci select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE) 88c2ecf20Sopenharmony_ci select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_GOV_TEO 98c2ecf20Sopenharmony_ci help 108c2ecf20Sopenharmony_ci CPU idle is a generic framework for supporting software-controlled 118c2ecf20Sopenharmony_ci idle processor power management. It includes modular cross-platform 128c2ecf20Sopenharmony_ci governors that can be swapped during runtime. 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci If you're using an ACPI-enabled platform, you should say Y here. 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ciif CPU_IDLE 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ciconfig CPU_IDLE_MULTIPLE_DRIVERS 198c2ecf20Sopenharmony_ci bool 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ciconfig CPU_IDLE_GOV_LADDER 228c2ecf20Sopenharmony_ci bool "Ladder governor (for periodic timer tick)" 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciconfig CPU_IDLE_GOV_MENU 258c2ecf20Sopenharmony_ci bool "Menu governor (for tickless system)" 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ciconfig CPU_IDLE_GOV_TEO 288c2ecf20Sopenharmony_ci bool "Timer events oriented (TEO) governor (for tickless systems)" 298c2ecf20Sopenharmony_ci help 308c2ecf20Sopenharmony_ci This governor implements a simplified idle state selection method 318c2ecf20Sopenharmony_ci focused on timer events and does not do any interactivity boosting. 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci Some workloads benefit from using it and it generally should be safe 348c2ecf20Sopenharmony_ci to use. Say Y here if you are not happy with the alternatives. 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ciconfig CPU_IDLE_GOV_HALTPOLL 378c2ecf20Sopenharmony_ci bool "Haltpoll governor (for virtualized systems)" 388c2ecf20Sopenharmony_ci depends on KVM_GUEST 398c2ecf20Sopenharmony_ci help 408c2ecf20Sopenharmony_ci This governor implements haltpoll idle state selection, to be 418c2ecf20Sopenharmony_ci used in conjunction with the haltpoll cpuidle driver, allowing 428c2ecf20Sopenharmony_ci for polling for a certain amount of time before entering idle 438c2ecf20Sopenharmony_ci state. 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci Some virtualized workloads benefit from using it. 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ciconfig DT_IDLE_STATES 488c2ecf20Sopenharmony_ci bool 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_cimenu "ARM CPU Idle Drivers" 518c2ecf20Sopenharmony_cidepends on ARM || ARM64 528c2ecf20Sopenharmony_cisource "drivers/cpuidle/Kconfig.arm" 538c2ecf20Sopenharmony_ciendmenu 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_cimenu "MIPS CPU Idle Drivers" 568c2ecf20Sopenharmony_cidepends on MIPS 578c2ecf20Sopenharmony_cisource "drivers/cpuidle/Kconfig.mips" 588c2ecf20Sopenharmony_ciendmenu 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_cimenu "POWERPC CPU Idle Drivers" 618c2ecf20Sopenharmony_cidepends on PPC 628c2ecf20Sopenharmony_cisource "drivers/cpuidle/Kconfig.powerpc" 638c2ecf20Sopenharmony_ciendmenu 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ciconfig HALTPOLL_CPUIDLE 668c2ecf20Sopenharmony_ci tristate "Halt poll cpuidle driver" 678c2ecf20Sopenharmony_ci depends on X86 && KVM_GUEST 688c2ecf20Sopenharmony_ci default y 698c2ecf20Sopenharmony_ci help 708c2ecf20Sopenharmony_ci This option enables halt poll cpuidle driver, which allows to poll 718c2ecf20Sopenharmony_ci before halting in the guest (more efficient than polling in the 728c2ecf20Sopenharmony_ci host via halt_poll_ns for some scenarios). 738c2ecf20Sopenharmony_ci 748c2ecf20Sopenharmony_ciendif 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciconfig ARCH_NEEDS_CPU_IDLE_COUPLED 778c2ecf20Sopenharmony_ci def_bool n 788c2ecf20Sopenharmony_ciendmenu 79