Lines Matching full:pr

50 static int acpi_processor_get_platform_limit(struct acpi_processor *pr)  in acpi_processor_get_platform_limit()  argument
58 if (!pr) in acpi_processor_get_platform_limit()
65 status = acpi_evaluate_integer(pr->handle, "_PPC", NULL, &ppc); in acpi_processor_get_platform_limit()
70 acpi_evaluation_failure_warn(pr->handle, "_PPC", status); in acpi_processor_get_platform_limit()
77 if (pr->performance_platform_limit == index || in acpi_processor_get_platform_limit()
78 ppc >= pr->performance->state_count) in acpi_processor_get_platform_limit()
81 pr_debug("CPU %d: _PPC is %d - frequency %s limited\n", pr->id, in acpi_processor_get_platform_limit()
84 pr->performance_platform_limit = index; in acpi_processor_get_platform_limit()
86 if (unlikely(!freq_qos_request_active(&pr->perflib_req))) in acpi_processor_get_platform_limit()
96 qos_value = pr->performance->states[index].core_frequency * 1000; in acpi_processor_get_platform_limit()
98 ret = freq_qos_update_request(&pr->perflib_req, qos_value); in acpi_processor_get_platform_limit()
101 pr->id, ret); in acpi_processor_get_platform_limit()
122 void acpi_processor_ppc_has_changed(struct acpi_processor *pr, int event_flag) in acpi_processor_ppc_has_changed() argument
126 if (ignore_ppc || !pr->performance) { in acpi_processor_ppc_has_changed()
132 acpi_processor_ppc_ost(pr->handle, 1); in acpi_processor_ppc_has_changed()
136 ret = acpi_processor_get_platform_limit(pr); in acpi_processor_ppc_has_changed()
143 acpi_processor_ppc_ost(pr->handle, 1); in acpi_processor_ppc_has_changed()
145 acpi_processor_ppc_ost(pr->handle, 0); in acpi_processor_ppc_has_changed()
148 cpufreq_update_limits(pr->id); in acpi_processor_ppc_has_changed()
153 struct acpi_processor *pr; in acpi_processor_get_bios_limit() local
155 pr = per_cpu(processors, cpu); in acpi_processor_get_bios_limit()
156 if (!pr || !pr->performance || !pr->performance->state_count) in acpi_processor_get_bios_limit()
159 *limit = pr->performance->states[pr->performance_platform_limit]. in acpi_processor_get_bios_limit()
176 struct acpi_processor *pr = per_cpu(processors, cpu); in acpi_processor_ppc_init() local
179 if (!pr) in acpi_processor_ppc_init()
187 pr->performance_platform_limit = 0; in acpi_processor_ppc_init()
190 &pr->perflib_req, FREQ_QOS_MAX, in acpi_processor_ppc_init()
203 struct acpi_processor *pr = per_cpu(processors, cpu); in acpi_processor_ppc_exit() local
205 if (pr) in acpi_processor_ppc_exit()
206 freq_qos_remove_request(&pr->perflib_req); in acpi_processor_ppc_exit()
214 static int acpi_processor_get_performance_control(struct acpi_processor *pr) in acpi_processor_get_performance_control() argument
222 status = acpi_evaluate_object(pr->handle, "_PCT", NULL, &buffer); in acpi_processor_get_performance_control()
224 acpi_evaluation_failure_warn(pr->handle, "_PCT", status); in acpi_processor_get_performance_control()
247 memcpy(&pr->performance->control_register, obj.buffer.pointer, in acpi_processor_get_performance_control()
263 memcpy(&pr->performance->status_register, obj.buffer.pointer, in acpi_processor_get_performance_control()
303 static int acpi_processor_get_performance_states(struct acpi_processor *pr) in acpi_processor_get_performance_states() argument
314 status = acpi_evaluate_object(pr->handle, "_PSS", NULL, &buffer); in acpi_processor_get_performance_states()
316 acpi_evaluation_failure_warn(pr->handle, "_PSS", status); in acpi_processor_get_performance_states()
327 acpi_handle_debug(pr->handle, "Found %d performance states\n", in acpi_processor_get_performance_states()
330 pr->performance->state_count = pss->package.count; in acpi_processor_get_performance_states()
331 pr->performance->states = in acpi_processor_get_performance_states()
335 if (!pr->performance->states) { in acpi_processor_get_performance_states()
340 for (i = 0; i < pr->performance->state_count; i++) { in acpi_processor_get_performance_states()
342 struct acpi_processor_px *px = &(pr->performance->states[i]); in acpi_processor_get_performance_states()
347 acpi_handle_debug(pr->handle, "Extracting state %d\n", i); in acpi_processor_get_performance_states()
352 acpi_handle_warn(pr->handle, "Invalid _PSS data: %s\n", in acpi_processor_get_performance_states()
355 kfree(pr->performance->states); in acpi_processor_get_performance_states()
361 acpi_handle_debug(pr->handle, in acpi_processor_get_performance_states()
377 pr->id, px->core_frequency); in acpi_processor_get_performance_states()
385 memcpy(&(pr->performance->states[last_invalid]), in acpi_processor_get_performance_states()
394 "No valid BIOS _PSS frequency found for processor %d\n", pr->id); in acpi_processor_get_performance_states()
396 kfree(pr->performance->states); in acpi_processor_get_performance_states()
397 pr->performance->states = NULL; in acpi_processor_get_performance_states()
401 pr->performance->state_count = last_invalid; in acpi_processor_get_performance_states()
409 int acpi_processor_get_performance_info(struct acpi_processor *pr) in acpi_processor_get_performance_info() argument
413 if (!pr || !pr->performance || !pr->handle) in acpi_processor_get_performance_info()
416 if (!acpi_has_method(pr->handle, "_PCT")) { in acpi_processor_get_performance_info()
417 acpi_handle_debug(pr->handle, in acpi_processor_get_performance_info()
422 result = acpi_processor_get_performance_control(pr); in acpi_processor_get_performance_info()
426 result = acpi_processor_get_performance_states(pr); in acpi_processor_get_performance_info()
432 result = acpi_processor_get_platform_limit(pr); in acpi_processor_get_performance_info()
441 if (acpi_has_method(pr->handle, "_PPC")) { in acpi_processor_get_performance_info()
588 struct acpi_processor *pr; in acpi_processor_preregister_performance() local
600 * changing pr->performance if it has. Check input data as well. in acpi_processor_preregister_performance()
603 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
604 if (!pr) { in acpi_processor_preregister_performance()
609 if (pr->performance) { in acpi_processor_preregister_performance()
622 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
623 if (!pr) in acpi_processor_preregister_performance()
626 pr->performance = per_cpu_ptr(performance, i); in acpi_processor_preregister_performance()
627 pdomain = &(pr->performance->domain_info); in acpi_processor_preregister_performance()
628 if (acpi_processor_get_psd(pr->handle, pdomain)) { in acpi_processor_preregister_performance()
641 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
642 if (!pr) in acpi_processor_preregister_performance()
648 pdomain = &(pr->performance->domain_info); in acpi_processor_preregister_performance()
649 cpumask_set_cpu(i, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
657 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL; in acpi_processor_preregister_performance()
659 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_HW; in acpi_processor_preregister_performance()
661 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY; in acpi_processor_preregister_performance()
688 cpumask_set_cpu(j, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
704 pr->performance->shared_type; in acpi_processor_preregister_performance()
706 pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
712 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
713 if (!pr || !pr->performance) in acpi_processor_preregister_performance()
718 cpumask_clear(pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
719 cpumask_set_cpu(i, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
720 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_NONE; in acpi_processor_preregister_performance()
722 pr->performance = NULL; /* Will be set for real in register */ in acpi_processor_preregister_performance()
735 struct acpi_processor *pr; in acpi_processor_register_performance() local
742 pr = per_cpu(processors, cpu); in acpi_processor_register_performance()
743 if (!pr) { in acpi_processor_register_performance()
748 if (pr->performance) { in acpi_processor_register_performance()
755 pr->performance = performance; in acpi_processor_register_performance()
757 if (acpi_processor_get_performance_info(pr)) { in acpi_processor_register_performance()
758 pr->performance = NULL; in acpi_processor_register_performance()
770 struct acpi_processor *pr; in acpi_processor_unregister_performance() local
774 pr = per_cpu(processors, cpu); in acpi_processor_unregister_performance()
775 if (!pr) in acpi_processor_unregister_performance()
778 if (pr->performance) in acpi_processor_unregister_performance()
779 kfree(pr->performance->states); in acpi_processor_unregister_performance()
781 pr->performance = NULL; in acpi_processor_unregister_performance()