static int acpi_processor_get_performance_info(struct acpi_processor *pr) { int result = 0; acpi_status status = AE_OK; acpi_handle handle = NULL; ACPI_FUNCTION_TRACE("acpi_processor_get_performance_info"); if (!pr || !pr->performance || !pr->handle) return_VALUE(-EINVAL); acpi_processor_set_pdc(pr, pr->performance->pdc); status = acpi_get_handle(pr->handle, "_PCT", &handle); if (ACPI_FAILURE(status)) { ACPI_DEBUG_PRINT((ACPI_DB_INFO, "ACPI-based processor performance control unavailable\n")); return_VALUE(-ENODEV); } result = acpi_processor_get_performance_control(pr); if (result) return_VALUE(result); result = acpi_processor_get_performance_states(pr); if (result) return_VALUE(result); result = acpi_processor_get_platform_limit(pr); if (result) return_VALUE(result); return_VALUE(0); }
static int acpi_processor_get_performance_info(struct acpi_processor *pr) { int result = 0; acpi_status status = AE_OK; acpi_handle handle = NULL; if (!pr || !pr->performance || !pr->handle) return -EINVAL; status = acpi_get_handle(pr->handle, "_PCT", &handle); if (ACPI_FAILURE(status)) { ACPI_DEBUG_PRINT((ACPI_DB_INFO, "ACPI-based processor performance control unavailable\n")); return -ENODEV; } result = acpi_processor_get_performance_control(pr); if (result) return result; result = acpi_processor_get_performance_states(pr); if (result) return result; return 0; }
static #endif int acpi_processor_get_performance_info(struct acpi_processor *pr) { int result = 0; acpi_status status = AE_OK; acpi_handle handle = NULL; if (!pr || !pr->performance || !pr->handle) return -EINVAL; status = acpi_get_handle(pr->handle, "_PCT", &handle); if (ACPI_FAILURE(status)) { ACPI_DEBUG_PRINT((ACPI_DB_INFO, "ACPI-based processor performance control unavailable\n")); return -ENODEV; } result = acpi_processor_get_performance_control(pr); if (result) goto update_bios; result = acpi_processor_get_performance_states(pr); if (result) goto update_bios; return 0; /* * Having _PPC but missing frequencies (_PSS, _PCT) is a very good hint that * the BIOS is older than the CPU and does not know its frequencies */ update_bios: #ifdef CONFIG_X86 if (ACPI_SUCCESS(acpi_get_handle(pr->handle, "_PPC", &handle))){ if(boot_cpu_has(X86_FEATURE_EST)) printk(KERN_WARNING FW_BUG "BIOS needs update for CPU " "frequency support\n"); } #endif return result; }