mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 23:20:05 +00:00
9f14da3455
On most common ARM systems, the low-power states a CPU can be put into are not discoverable in HW and require device tree bindings to describe power down suspend operations and idle states parameters. In order to enable DT based idle states and configure idle drivers, this patch implements the bulk infrastructure required to parse the device tree idle states bindings and initialize the corresponding CPUidle driver states data. The parsing API accepts a start index that defines the first idle state that should be initialized by the parsing code in order to give new and legacy driver flexibility over which states should be parsed using the new DT mechanism. The idle states node(s) is obtained from the phandle list of the first cpu in the driver cpumask; the kernel checks that the idle state node phandle is the same for all CPUs in the driver cpumask before declaring the idle state as valid and start parsing its content. The idle state enter function pointer is initialized through DT match structures passed in by the CPUidle driver, so that ARM legacy code can cope with platform specific idle entry method based on compatible string matching and the code used to initialize the enter function pointer can be moved to the DT generic layer. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
51 lines
1.0 KiB
Plaintext
51 lines
1.0 KiB
Plaintext
menu "CPU Idle"
|
|
|
|
config CPU_IDLE
|
|
bool "CPU idle PM support"
|
|
default y if ACPI || PPC_PSERIES
|
|
select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE)
|
|
select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE)
|
|
help
|
|
CPU idle is a generic framework for supporting software-controlled
|
|
idle processor power management. It includes modular cross-platform
|
|
governors that can be swapped during runtime.
|
|
|
|
If you're using an ACPI-enabled platform, you should say Y here.
|
|
|
|
if CPU_IDLE
|
|
|
|
config CPU_IDLE_MULTIPLE_DRIVERS
|
|
bool
|
|
|
|
config CPU_IDLE_GOV_LADDER
|
|
bool "Ladder governor (for periodic timer tick)"
|
|
default y
|
|
|
|
config CPU_IDLE_GOV_MENU
|
|
bool "Menu governor (for tickless system)"
|
|
default y
|
|
|
|
config DT_IDLE_STATES
|
|
bool
|
|
|
|
menu "ARM CPU Idle Drivers"
|
|
depends on ARM
|
|
source "drivers/cpuidle/Kconfig.arm"
|
|
endmenu
|
|
|
|
menu "MIPS CPU Idle Drivers"
|
|
depends on MIPS
|
|
source "drivers/cpuidle/Kconfig.mips"
|
|
endmenu
|
|
|
|
menu "POWERPC CPU Idle Drivers"
|
|
depends on PPC
|
|
source "drivers/cpuidle/Kconfig.powerpc"
|
|
endmenu
|
|
|
|
endif
|
|
|
|
config ARCH_NEEDS_CPU_IDLE_COUPLED
|
|
def_bool n
|
|
endmenu
|