diff options
Diffstat (limited to 'drivers/acpi/processor_idle.c')
-rw-r--r-- | drivers/acpi/processor_idle.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index 0d90ff5fd117..55d69dce47c4 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
@@ -847,6 +847,7 @@ static int acpi_processor_get_power_info_default(struct acpi_processor *pr) | |||
847 | /* all processors need to support C1 */ | 847 | /* all processors need to support C1 */ |
848 | pr->power.states[ACPI_STATE_C1].type = ACPI_STATE_C1; | 848 | pr->power.states[ACPI_STATE_C1].type = ACPI_STATE_C1; |
849 | pr->power.states[ACPI_STATE_C1].valid = 1; | 849 | pr->power.states[ACPI_STATE_C1].valid = 1; |
850 | pr->power.states[ACPI_STATE_C1].entry_method = ACPI_CSTATE_HALT; | ||
850 | } | 851 | } |
851 | /* the C0 state only exists as a filler in our array */ | 852 | /* the C0 state only exists as a filler in our array */ |
852 | pr->power.states[ACPI_STATE_C0].valid = 1; | 853 | pr->power.states[ACPI_STATE_C0].valid = 1; |
@@ -959,6 +960,9 @@ static int acpi_processor_get_power_info_cst(struct acpi_processor *pr) | |||
959 | cx.address); | 960 | cx.address); |
960 | } | 961 | } |
961 | 962 | ||
963 | if (cx.type == ACPI_STATE_C1) { | ||
964 | cx.valid = 1; | ||
965 | } | ||
962 | 966 | ||
963 | obj = &(element->package.elements[2]); | 967 | obj = &(element->package.elements[2]); |
964 | if (obj->type != ACPI_TYPE_INTEGER) | 968 | if (obj->type != ACPI_TYPE_INTEGER) |
@@ -1294,6 +1298,8 @@ int acpi_processor_cst_has_changed(struct acpi_processor *pr) | |||
1294 | { | 1298 | { |
1295 | int result = 0; | 1299 | int result = 0; |
1296 | 1300 | ||
1301 | if (boot_option_idle_override) | ||
1302 | return 0; | ||
1297 | 1303 | ||
1298 | if (!pr) | 1304 | if (!pr) |
1299 | return -EINVAL; | 1305 | return -EINVAL; |
@@ -1733,6 +1739,9 @@ int acpi_processor_cst_has_changed(struct acpi_processor *pr) | |||
1733 | { | 1739 | { |
1734 | int ret; | 1740 | int ret; |
1735 | 1741 | ||
1742 | if (boot_option_idle_override) | ||
1743 | return 0; | ||
1744 | |||
1736 | if (!pr) | 1745 | if (!pr) |
1737 | return -EINVAL; | 1746 | return -EINVAL; |
1738 | 1747 | ||
@@ -1763,6 +1772,8 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr, | |||
1763 | struct proc_dir_entry *entry = NULL; | 1772 | struct proc_dir_entry *entry = NULL; |
1764 | unsigned int i; | 1773 | unsigned int i; |
1765 | 1774 | ||
1775 | if (boot_option_idle_override) | ||
1776 | return 0; | ||
1766 | 1777 | ||
1767 | if (!first_run) { | 1778 | if (!first_run) { |
1768 | dmi_check_system(processor_power_dmi_table); | 1779 | dmi_check_system(processor_power_dmi_table); |
@@ -1798,7 +1809,7 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr, | |||
1798 | * Note that we use previously set idle handler will be used on | 1809 | * Note that we use previously set idle handler will be used on |
1799 | * platforms that only support C1. | 1810 | * platforms that only support C1. |
1800 | */ | 1811 | */ |
1801 | if ((pr->flags.power) && (!boot_option_idle_override)) { | 1812 | if (pr->flags.power) { |
1802 | #ifdef CONFIG_CPU_IDLE | 1813 | #ifdef CONFIG_CPU_IDLE |
1803 | acpi_processor_setup_cpuidle(pr); | 1814 | acpi_processor_setup_cpuidle(pr); |
1804 | pr->power.dev.cpu = pr->id; | 1815 | pr->power.dev.cpu = pr->id; |
@@ -1838,8 +1849,11 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr, | |||
1838 | int acpi_processor_power_exit(struct acpi_processor *pr, | 1849 | int acpi_processor_power_exit(struct acpi_processor *pr, |
1839 | struct acpi_device *device) | 1850 | struct acpi_device *device) |
1840 | { | 1851 | { |
1852 | if (boot_option_idle_override) | ||
1853 | return 0; | ||
1854 | |||
1841 | #ifdef CONFIG_CPU_IDLE | 1855 | #ifdef CONFIG_CPU_IDLE |
1842 | if ((pr->flags.power) && (!boot_option_idle_override)) | 1856 | if (pr->flags.power) |
1843 | cpuidle_unregister_device(&pr->power.dev); | 1857 | cpuidle_unregister_device(&pr->power.dev); |
1844 | #endif | 1858 | #endif |
1845 | pr->flags.power_setup_done = 0; | 1859 | pr->flags.power_setup_done = 0; |