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); |
