Lines Matching refs:pr

55 static int acpi_processor_get_platform_limit(struct acpi_processor *pr)  in acpi_processor_get_platform_limit()  argument
61 if (!pr) in acpi_processor_get_platform_limit()
68 status = acpi_evaluate_integer(pr->handle, "_PPC", NULL, &ppc); in acpi_processor_get_platform_limit()
78 pr_debug("CPU %d: _PPC is %d - frequency %s limited\n", pr->id, in acpi_processor_get_platform_limit()
81 pr->performance_platform_limit = (int)ppc; in acpi_processor_get_platform_limit()
83 if (ppc >= pr->performance->state_count || in acpi_processor_get_platform_limit()
84 unlikely(!freq_qos_request_active(&pr->perflib_req))) in acpi_processor_get_platform_limit()
87 ret = freq_qos_update_request(&pr->perflib_req, in acpi_processor_get_platform_limit()
88 pr->performance->states[ppc].core_frequency * 1000); in acpi_processor_get_platform_limit()
91 pr->id, ret); in acpi_processor_get_platform_limit()
112 void acpi_processor_ppc_has_changed(struct acpi_processor *pr, int event_flag) in acpi_processor_ppc_has_changed() argument
116 if (ignore_ppc || !pr->performance) { in acpi_processor_ppc_has_changed()
122 acpi_processor_ppc_ost(pr->handle, 1); in acpi_processor_ppc_has_changed()
126 ret = acpi_processor_get_platform_limit(pr); in acpi_processor_ppc_has_changed()
133 acpi_processor_ppc_ost(pr->handle, 1); in acpi_processor_ppc_has_changed()
135 acpi_processor_ppc_ost(pr->handle, 0); in acpi_processor_ppc_has_changed()
138 cpufreq_update_limits(pr->id); in acpi_processor_ppc_has_changed()
143 struct acpi_processor *pr; in acpi_processor_get_bios_limit() local
145 pr = per_cpu(processors, cpu); in acpi_processor_get_bios_limit()
146 if (!pr || !pr->performance || !pr->performance->state_count) in acpi_processor_get_bios_limit()
148 *limit = pr->performance->states[pr->performance_platform_limit]. in acpi_processor_get_bios_limit()
165 struct acpi_processor *pr = per_cpu(processors, cpu); in acpi_processor_ppc_init() local
168 if (!pr) in acpi_processor_ppc_init()
172 &pr->perflib_req, in acpi_processor_ppc_init()
185 struct acpi_processor *pr = per_cpu(processors, cpu); in acpi_processor_ppc_exit() local
187 if (pr) in acpi_processor_ppc_exit()
188 freq_qos_remove_request(&pr->perflib_req); in acpi_processor_ppc_exit()
192 static int acpi_processor_get_performance_control(struct acpi_processor *pr) in acpi_processor_get_performance_control() argument
201 status = acpi_evaluate_object(pr->handle, "_PCT", NULL, &buffer); in acpi_processor_get_performance_control()
228 memcpy(&pr->performance->control_register, obj.buffer.pointer, in acpi_processor_get_performance_control()
245 memcpy(&pr->performance->status_register, obj.buffer.pointer, in acpi_processor_get_performance_control()
289 static int acpi_processor_get_performance_states(struct acpi_processor *pr) in acpi_processor_get_performance_states() argument
301 status = acpi_evaluate_object(pr->handle, "_PSS", NULL, &buffer); in acpi_processor_get_performance_states()
317 pr->performance->state_count = pss->package.count; in acpi_processor_get_performance_states()
318 pr->performance->states = in acpi_processor_get_performance_states()
322 if (!pr->performance->states) { in acpi_processor_get_performance_states()
327 for (i = 0; i < pr->performance->state_count; i++) { in acpi_processor_get_performance_states()
329 struct acpi_processor_px *px = &(pr->performance->states[i]); in acpi_processor_get_performance_states()
341 kfree(pr->performance->states); in acpi_processor_get_performance_states()
364 pr->id, px->core_frequency); in acpi_processor_get_performance_states()
372 memcpy(&(pr->performance->states[last_invalid]), in acpi_processor_get_performance_states()
381 "No valid BIOS _PSS frequency found for processor %d\n", pr->id); in acpi_processor_get_performance_states()
383 kfree(pr->performance->states); in acpi_processor_get_performance_states()
384 pr->performance->states = NULL; in acpi_processor_get_performance_states()
388 pr->performance->state_count = last_invalid; in acpi_processor_get_performance_states()
396 int acpi_processor_get_performance_info(struct acpi_processor *pr) in acpi_processor_get_performance_info() argument
400 if (!pr || !pr->performance || !pr->handle) in acpi_processor_get_performance_info()
403 if (!acpi_has_method(pr->handle, "_PCT")) { in acpi_processor_get_performance_info()
409 result = acpi_processor_get_performance_control(pr); in acpi_processor_get_performance_info()
413 result = acpi_processor_get_performance_states(pr); in acpi_processor_get_performance_info()
419 result = acpi_processor_get_platform_limit(pr); in acpi_processor_get_performance_info()
429 if (acpi_has_method(pr->handle, "_PPC")) { in acpi_processor_get_performance_info()
580 struct acpi_processor *pr; in acpi_processor_preregister_performance() local
595 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
596 if (!pr) { in acpi_processor_preregister_performance()
601 if (pr->performance) { in acpi_processor_preregister_performance()
614 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
615 if (!pr) in acpi_processor_preregister_performance()
618 pr->performance = per_cpu_ptr(performance, i); in acpi_processor_preregister_performance()
619 cpumask_set_cpu(i, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
620 pdomain = &(pr->performance->domain_info); in acpi_processor_preregister_performance()
621 if (acpi_processor_get_psd(pr->handle, pdomain)) { in acpi_processor_preregister_performance()
634 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
635 if (!pr) in acpi_processor_preregister_performance()
641 pdomain = &(pr->performance->domain_info); in acpi_processor_preregister_performance()
642 cpumask_set_cpu(i, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
650 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL; in acpi_processor_preregister_performance()
652 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_HW; in acpi_processor_preregister_performance()
654 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ANY; in acpi_processor_preregister_performance()
681 cpumask_set_cpu(j, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
697 pr->performance->shared_type; in acpi_processor_preregister_performance()
699 pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
705 pr = per_cpu(processors, i); in acpi_processor_preregister_performance()
706 if (!pr || !pr->performance) in acpi_processor_preregister_performance()
711 cpumask_clear(pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
712 cpumask_set_cpu(i, pr->performance->shared_cpu_map); in acpi_processor_preregister_performance()
713 pr->performance->shared_type = CPUFREQ_SHARED_TYPE_ALL; in acpi_processor_preregister_performance()
715 pr->performance = NULL; /* Will be set for real in register */ in acpi_processor_preregister_performance()
729 struct acpi_processor *pr; in acpi_processor_register_performance() local
736 pr = per_cpu(processors, cpu); in acpi_processor_register_performance()
737 if (!pr) { in acpi_processor_register_performance()
742 if (pr->performance) { in acpi_processor_register_performance()
749 pr->performance = performance; in acpi_processor_register_performance()
751 if (acpi_processor_get_performance_info(pr)) { in acpi_processor_register_performance()
752 pr->performance = NULL; in acpi_processor_register_performance()
765 struct acpi_processor *pr; in acpi_processor_unregister_performance() local
769 pr = per_cpu(processors, cpu); in acpi_processor_unregister_performance()
770 if (!pr) { in acpi_processor_unregister_performance()
775 if (pr->performance) in acpi_processor_unregister_performance()
776 kfree(pr->performance->states); in acpi_processor_unregister_performance()
777 pr->performance = NULL; in acpi_processor_unregister_performance()