cpuidle take2: Hookup ACPI C-states driver with cpuidle
Subsystems (2)
PATCH 2/3 cpuidle take2: Hookup ACPI C-states driver with cpuidle
Hookup ACPI C-states onto generic cpuidle infrastructure.
drivers/acpi/procesor_idle.c is now a ACPI C-states driver that registers as a driver in cpuidle infrastructure and the policy part is removed from drivers/acpi/processor_idle.c. We use governor in cpuidle instead.
Signed-off-by Shaohua Li <[email protected]>
Signed-off-by Venkatesh Pallipadi <[email protected]>
Signed-off-by Adam Belay <[email protected]>
drivers/acpi/processor_core.c +3 -0
@@ -44,6 +44,7 @@#include <linux/seq_file.h> #include <linux/dmi.h> #include <linux/moduleparam.h> +#include <linux/cpuidle.h> #include <asm/io.h> #include <asm/system.h>
@@ -1024,11 +1025,13 @@ static int __init acpi_processor_init(voacpi_processor_ppc_init (); +cpuidle_register_driver (&acpi_idle_driver);return 0 ; } static void __exit acpi_processor_exit(void) { +cpuidle_unregister_driver (&acpi_idle_driver);acpi_processor_ppc_exit ();
drivers/acpi/processor_idle.c +332 -536
961 lines not on this page · raw message
include/acpi/processor.h +2 -0
@@ -161,6 +161,7 @@ struct acpi_processor_flags { u8 bm_check:1; u8 has_cst:1; u8 power_setup_done:1; + u8 bm_rld_set:1; };struct acpi_processor {
@@ -275,6 +276,7 @@ int acpi_processor_power_init(struct acpint acpi_processor_cst_has_changed (struct acpi_processor *pr);int acpi_processor_power_exit (struct acpi_processor *pr,struct acpi_device *device); +extern struct cpuidle_driver acpi_idle_driver;/* in processor_thermal.c */ int acpi_processor_get_limit_info (struct acpi_processor *pr);