Lines Matching refs:pr
79 struct acpi_processor *pr; in acpi_processor_ppc_notifier() local
95 pr = per_cpu(processors, policy->cpu); in acpi_processor_ppc_notifier()
96 if (!pr || !pr->performance) in acpi_processor_ppc_notifier()
99 ppc = (unsigned int)pr->performance_platform_limit; in acpi_processor_ppc_notifier()
101 if (ppc >= pr->performance->state_count) in acpi_processor_ppc_notifier()
105 pr->performance->states[ppc]. in acpi_processor_ppc_notifier()
118 static int acpi_processor_get_platform_limit(struct acpi_processor *pr) in acpi_processor_get_platform_limit() argument
124 if (!pr) in acpi_processor_get_platform_limit()
131 status = acpi_evaluate_integer(pr->handle, "_PPC", NULL, &ppc); in acpi_processor_get_platform_limit()
141 pr_debug("CPU %d: _PPC is %d - frequency %s limited\n", pr->id, in acpi_processor_get_platform_limit()
144 pr->performance_platform_limit = (int)ppc; in acpi_processor_get_platform_limit()
164 int acpi_processor_ppc_has_changed(struct acpi_processor *pr, int event_flag) in acpi_processor_ppc_has_changed() argument
174 acpi_processor_ppc_ost(pr->handle, 1); in acpi_processor_ppc_has_changed()
178 ret = acpi_processor_get_platform_limit(pr); in acpi_processor_ppc_has_changed()
185 acpi_processor_ppc_ost(pr->handle, 1); in acpi_processor_ppc_has_changed()
187 acpi_processor_ppc_ost(pr->handle, 0); in acpi_processor_ppc_has_changed()
192 return cpufreq_update_policy(pr->id); in acpi_processor_ppc_has_changed()
197 struct acpi_processor *pr; in acpi_processor_get_bios_limit() local
199 pr = per_cpu(processors, cpu); in acpi_processor_get_bios_limit()
200 if (!pr || !pr->performance || !pr->performance->state_count) in acpi_processor_get_bios_limit()
202 *limit = pr->performance->states[pr->performance_platform_limit]. in acpi_processor_get_bios_limit()
227 static int acpi_processor_get_performance_control(struct acpi_processor *pr) in acpi_processor_get_performance_control() argument
236 status = acpi_evaluate_object(pr->handle, "_PCT", NULL, &buffer); in acpi_processor_get_performance_control()
263 memcpy(&pr->performance->control_register, obj.buffer.pointer, in acpi_processor_get_performance_control()
280 memcpy(&pr->performance->status_register, obj.buffer.pointer, in acpi_processor_get_performance_control()
324 static int acpi_processor_get_performance_states(struct acpi_processor *pr) in acpi_processor_get_performance_states() argument
336 status = acpi_evaluate_object(pr->handle, "_PSS", NULL, &buffer); in acpi_processor_get_performance_states()
352 pr->performance->state_count = pss->package.count; in acpi_processor_get_performance_states()
353 pr->performance->states = in acpi_processor_get_performance_states()
356 if (!pr->performance->states) { in acpi_processor_get_performance_states()
361 for (i = 0; i < pr->performance->state_count; i++) { in acpi_processor_get_performance_states()
363 struct acpi_processor_px *px = &(pr->performance->states[i]); in acpi_processor_get_performance_states()
375 kfree(pr->performance->states); in acpi_processor_get_performance_states()
398 pr->id, px->core_frequency); in acpi_processor_get_performance_states()
406 memcpy(&(pr->performance->states[last_invalid]), in acpi_processor_get_performance_states()
415 "No valid BIOS _PSS frequency found for processor %d\n", pr->id); in acpi_processor_get_performance_states()
417 kfree(pr->performance->states); in acpi_processor_get_performance_states()
418 pr->performance->states = NULL; in acpi_processor_get_performance_states()
422 pr->performance->state_count = last_invalid; in acpi_processor_get_performance_states()
430 int acpi_processor_get_performance_info(struct acpi_processor *pr) in acpi_processor_get_performance_info() argument
434 if (!pr || !pr->performance || !pr->handle) in acpi_processor_get_performance_info()
437 if (!acpi_has_method(pr->handle, "_PCT")) { in acpi_processor_get_performance_info()
443 result = acpi_processor_get_performance_control(pr); in acpi_processor_get_performance_info()
447 result = acpi_processor_get_performance_states(pr); in acpi_processor_get_performance_info()
453 result = acpi_processor_get_platform_limit(pr); in acpi_processor_get_performance_info()
463 if (acpi_has_method(pr->handle, "_PPC")) { in acpi_processor_get_performance_info()
533 static int acpi_processor_get_psd(struct acpi_processor *pr) in acpi_processor_get_psd() argument
543 status = acpi_evaluate_object(pr->handle, "_PSD", NULL, &buffer); in acpi_processor_get_psd()
561 pdomain = &(pr->performance->domain_info); in acpi_processor_get_psd()
605 struct acpi_processor *pr; in acpi_processor_preregister_performance() local
620 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
621 if (!pr) { in acpi_processor_preregister_performance()
626 if (pr->performance) { in acpi_processor_preregister_performance()
639 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
640 if (!pr) in acpi_processor_preregister_performance()
643 pr->performance = per_cpu_ptr(performance, i); in acpi_processor_preregister_performance()
644 cpumask_set_cpu(i, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
645 if (acpi_processor_get_psd(pr)) { in acpi_processor_preregister_performance()
658 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
659 if (!pr) in acpi_processor_preregister_performance()
665 pdomain = &(pr->performance->domain_info); in acpi_processor_preregister_performance()
666 cpumask_set_cpu(i, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
674 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL; in acpi_processor_preregister_performance()
676 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_HW; in acpi_processor_preregister_performance()
678 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY; in acpi_processor_preregister_performance()
705 cpumask_set_cpu(j, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
721 pr->performance->shared_type; in acpi_processor_preregister_performance()
723 pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
729 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
730 if (!pr || !pr->performance) in acpi_processor_preregister_performance()
735 cpumask_clear(pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
736 cpumask_set_cpu(i, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
737 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL; in acpi_processor_preregister_performance()
739 pr->performance = NULL; /* Will be set for real in register */ in acpi_processor_preregister_performance()
753 struct acpi_processor *pr; in acpi_processor_register_performance() local
760 pr = per_cpu(processors, cpu); in acpi_processor_register_performance()
761 if (!pr) { in acpi_processor_register_performance()
766 if (pr->performance) { in acpi_processor_register_performance()
773 pr->performance = performance; in acpi_processor_register_performance()
775 if (acpi_processor_get_performance_info(pr)) { in acpi_processor_register_performance()
776 pr->performance = NULL; in acpi_processor_register_performance()
791 struct acpi_processor *pr; in acpi_processor_unregister_performance() local
795 pr = per_cpu(processors, cpu); in acpi_processor_unregister_performance()
796 if (!pr) { in acpi_processor_unregister_performance()
801 if (pr->performance) in acpi_processor_unregister_performance()
802 kfree(pr->performance->states); in acpi_processor_unregister_performance()
803 pr->performance = NULL; in acpi_processor_unregister_performance()