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 789d4947ed31..2dd2c1f3a01c 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) |
@@ -1295,6 +1299,8 @@ int acpi_processor_cst_has_changed(struct acpi_processor *pr) | |||
1295 | { | 1299 | { |
1296 | int result = 0; | 1300 | int result = 0; |
1297 | 1301 | ||
1302 | if (boot_option_idle_override) | ||
1303 | return 0; | ||
1298 | 1304 | ||
1299 | if (!pr) | 1305 | if (!pr) |
1300 | return -EINVAL; | 1306 | return -EINVAL; |
@@ -1734,6 +1740,9 @@ int acpi_processor_cst_has_changed(struct acpi_processor *pr) | |||
1734 | { | 1740 | { |
1735 | int ret; | 1741 | int ret; |
1736 | 1742 | ||
1743 | if (boot_option_idle_override) | ||
1744 | return 0; | ||
1745 | |||
1737 | if (!pr) | 1746 | if (!pr) |
1738 | return -EINVAL; | 1747 | return -EINVAL; |
1739 | 1748 | ||
@@ -1764,6 +1773,8 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr, | |||
1764 | struct proc_dir_entry *entry = NULL; | 1773 | struct proc_dir_entry *entry = NULL; |
1765 | unsigned int i; | 1774 | unsigned int i; |
1766 | 1775 | ||
1776 | if (boot_option_idle_override) | ||
1777 | return 0; | ||
1767 | 1778 | ||
1768 | if (!first_run) { | 1779 | if (!first_run) { |
1769 | dmi_check_system(processor_power_dmi_table); | 1780 | dmi_check_system(processor_power_dmi_table); |
@@ -1799,7 +1810,7 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr, | |||
1799 | * Note that we use previously set idle handler will be used on | 1810 | * Note that we use previously set idle handler will be used on |
1800 | * platforms that only support C1. | 1811 | * platforms that only support C1. |
1801 | */ | 1812 | */ |
1802 | if ((pr->flags.power) && (!boot_option_idle_override)) { | 1813 | if (pr->flags.power) { |
1803 | #ifdef CONFIG_CPU_IDLE | 1814 | #ifdef CONFIG_CPU_IDLE |
1804 | acpi_processor_setup_cpuidle(pr); | 1815 | acpi_processor_setup_cpuidle(pr); |
1805 | pr->power.dev.cpu = pr->id; | 1816 | pr->power.dev.cpu = pr->id; |
@@ -1835,8 +1846,11 @@ int __cpuinit acpi_processor_power_init(struct acpi_processor *pr, | |||
1835 | int acpi_processor_power_exit(struct acpi_processor *pr, | 1846 | int acpi_processor_power_exit(struct acpi_processor *pr, |
1836 | struct acpi_device *device) | 1847 | struct acpi_device *device) |
1837 | { | 1848 | { |
1849 | if (boot_option_idle_override) | ||
1850 | return 0; | ||
1851 | |||
1838 | #ifdef CONFIG_CPU_IDLE | 1852 | #ifdef CONFIG_CPU_IDLE |
1839 | if ((pr->flags.power) && (!boot_option_idle_override)) | 1853 | if (pr->flags.power) |
1840 | cpuidle_unregister_device(&pr->power.dev); | 1854 | cpuidle_unregister_device(&pr->power.dev); |
1841 | #endif | 1855 | #endif |
1842 | pr->flags.power_setup_done = 0; | 1856 | pr->flags.power_setup_done = 0; |