diff options
author | Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> | 2005-04-15 15:07:10 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-07-12 00:14:36 -0400 |
commit | 02df8b9385c21fdba165bd380f60eca1d3b0578b (patch) | |
tree | 988ad0e0ca73a40993fb1458d5cd19f90f922b31 /drivers/acpi/processor_perflib.c | |
parent | 17e9c78a75ce9eacd61200f9e1f1924012e28846 (diff) |
[ACPI] enable C2 and C3 idle power states on SMP
http://bugzilla.kernel.org/show_bug.cgi?id=4401
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/processor_perflib.c')
-rw-r--r-- | drivers/acpi/processor_perflib.c | 33 |
1 files changed, 1 insertions, 32 deletions
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c index a9a1a8fe3199..1f0d6256302f 100644 --- a/drivers/acpi/processor_perflib.c +++ b/drivers/acpi/processor_perflib.c | |||
@@ -165,37 +165,6 @@ void acpi_processor_ppc_exit(void) { | |||
165 | acpi_processor_ppc_status &= ~PPC_REGISTERED; | 165 | acpi_processor_ppc_status &= ~PPC_REGISTERED; |
166 | } | 166 | } |
167 | 167 | ||
168 | /* | ||
169 | * when registering a cpufreq driver with this ACPI processor driver, the | ||
170 | * _PCT and _PSS structures are read out and written into struct | ||
171 | * acpi_processor_performance. | ||
172 | */ | ||
173 | static int acpi_processor_set_pdc (struct acpi_processor *pr) | ||
174 | { | ||
175 | acpi_status status = AE_OK; | ||
176 | u32 arg0_buf[3]; | ||
177 | union acpi_object arg0 = {ACPI_TYPE_BUFFER}; | ||
178 | struct acpi_object_list no_object = {1, &arg0}; | ||
179 | struct acpi_object_list *pdc; | ||
180 | |||
181 | ACPI_FUNCTION_TRACE("acpi_processor_set_pdc"); | ||
182 | |||
183 | arg0.buffer.length = 12; | ||
184 | arg0.buffer.pointer = (u8 *) arg0_buf; | ||
185 | arg0_buf[0] = ACPI_PDC_REVISION_ID; | ||
186 | arg0_buf[1] = 0; | ||
187 | arg0_buf[2] = 0; | ||
188 | |||
189 | pdc = (pr->performance->pdc) ? pr->performance->pdc : &no_object; | ||
190 | |||
191 | status = acpi_evaluate_object(pr->handle, "_PDC", pdc, NULL); | ||
192 | |||
193 | if ((ACPI_FAILURE(status)) && (pr->performance->pdc)) | ||
194 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Error evaluating _PDC, using legacy perf. control...\n")); | ||
195 | |||
196 | return_VALUE(status); | ||
197 | } | ||
198 | |||
199 | 168 | ||
200 | static int | 169 | static int |
201 | acpi_processor_get_performance_control ( | 170 | acpi_processor_get_performance_control ( |
@@ -357,7 +326,7 @@ acpi_processor_get_performance_info ( | |||
357 | if (!pr || !pr->performance || !pr->handle) | 326 | if (!pr || !pr->performance || !pr->handle) |
358 | return_VALUE(-EINVAL); | 327 | return_VALUE(-EINVAL); |
359 | 328 | ||
360 | acpi_processor_set_pdc(pr); | 329 | acpi_processor_set_pdc(pr, pr->performance->pdc); |
361 | 330 | ||
362 | status = acpi_get_handle(pr->handle, "_PCT", &handle); | 331 | status = acpi_get_handle(pr->handle, "_PCT", &handle); |
363 | if (ACPI_FAILURE(status)) { | 332 | if (ACPI_FAILURE(status)) { |