diff options
Diffstat (limited to 'drivers/acpi/processor_perflib.c')
-rw-r--r-- | drivers/acpi/processor_perflib.c | 132 |
1 files changed, 57 insertions, 75 deletions
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c index 41aaaba74b19..14a00e5a8f6a 100644 --- a/drivers/acpi/processor_perflib.c +++ b/drivers/acpi/processor_perflib.c | |||
@@ -108,10 +108,9 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr) | |||
108 | acpi_status status = 0; | 108 | acpi_status status = 0; |
109 | unsigned long ppc = 0; | 109 | unsigned long ppc = 0; |
110 | 110 | ||
111 | ACPI_FUNCTION_TRACE("acpi_processor_get_platform_limit"); | ||
112 | 111 | ||
113 | if (!pr) | 112 | if (!pr) |
114 | return_VALUE(-EINVAL); | 113 | return -EINVAL; |
115 | 114 | ||
116 | /* | 115 | /* |
117 | * _PPC indicates the maximum state currently supported by the platform | 116 | * _PPC indicates the maximum state currently supported by the platform |
@@ -123,13 +122,13 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr) | |||
123 | acpi_processor_ppc_status |= PPC_IN_USE; | 122 | acpi_processor_ppc_status |= PPC_IN_USE; |
124 | 123 | ||
125 | if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { | 124 | if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { |
126 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Error evaluating _PPC\n")); | 125 | ACPI_EXCEPTION((AE_INFO, status, "Evaluating _PPC")); |
127 | return_VALUE(-ENODEV); | 126 | return -ENODEV; |
128 | } | 127 | } |
129 | 128 | ||
130 | pr->performance_platform_limit = (int)ppc; | 129 | pr->performance_platform_limit = (int)ppc; |
131 | 130 | ||
132 | return_VALUE(0); | 131 | return 0; |
133 | } | 132 | } |
134 | 133 | ||
135 | int acpi_processor_ppc_has_changed(struct acpi_processor *pr) | 134 | int acpi_processor_ppc_has_changed(struct acpi_processor *pr) |
@@ -168,18 +167,17 @@ static int acpi_processor_get_performance_control(struct acpi_processor *pr) | |||
168 | union acpi_object *pct = NULL; | 167 | union acpi_object *pct = NULL; |
169 | union acpi_object obj = { 0 }; | 168 | union acpi_object obj = { 0 }; |
170 | 169 | ||
171 | ACPI_FUNCTION_TRACE("acpi_processor_get_performance_control"); | ||
172 | 170 | ||
173 | status = acpi_evaluate_object(pr->handle, "_PCT", NULL, &buffer); | 171 | status = acpi_evaluate_object(pr->handle, "_PCT", NULL, &buffer); |
174 | if (ACPI_FAILURE(status)) { | 172 | if (ACPI_FAILURE(status)) { |
175 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Error evaluating _PCT\n")); | 173 | ACPI_EXCEPTION((AE_INFO, status, "Evaluating _PCT")); |
176 | return_VALUE(-ENODEV); | 174 | return -ENODEV; |
177 | } | 175 | } |
178 | 176 | ||
179 | pct = (union acpi_object *)buffer.pointer; | 177 | pct = (union acpi_object *)buffer.pointer; |
180 | if (!pct || (pct->type != ACPI_TYPE_PACKAGE) | 178 | if (!pct || (pct->type != ACPI_TYPE_PACKAGE) |
181 | || (pct->package.count != 2)) { | 179 | || (pct->package.count != 2)) { |
182 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Invalid _PCT data\n")); | 180 | printk(KERN_ERR PREFIX "Invalid _PCT data\n"); |
183 | result = -EFAULT; | 181 | result = -EFAULT; |
184 | goto end; | 182 | goto end; |
185 | } | 183 | } |
@@ -193,8 +191,7 @@ static int acpi_processor_get_performance_control(struct acpi_processor *pr) | |||
193 | if ((obj.type != ACPI_TYPE_BUFFER) | 191 | if ((obj.type != ACPI_TYPE_BUFFER) |
194 | || (obj.buffer.length < sizeof(struct acpi_pct_register)) | 192 | || (obj.buffer.length < sizeof(struct acpi_pct_register)) |
195 | || (obj.buffer.pointer == NULL)) { | 193 | || (obj.buffer.pointer == NULL)) { |
196 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | 194 | printk(KERN_ERR PREFIX "Invalid _PCT data (control_register)\n"); |
197 | "Invalid _PCT data (control_register)\n")); | ||
198 | result = -EFAULT; | 195 | result = -EFAULT; |
199 | goto end; | 196 | goto end; |
200 | } | 197 | } |
@@ -210,8 +207,7 @@ static int acpi_processor_get_performance_control(struct acpi_processor *pr) | |||
210 | if ((obj.type != ACPI_TYPE_BUFFER) | 207 | if ((obj.type != ACPI_TYPE_BUFFER) |
211 | || (obj.buffer.length < sizeof(struct acpi_pct_register)) | 208 | || (obj.buffer.length < sizeof(struct acpi_pct_register)) |
212 | || (obj.buffer.pointer == NULL)) { | 209 | || (obj.buffer.pointer == NULL)) { |
213 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | 210 | printk(KERN_ERR PREFIX "Invalid _PCT data (status_register)\n"); |
214 | "Invalid _PCT data (status_register)\n")); | ||
215 | result = -EFAULT; | 211 | result = -EFAULT; |
216 | goto end; | 212 | goto end; |
217 | } | 213 | } |
@@ -222,7 +218,7 @@ static int acpi_processor_get_performance_control(struct acpi_processor *pr) | |||
222 | end: | 218 | end: |
223 | acpi_os_free(buffer.pointer); | 219 | acpi_os_free(buffer.pointer); |
224 | 220 | ||
225 | return_VALUE(result); | 221 | return result; |
226 | } | 222 | } |
227 | 223 | ||
228 | static int acpi_processor_get_performance_states(struct acpi_processor *pr) | 224 | static int acpi_processor_get_performance_states(struct acpi_processor *pr) |
@@ -235,17 +231,16 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr) | |||
235 | union acpi_object *pss = NULL; | 231 | union acpi_object *pss = NULL; |
236 | int i; | 232 | int i; |
237 | 233 | ||
238 | ACPI_FUNCTION_TRACE("acpi_processor_get_performance_states"); | ||
239 | 234 | ||
240 | status = acpi_evaluate_object(pr->handle, "_PSS", NULL, &buffer); | 235 | status = acpi_evaluate_object(pr->handle, "_PSS", NULL, &buffer); |
241 | if (ACPI_FAILURE(status)) { | 236 | if (ACPI_FAILURE(status)) { |
242 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Error evaluating _PSS\n")); | 237 | ACPI_EXCEPTION((AE_INFO, status, "Evaluating _PSS")); |
243 | return_VALUE(-ENODEV); | 238 | return -ENODEV; |
244 | } | 239 | } |
245 | 240 | ||
246 | pss = (union acpi_object *)buffer.pointer; | 241 | pss = (union acpi_object *)buffer.pointer; |
247 | if (!pss || (pss->type != ACPI_TYPE_PACKAGE)) { | 242 | if (!pss || (pss->type != ACPI_TYPE_PACKAGE)) { |
248 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "Invalid _PSS data\n")); | 243 | printk(KERN_ERR PREFIX "Invalid _PSS data\n"); |
249 | result = -EFAULT; | 244 | result = -EFAULT; |
250 | goto end; | 245 | goto end; |
251 | } | 246 | } |
@@ -274,8 +269,7 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr) | |||
274 | status = acpi_extract_package(&(pss->package.elements[i]), | 269 | status = acpi_extract_package(&(pss->package.elements[i]), |
275 | &format, &state); | 270 | &format, &state); |
276 | if (ACPI_FAILURE(status)) { | 271 | if (ACPI_FAILURE(status)) { |
277 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | 272 | ACPI_EXCEPTION((AE_INFO, status, "Invalid _PSS data")); |
278 | "Invalid _PSS data\n")); | ||
279 | result = -EFAULT; | 273 | result = -EFAULT; |
280 | kfree(pr->performance->states); | 274 | kfree(pr->performance->states); |
281 | goto end; | 275 | goto end; |
@@ -291,8 +285,8 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr) | |||
291 | (u32) px->control, (u32) px->status)); | 285 | (u32) px->control, (u32) px->status)); |
292 | 286 | ||
293 | if (!px->core_frequency) { | 287 | if (!px->core_frequency) { |
294 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | 288 | printk(KERN_ERR PREFIX |
295 | "Invalid _PSS data: freq is zero\n")); | 289 | "Invalid _PSS data: freq is zero\n"); |
296 | result = -EFAULT; | 290 | result = -EFAULT; |
297 | kfree(pr->performance->states); | 291 | kfree(pr->performance->states); |
298 | goto end; | 292 | goto end; |
@@ -302,7 +296,7 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr) | |||
302 | end: | 296 | end: |
303 | acpi_os_free(buffer.pointer); | 297 | acpi_os_free(buffer.pointer); |
304 | 298 | ||
305 | return_VALUE(result); | 299 | return result; |
306 | } | 300 | } |
307 | 301 | ||
308 | static int acpi_processor_get_performance_info(struct acpi_processor *pr) | 302 | static int acpi_processor_get_performance_info(struct acpi_processor *pr) |
@@ -311,31 +305,30 @@ static int acpi_processor_get_performance_info(struct acpi_processor *pr) | |||
311 | acpi_status status = AE_OK; | 305 | acpi_status status = AE_OK; |
312 | acpi_handle handle = NULL; | 306 | acpi_handle handle = NULL; |
313 | 307 | ||
314 | ACPI_FUNCTION_TRACE("acpi_processor_get_performance_info"); | ||
315 | 308 | ||
316 | if (!pr || !pr->performance || !pr->handle) | 309 | if (!pr || !pr->performance || !pr->handle) |
317 | return_VALUE(-EINVAL); | 310 | return -EINVAL; |
318 | 311 | ||
319 | status = acpi_get_handle(pr->handle, "_PCT", &handle); | 312 | status = acpi_get_handle(pr->handle, "_PCT", &handle); |
320 | if (ACPI_FAILURE(status)) { | 313 | if (ACPI_FAILURE(status)) { |
321 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 314 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
322 | "ACPI-based processor performance control unavailable\n")); | 315 | "ACPI-based processor performance control unavailable\n")); |
323 | return_VALUE(-ENODEV); | 316 | return -ENODEV; |
324 | } | 317 | } |
325 | 318 | ||
326 | result = acpi_processor_get_performance_control(pr); | 319 | result = acpi_processor_get_performance_control(pr); |
327 | if (result) | 320 | if (result) |
328 | return_VALUE(result); | 321 | return result; |
329 | 322 | ||
330 | result = acpi_processor_get_performance_states(pr); | 323 | result = acpi_processor_get_performance_states(pr); |
331 | if (result) | 324 | if (result) |
332 | return_VALUE(result); | 325 | return result; |
333 | 326 | ||
334 | result = acpi_processor_get_platform_limit(pr); | 327 | result = acpi_processor_get_platform_limit(pr); |
335 | if (result) | 328 | if (result) |
336 | return_VALUE(result); | 329 | return result; |
337 | 330 | ||
338 | return_VALUE(0); | 331 | return 0; |
339 | } | 332 | } |
340 | 333 | ||
341 | int acpi_processor_notify_smm(struct module *calling_module) | 334 | int acpi_processor_notify_smm(struct module *calling_module) |
@@ -343,13 +336,12 @@ int acpi_processor_notify_smm(struct module *calling_module) | |||
343 | acpi_status status; | 336 | acpi_status status; |
344 | static int is_done = 0; | 337 | static int is_done = 0; |
345 | 338 | ||
346 | ACPI_FUNCTION_TRACE("acpi_processor_notify_smm"); | ||
347 | 339 | ||
348 | if (!(acpi_processor_ppc_status & PPC_REGISTERED)) | 340 | if (!(acpi_processor_ppc_status & PPC_REGISTERED)) |
349 | return_VALUE(-EBUSY); | 341 | return -EBUSY; |
350 | 342 | ||
351 | if (!try_module_get(calling_module)) | 343 | if (!try_module_get(calling_module)) |
352 | return_VALUE(-EINVAL); | 344 | return -EINVAL; |
353 | 345 | ||
354 | /* is_done is set to negative if an error occured, | 346 | /* is_done is set to negative if an error occured, |
355 | * and to postitive if _no_ error occured, but SMM | 347 | * and to postitive if _no_ error occured, but SMM |
@@ -358,10 +350,10 @@ int acpi_processor_notify_smm(struct module *calling_module) | |||
358 | */ | 350 | */ |
359 | if (is_done > 0) { | 351 | if (is_done > 0) { |
360 | module_put(calling_module); | 352 | module_put(calling_module); |
361 | return_VALUE(0); | 353 | return 0; |
362 | } else if (is_done < 0) { | 354 | } else if (is_done < 0) { |
363 | module_put(calling_module); | 355 | module_put(calling_module); |
364 | return_VALUE(is_done); | 356 | return is_done; |
365 | } | 357 | } |
366 | 358 | ||
367 | is_done = -EIO; | 359 | is_done = -EIO; |
@@ -370,7 +362,7 @@ int acpi_processor_notify_smm(struct module *calling_module) | |||
370 | if ((!acpi_fadt.smi_cmd) || (!acpi_fadt.pstate_cnt)) { | 362 | if ((!acpi_fadt.smi_cmd) || (!acpi_fadt.pstate_cnt)) { |
371 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, "No SMI port or pstate_cnt\n")); | 363 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, "No SMI port or pstate_cnt\n")); |
372 | module_put(calling_module); | 364 | module_put(calling_module); |
373 | return_VALUE(0); | 365 | return 0; |
374 | } | 366 | } |
375 | 367 | ||
376 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 368 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
@@ -387,12 +379,12 @@ int acpi_processor_notify_smm(struct module *calling_module) | |||
387 | status = acpi_os_write_port(acpi_fadt.smi_cmd, | 379 | status = acpi_os_write_port(acpi_fadt.smi_cmd, |
388 | (u32) acpi_fadt.pstate_cnt, 8); | 380 | (u32) acpi_fadt.pstate_cnt, 8); |
389 | if (ACPI_FAILURE(status)) { | 381 | if (ACPI_FAILURE(status)) { |
390 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | 382 | ACPI_EXCEPTION((AE_INFO, status, |
391 | "Failed to write pstate_cnt [0x%x] to " | 383 | "Failed to write pstate_cnt [0x%x] to " |
392 | "smi_cmd [0x%x]\n", acpi_fadt.pstate_cnt, | 384 | "smi_cmd [0x%x]", acpi_fadt.pstate_cnt, |
393 | acpi_fadt.smi_cmd)); | 385 | acpi_fadt.smi_cmd)); |
394 | module_put(calling_module); | 386 | module_put(calling_module); |
395 | return_VALUE(status); | 387 | return status; |
396 | } | 388 | } |
397 | 389 | ||
398 | /* Success. If there's no _PPC, we need to fear nothing, so | 390 | /* Success. If there's no _PPC, we need to fear nothing, so |
@@ -402,7 +394,7 @@ int acpi_processor_notify_smm(struct module *calling_module) | |||
402 | if (!(acpi_processor_ppc_status & PPC_IN_USE)) | 394 | if (!(acpi_processor_ppc_status & PPC_IN_USE)) |
403 | module_put(calling_module); | 395 | module_put(calling_module); |
404 | 396 | ||
405 | return_VALUE(0); | 397 | return 0; |
406 | } | 398 | } |
407 | 399 | ||
408 | EXPORT_SYMBOL(acpi_processor_notify_smm); | 400 | EXPORT_SYMBOL(acpi_processor_notify_smm); |
@@ -423,7 +415,6 @@ static int acpi_processor_perf_seq_show(struct seq_file *seq, void *offset) | |||
423 | struct acpi_processor *pr = (struct acpi_processor *)seq->private; | 415 | struct acpi_processor *pr = (struct acpi_processor *)seq->private; |
424 | int i; | 416 | int i; |
425 | 417 | ||
426 | ACPI_FUNCTION_TRACE("acpi_processor_perf_seq_show"); | ||
427 | 418 | ||
428 | if (!pr) | 419 | if (!pr) |
429 | goto end; | 420 | goto end; |
@@ -447,7 +438,7 @@ static int acpi_processor_perf_seq_show(struct seq_file *seq, void *offset) | |||
447 | (u32) pr->performance->states[i].transition_latency); | 438 | (u32) pr->performance->states[i].transition_latency); |
448 | 439 | ||
449 | end: | 440 | end: |
450 | return_VALUE(0); | 441 | return 0; |
451 | } | 442 | } |
452 | 443 | ||
453 | static int acpi_processor_perf_open_fs(struct inode *inode, struct file *file) | 444 | static int acpi_processor_perf_open_fs(struct inode *inode, struct file *file) |
@@ -469,23 +460,22 @@ acpi_processor_write_performance(struct file *file, | |||
469 | unsigned int new_state = 0; | 460 | unsigned int new_state = 0; |
470 | struct cpufreq_policy policy; | 461 | struct cpufreq_policy policy; |
471 | 462 | ||
472 | ACPI_FUNCTION_TRACE("acpi_processor_write_performance"); | ||
473 | 463 | ||
474 | if (!pr || (count > sizeof(state_string) - 1)) | 464 | if (!pr || (count > sizeof(state_string) - 1)) |
475 | return_VALUE(-EINVAL); | 465 | return -EINVAL; |
476 | 466 | ||
477 | perf = pr->performance; | 467 | perf = pr->performance; |
478 | if (!perf) | 468 | if (!perf) |
479 | return_VALUE(-EINVAL); | 469 | return -EINVAL; |
480 | 470 | ||
481 | if (copy_from_user(state_string, buffer, count)) | 471 | if (copy_from_user(state_string, buffer, count)) |
482 | return_VALUE(-EFAULT); | 472 | return -EFAULT; |
483 | 473 | ||
484 | state_string[count] = '\0'; | 474 | state_string[count] = '\0'; |
485 | new_state = simple_strtoul(state_string, NULL, 0); | 475 | new_state = simple_strtoul(state_string, NULL, 0); |
486 | 476 | ||
487 | if (new_state >= perf->state_count) | 477 | if (new_state >= perf->state_count) |
488 | return_VALUE(-EINVAL); | 478 | return -EINVAL; |
489 | 479 | ||
490 | cpufreq_get_policy(&policy, pr->id); | 480 | cpufreq_get_policy(&policy, pr->id); |
491 | 481 | ||
@@ -495,9 +485,9 @@ acpi_processor_write_performance(struct file *file, | |||
495 | 485 | ||
496 | result = cpufreq_set_policy(&policy); | 486 | result = cpufreq_set_policy(&policy); |
497 | if (result) | 487 | if (result) |
498 | return_VALUE(result); | 488 | return result; |
499 | 489 | ||
500 | return_VALUE(count); | 490 | return count; |
501 | } | 491 | } |
502 | 492 | ||
503 | static void acpi_cpufreq_add_file(struct acpi_processor *pr) | 493 | static void acpi_cpufreq_add_file(struct acpi_processor *pr) |
@@ -505,42 +495,36 @@ static void acpi_cpufreq_add_file(struct acpi_processor *pr) | |||
505 | struct proc_dir_entry *entry = NULL; | 495 | struct proc_dir_entry *entry = NULL; |
506 | struct acpi_device *device = NULL; | 496 | struct acpi_device *device = NULL; |
507 | 497 | ||
508 | ACPI_FUNCTION_TRACE("acpi_cpufreq_addfile"); | ||
509 | 498 | ||
510 | if (acpi_bus_get_device(pr->handle, &device)) | 499 | if (acpi_bus_get_device(pr->handle, &device)) |
511 | return_VOID; | 500 | return; |
512 | 501 | ||
513 | /* add file 'performance' [R/W] */ | 502 | /* add file 'performance' [R/W] */ |
514 | entry = create_proc_entry(ACPI_PROCESSOR_FILE_PERFORMANCE, | 503 | entry = create_proc_entry(ACPI_PROCESSOR_FILE_PERFORMANCE, |
515 | S_IFREG | S_IRUGO | S_IWUSR, | 504 | S_IFREG | S_IRUGO | S_IWUSR, |
516 | acpi_device_dir(device)); | 505 | acpi_device_dir(device)); |
517 | if (!entry) | 506 | if (entry){ |
518 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | ||
519 | "Unable to create '%s' fs entry\n", | ||
520 | ACPI_PROCESSOR_FILE_PERFORMANCE)); | ||
521 | else { | ||
522 | acpi_processor_perf_fops.write = acpi_processor_write_performance; | 507 | acpi_processor_perf_fops.write = acpi_processor_write_performance; |
523 | entry->proc_fops = &acpi_processor_perf_fops; | 508 | entry->proc_fops = &acpi_processor_perf_fops; |
524 | entry->data = acpi_driver_data(device); | 509 | entry->data = acpi_driver_data(device); |
525 | entry->owner = THIS_MODULE; | 510 | entry->owner = THIS_MODULE; |
526 | } | 511 | } |
527 | return_VOID; | 512 | return; |
528 | } | 513 | } |
529 | 514 | ||
530 | static void acpi_cpufreq_remove_file(struct acpi_processor *pr) | 515 | static void acpi_cpufreq_remove_file(struct acpi_processor *pr) |
531 | { | 516 | { |
532 | struct acpi_device *device = NULL; | 517 | struct acpi_device *device = NULL; |
533 | 518 | ||
534 | ACPI_FUNCTION_TRACE("acpi_cpufreq_addfile"); | ||
535 | 519 | ||
536 | if (acpi_bus_get_device(pr->handle, &device)) | 520 | if (acpi_bus_get_device(pr->handle, &device)) |
537 | return_VOID; | 521 | return; |
538 | 522 | ||
539 | /* remove file 'performance' */ | 523 | /* remove file 'performance' */ |
540 | remove_proc_entry(ACPI_PROCESSOR_FILE_PERFORMANCE, | 524 | remove_proc_entry(ACPI_PROCESSOR_FILE_PERFORMANCE, |
541 | acpi_device_dir(device)); | 525 | acpi_device_dir(device)); |
542 | 526 | ||
543 | return_VOID; | 527 | return; |
544 | } | 528 | } |
545 | 529 | ||
546 | #else | 530 | #else |
@@ -698,12 +682,12 @@ int acpi_processor_preregister_performance( | |||
698 | /* Validate the Domain info */ | 682 | /* Validate the Domain info */ |
699 | count_target = pdomain->num_processors; | 683 | count_target = pdomain->num_processors; |
700 | count = 1; | 684 | count = 1; |
701 | if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ALL || | 685 | if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ALL) |
702 | pdomain->coord_type == DOMAIN_COORD_TYPE_HW_ALL) { | ||
703 | pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL; | 686 | pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL; |
704 | } else if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ANY) { | 687 | else if (pdomain->coord_type == DOMAIN_COORD_TYPE_HW_ALL) |
688 | pr->performance->shared_type = CPUFREQ_SHARED_TYPE_HW; | ||
689 | else if (pdomain->coord_type == DOMAIN_COORD_TYPE_SW_ANY) | ||
705 | pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY; | 690 | pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY; |
706 | } | ||
707 | 691 | ||
708 | for_each_possible_cpu(j) { | 692 | for_each_possible_cpu(j) { |
709 | if (i == j) | 693 | if (i == j) |
@@ -784,22 +768,21 @@ acpi_processor_register_performance(struct acpi_processor_performance | |||
784 | { | 768 | { |
785 | struct acpi_processor *pr; | 769 | struct acpi_processor *pr; |
786 | 770 | ||
787 | ACPI_FUNCTION_TRACE("acpi_processor_register_performance"); | ||
788 | 771 | ||
789 | if (!(acpi_processor_ppc_status & PPC_REGISTERED)) | 772 | if (!(acpi_processor_ppc_status & PPC_REGISTERED)) |
790 | return_VALUE(-EINVAL); | 773 | return -EINVAL; |
791 | 774 | ||
792 | mutex_lock(&performance_mutex); | 775 | mutex_lock(&performance_mutex); |
793 | 776 | ||
794 | pr = processors[cpu]; | 777 | pr = processors[cpu]; |
795 | if (!pr) { | 778 | if (!pr) { |
796 | mutex_unlock(&performance_mutex); | 779 | mutex_unlock(&performance_mutex); |
797 | return_VALUE(-ENODEV); | 780 | return -ENODEV; |
798 | } | 781 | } |
799 | 782 | ||
800 | if (pr->performance) { | 783 | if (pr->performance) { |
801 | mutex_unlock(&performance_mutex); | 784 | mutex_unlock(&performance_mutex); |
802 | return_VALUE(-EBUSY); | 785 | return -EBUSY; |
803 | } | 786 | } |
804 | 787 | ||
805 | WARN_ON(!performance); | 788 | WARN_ON(!performance); |
@@ -809,13 +792,13 @@ acpi_processor_register_performance(struct acpi_processor_performance | |||
809 | if (acpi_processor_get_performance_info(pr)) { | 792 | if (acpi_processor_get_performance_info(pr)) { |
810 | pr->performance = NULL; | 793 | pr->performance = NULL; |
811 | mutex_unlock(&performance_mutex); | 794 | mutex_unlock(&performance_mutex); |
812 | return_VALUE(-EIO); | 795 | return -EIO; |
813 | } | 796 | } |
814 | 797 | ||
815 | acpi_cpufreq_add_file(pr); | 798 | acpi_cpufreq_add_file(pr); |
816 | 799 | ||
817 | mutex_unlock(&performance_mutex); | 800 | mutex_unlock(&performance_mutex); |
818 | return_VALUE(0); | 801 | return 0; |
819 | } | 802 | } |
820 | 803 | ||
821 | EXPORT_SYMBOL(acpi_processor_register_performance); | 804 | EXPORT_SYMBOL(acpi_processor_register_performance); |
@@ -826,14 +809,13 @@ acpi_processor_unregister_performance(struct acpi_processor_performance | |||
826 | { | 809 | { |
827 | struct acpi_processor *pr; | 810 | struct acpi_processor *pr; |
828 | 811 | ||
829 | ACPI_FUNCTION_TRACE("acpi_processor_unregister_performance"); | ||
830 | 812 | ||
831 | mutex_lock(&performance_mutex); | 813 | mutex_lock(&performance_mutex); |
832 | 814 | ||
833 | pr = processors[cpu]; | 815 | pr = processors[cpu]; |
834 | if (!pr) { | 816 | if (!pr) { |
835 | mutex_unlock(&performance_mutex); | 817 | mutex_unlock(&performance_mutex); |
836 | return_VOID; | 818 | return; |
837 | } | 819 | } |
838 | 820 | ||
839 | if (pr->performance) | 821 | if (pr->performance) |
@@ -844,7 +826,7 @@ acpi_processor_unregister_performance(struct acpi_processor_performance | |||
844 | 826 | ||
845 | mutex_unlock(&performance_mutex); | 827 | mutex_unlock(&performance_mutex); |
846 | 828 | ||
847 | return_VOID; | 829 | return; |
848 | } | 830 | } |
849 | 831 | ||
850 | EXPORT_SYMBOL(acpi_processor_unregister_performance); | 832 | EXPORT_SYMBOL(acpi_processor_unregister_performance); |