Lines Matching refs:pr
55 static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
63 if (!pr)
70 status = acpi_evaluate_integer(pr->handle, "_PPC", NULL, &ppc);
82 if (pr->performance_platform_limit == index ||
83 ppc >= pr->performance->state_count)
86 pr_debug("CPU %d: _PPC is %d - frequency %s limited\n", pr->id,
89 pr->performance_platform_limit = index;
91 if (unlikely(!freq_qos_request_active(&pr->perflib_req)))
101 qos_value = pr->performance->states[index].core_frequency * 1000;
103 ret = freq_qos_update_request(&pr->perflib_req, qos_value);
106 pr->id, ret);
127 void acpi_processor_ppc_has_changed(struct acpi_processor *pr, int event_flag)
131 if (ignore_ppc || !pr->performance) {
137 acpi_processor_ppc_ost(pr->handle, 1);
141 ret = acpi_processor_get_platform_limit(pr);
148 acpi_processor_ppc_ost(pr->handle, 1);
150 acpi_processor_ppc_ost(pr->handle, 0);
153 cpufreq_update_limits(pr->id);
158 struct acpi_processor *pr;
160 pr = per_cpu(processors, cpu);
161 if (!pr || !pr->performance || !pr->performance->state_count)
163 *limit = pr->performance->states[pr->performance_platform_limit].
180 struct acpi_processor *pr = per_cpu(processors, cpu);
183 if (!pr)
191 pr->performance_platform_limit = 0;
194 &pr->perflib_req, FREQ_QOS_MAX,
207 struct acpi_processor *pr = per_cpu(processors, cpu);
209 if (pr)
210 freq_qos_remove_request(&pr->perflib_req);
214 static int acpi_processor_get_performance_control(struct acpi_processor *pr)
223 status = acpi_evaluate_object(pr->handle, "_PCT", NULL, &buffer);
250 memcpy(&pr->performance->control_register, obj.buffer.pointer,
267 memcpy(&pr->performance->status_register, obj.buffer.pointer,
311 static int acpi_processor_get_performance_states(struct acpi_processor *pr)
323 status = acpi_evaluate_object(pr->handle, "_PSS", NULL, &buffer);
339 pr->performance->state_count = pss->package.count;
340 pr->performance->states =
344 if (!pr->performance->states) {
349 for (i = 0; i < pr->performance->state_count; i++) {
351 struct acpi_processor_px *px = &(pr->performance->states[i]);
363 kfree(pr->performance->states);
386 pr->id, px->core_frequency);
394 memcpy(&(pr->performance->states[last_invalid]),
403 "No valid BIOS _PSS frequency found for processor %d\n", pr->id);
405 kfree(pr->performance->states);
406 pr->performance->states = NULL;
410 pr->performance->state_count = last_invalid;
418 int acpi_processor_get_performance_info(struct acpi_processor *pr)
422 if (!pr || !pr->performance || !pr->handle)
425 if (!acpi_has_method(pr->handle, "_PCT")) {
431 result = acpi_processor_get_performance_control(pr);
435 result = acpi_processor_get_performance_states(pr);
441 result = acpi_processor_get_platform_limit(pr);
451 if (acpi_has_method(pr->handle, "_PPC")) {
602 struct acpi_processor *pr;
614 * changing pr->performance if it has. Check input data as well.
617 pr = per_cpu(processors, i);
618 if (!pr) {
623 if (pr->performance) {
636 pr = per_cpu(processors, i);
637 if (!pr)
640 pr->performance = per_cpu_ptr(performance, i);
641 cpumask_set_cpu(i, pr->performance->shared_cpu_map);
642 pdomain = &(pr->performance->domain_info);
643 if (acpi_processor_get_psd(pr->handle, pdomain)) {
656 pr = per_cpu(processors, i);
657 if (!pr)
663 pdomain = &(pr->performance->domain_info);
664 cpumask_set_cpu(i, pr->performance->shared_cpu_map);
672 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL;
674 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_HW;
676 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY;
703 cpumask_set_cpu(j, pr->performance->shared_cpu_map);
719 pr->performance->shared_type;
721 pr->performance->shared_cpu_map);
727 pr = per_cpu(processors, i);
728 if (!pr || !pr->performance)
733 cpumask_clear(pr->performance->shared_cpu_map);
734 cpumask_set_cpu(i, pr->performance->shared_cpu_map);
735 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL;
737 pr->performance = NULL; /* Will be set for real in register */
751 struct acpi_processor *pr;
758 pr = per_cpu(processors, cpu);
759 if (!pr) {
764 if (pr->performance) {
771 pr->performance = performance;
773 if (acpi_processor_get_performance_info(pr)) {
774 pr->performance = NULL;
787 struct acpi_processor *pr;
791 pr = per_cpu(processors, cpu);
792 if (!pr) {
797 if (pr->performance)
798 kfree(pr->performance->states);
799 pr->performance = NULL;